[jboss-svn-commits] JBoss Common SVN: r3483 - in declarchive/trunk/impl-base/src: test/java/org/jboss/declarchive/impl/base/asset and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 25 07:03:42 EDT 2009


Author: aslak
Date: 2009-08-25 07:03:42 -0400 (Tue, 25 Aug 2009)
New Revision: 3483

Modified:
   declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/asset/ClassAsset.java
   declarchive/trunk/impl-base/src/test/java/org/jboss/declarchive/impl/base/asset/ClassAssetTestCase.java
Log:
TMPARCH-19 Fixed issue with Null ClassLoader returned if Class loaded by Bootstrap ClassLoader, use TCCL instead.

Modified: declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/asset/ClassAsset.java
===================================================================
--- declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/asset/ClassAsset.java	2009-08-25 05:36:00 UTC (rev 3482)
+++ declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/asset/ClassAsset.java	2009-08-25 11:03:42 UTC (rev 3483)
@@ -68,7 +68,16 @@
    @Override
    public InputStream getStream()
    {
-      return new ClassLoaderAsset(getResourceNameOfClass(clazz), clazz.getClassLoader()).getStream();
+      /*
+       * https://jira.jboss.org/jira/browse/TMPARCH-19
+       * If class is loaded by the Bootstrap ClassLoader, getClassLoader will return null.
+       * Use Thread Current Context ClassLoader instead.
+       */
+      ClassLoader classLoader= clazz.getClassLoader();
+      if(classLoader == null) {
+         classLoader = Thread.currentThread().getContextClassLoader();
+      }
+      return new ClassLoaderAsset(getResourceNameOfClass(clazz), classLoader).getStream();
    }
 
    /**

Modified: declarchive/trunk/impl-base/src/test/java/org/jboss/declarchive/impl/base/asset/ClassAssetTestCase.java
===================================================================
--- declarchive/trunk/impl-base/src/test/java/org/jboss/declarchive/impl/base/asset/ClassAssetTestCase.java	2009-08-25 05:36:00 UTC (rev 3482)
+++ declarchive/trunk/impl-base/src/test/java/org/jboss/declarchive/impl/base/asset/ClassAssetTestCase.java	2009-08-25 11:03:42 UTC (rev 3483)
@@ -56,4 +56,19 @@
                IllegalArgumentException.class, e.getClass());
       }
    }
+   
+   /**
+    * https://jira.jboss.org/jira/browse/TMPARCH-19
+    * <br/><br/>
+    * A {@link Class} loaded by the Bootstrap ClassLoader will return a null {@link ClassLoader}, 
+    * should use {@link Thread} current context {@link ClassLoader} instead.
+    * 
+    * @throws Exception
+    */
+   @Test
+   public void shouldSwitchToTCCLIfClassIsLoadedByBootstrapClassLoader() throws Exception 
+   {
+      Asset asset = new ClassAsset(Class.class);
+      asset.getStream();
+   }
 }



More information about the jboss-svn-commits mailing list