[shrinkwrap-issues] [JBoss JIRA] Created: (SHRINKWRAP-275) Adding Resources via Classloader found in packaged jars results in NullPointerException
Aslak Knutsen (JIRA)
jira-events at lists.jboss.org
Tue May 3 09:40:18 EDT 2011
Adding Resources via Classloader found in packaged jars results in NullPointerException
---------------------------------------------------------------------------------------
Key: SHRINKWRAP-275
URL: https://issues.jboss.org/browse/SHRINKWRAP-275
Project: ShrinkWrap
Issue Type: Bug
Components: impl-base
Affects Versions: 1.0.0-alpha-13
Reporter: Aslak Knutsen
Priority: Critical
Adding a Resource via the String representation pointing to a Resource loaded via a ClassLoader and stored in Jar results in NullPoiinterException.
{code:title=StackTrace}
java.lang.NullPointerException
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addAsManifestResource(ContainerBase.java:608)
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addAsManifestResource(ContainerBase.java:557)
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addAsManifestResource(ContainerBase.java:545)
at org.jboss.shrinkwrap.impl.base.test.DynamicContainerTestBase.testAddManifestStringTargetResourceFromJar(DynamicContainerTestBase.java:303)
{code}
{code:title=org.jboss.shrinkwrap.impl.base.test.DynamicContainerTestBase}
@Test
@ArchiveType(ManifestContainer.class)
public void testAddManifestStringTargetResourceFromJar() throws Exception {
getManifestContainer().addAsManifestResource("java/lang/String.class", "String.class");
ArchivePath testPath = new BasicPath(getManifestPath(), "String.class");
Assert.assertTrue(
"Archive should contain " + testPath,
getArchive().contains(testPath));
}
{code}
The faulty logic comes from ContainerBase.fileFromResource(String), a URL returned by CL.getResource when packaged in a Jar is not usable as a new File(url.getFile()), the returned value is in the format: file:/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar!/java/lang/String.class
The File has the following states:
* !file.isFile,
* !file.isDirectory
* !file.exists,
* file.listFiles == null
* new FileInputStream(file) throws FileNotFoundException
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the shrinkwrap-issues
mailing list