[jboss-cvs] JBossAS SVN: r86894 - in projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi: translator and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 7 02:43:31 EDT 2009


Author: alesj
Date: 2009-04-07 02:43:31 -0400 (Tue, 07 Apr 2009)
New Revision: 86894

Modified:
   projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/ClassLoaderSystem.java
   projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/translator/TranslatorUtils.java
Log:
Check for null translators.

Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/ClassLoaderSystem.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/ClassLoaderSystem.java	2009-04-07 06:26:17 UTC (rev 86893)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/ClassLoaderSystem.java	2009-04-07 06:43:31 UTC (rev 86894)
@@ -538,7 +538,11 @@
    public void setTranslator(Translator translator)
    {
       log.debug(this + " set translator to " + translator);
-      translators = Collections.singletonList(translator);
+
+      if (translator != null)
+         translators = Collections.singletonList(translator);
+      else
+         translators = null;
    }
 
    @Override

Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/translator/TranslatorUtils.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/translator/TranslatorUtils.java	2009-04-07 06:26:17 UTC (rev 86893)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/translator/TranslatorUtils.java	2009-04-07 06:43:31 UTC (rev 86894)
@@ -54,9 +54,20 @@
       if (translators == null || translators.isEmpty())
          return byteCode;
 
+      boolean trace = log.isTraceEnabled();
+
       byte[] result = byteCode;
       for (Translator translator : translators)
       {
+         // sanity check
+         if (translator == null)
+         {
+            if (trace)
+               log.trace("Null translator, classLoader: " + classLoader + ", className: " + className);
+
+            continue;
+         }
+
          result = translator.transform(classLoader, className, null, protectionDomain, result);
       }
       return result;
@@ -72,11 +83,22 @@
    {
       if (translators != null && translators.isEmpty() == false)
       {
+         boolean trace = log.isTraceEnabled();
+
          // go in reverse order
          ListIterator<Translator> iter = translators.listIterator(translators.size() - 1);
          while(iter.hasPrevious())
          {
             Translator translator = iter.previous();
+            // sanity check
+            if (translator == null)
+            {
+               if (trace)
+                  log.trace("Null translator, classLoader: " + classLoader);
+
+               continue;
+            }
+
             try
             {
                translator.unregisterClassLoader(classLoader);




More information about the jboss-cvs-commits mailing list