[jboss-cvs] JBossAS SVN: r69792 - projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 12 05:37:59 EST 2008


Author: adrian at jboss.org
Date: 2008-02-12 05:37:59 -0500 (Tue, 12 Feb 2008)
New Revision: 69792

Modified:
   projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/ClassLoaderManager.java
   projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/ClassLoadingTask.java
Log:
Don't loop forever on CCE or LinkageErrors

Modified: projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/ClassLoaderManager.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/ClassLoaderManager.java	2008-02-12 10:36:54 UTC (rev 69791)
+++ projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/ClassLoaderManager.java	2008-02-12 10:37:59 UTC (rev 69792)
@@ -44,6 +44,9 @@
    /** The log */
    private static Logger log = Logger.getLogger("org.jboss.detailed.classloader.ClassLoaderManager");
 
+   /** The maximum number of CCEs */
+   private static final int MAX_CCE = 10;
+   
    /** The threads owning the classloader lock */
    private static Map<BaseClassLoader, Thread> loadClassThreads = new HashMap<BaseClassLoader, Thread>();
    
@@ -256,7 +259,7 @@
          if (trace)
             log.trace("Run failed with exception", e);
          boolean retry = e instanceof ClassCircularityError || e.getClass().equals(LinkageError.class);
-         if (retry)
+         if (retry && loadTask.incrementNumCCE() < MAX_CCE)
          {
             /* Reschedule this task after all existing tasks to allow the
             current load tasks which are conflicting to complete.

Modified: projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/ClassLoadingTask.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/ClassLoadingTask.java	2008-02-12 10:36:54 UTC (rev 69791)
+++ projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/ClassLoadingTask.java	2008-02-12 10:37:59 UTC (rev 69792)
@@ -138,7 +138,7 @@
     * 
     * @return the numCCE.
     */
-   int getNumCCE()
+   synchronized int incrementNumCCE()
    {
       return numCCE;
    }




More information about the jboss-cvs-commits mailing list