[shrinkwrap-issues] [JBoss JIRA] Updated: (SHRINKWRAP-275) Adding Resources via Classloader found in packaged jars results in NullPointerException
Aslak Knutsen (JIRA)
jira-events at lists.jboss.org
Mon May 16 11:01:01 EDT 2011
[ https://issues.jboss.org/browse/SHRINKWRAP-275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aslak Knutsen updated SHRINKWRAP-275:
-------------------------------------
Affects Version/s: 1.0.0-alpha-13
> 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, 1.0.0-beta-1
> 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