[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