[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