[shrinkwrap-issues] [JBoss JIRA] Closed: (SHRINKWRAP-275) Adding Resources via Classloader found in packaged jars results in NullPointerException

Andrew Rubinger (JIRA) jira-events at lists.jboss.org
Mon Jun 20 18:27:27 EDT 2011


     [ https://issues.jboss.org/browse/SHRINKWRAP-275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Rubinger closed SHRINKWRAP-275.
--------------------------------------



> 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
>            Assignee: Andrew Rubinger
>            Priority: Critical
>             Fix For: 1.0.0-beta-2
>
>
> 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