[jboss-cvs] JBossAS SVN: r60352 - trunk/jmx/src/main/org/jboss/mx/loading.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 6 17:49:36 EST 2007


Author: scott.stark at jboss.org
Date: 2007-02-06 17:49:36 -0500 (Tue, 06 Feb 2007)
New Revision: 60352

Modified:
   trunk/jmx/src/main/org/jboss/mx/loading/LoadMgr3.java
Log:
JBAS-4066, Retry if the load error is an instanceof ClassCircularityError
or exactly of type LinkageError.class

Modified: trunk/jmx/src/main/org/jboss/mx/loading/LoadMgr3.java
===================================================================
--- trunk/jmx/src/main/org/jboss/mx/loading/LoadMgr3.java	2007-02-06 22:48:35 UTC (rev 60351)
+++ trunk/jmx/src/main/org/jboss/mx/loading/LoadMgr3.java	2007-02-06 22:49:36 UTC (rev 60352)
@@ -174,6 +174,8 @@
          return true;
       }
 
+      if( task.classname.equals("com.sun.ts.tests.webservices.deploy.warDeploy.HelloJavaBean") )
+         log.info("Saw "+task.classname);
       // Next get the set of class loaders from the packages map
       Set pkgSet = repository.getPackageClassLoaders(task.classname);
       if( pkgSet == null || pkgSet.size() == 0 )
@@ -303,6 +305,8 @@
          if( trace )
             log.trace("End beginLoadTask, ClassNotFoundException");
          String msg = "No ClassLoaders found for: "+task.classname;
+         if( task.classname.equals("com.sun.ts.tests.webservices.deploy.warDeploy.HelloJavaBean") )
+            log.info("Saw "+task.classname);
          throw new ClassNotFoundException(msg);
       }
 
@@ -401,7 +405,9 @@
       }
       catch(Throwable e)
       {
-         if( e instanceof ClassCircularityError /*&& taskList.size() > 0 */ )
+         boolean retry = e instanceof ClassCircularityError
+            || e.getClass().equals(LinkageError.class);
+         if( retry )
          {
             /* Reschedule this task after all existing tasks to allow the
             current load tasks which are conflicting to complete.
@@ -413,7 +419,7 @@
                // Reschedule and update the loadTask.threadTaskCount
                scheduleTask(loadTask, ucl3, Integer.MAX_VALUE, true, trace);
             }
-            catch(ClassNotFoundException ex)
+            catch(Throwable ex)
             {
                loadTask.setLoadError(ex);
                log.warn("Failed to reschedule task after CCE", ex);




More information about the jboss-cvs-commits mailing list