[shrinkwrap-issues] [JBoss JIRA] Created: (SHRINKWRAP-306) URL.openStream on directory URLs from the ShrinkWrapClassLoader throw an NPE

Andrew Rubinger (JIRA) jira-events at lists.jboss.org
Thu Jul 21 21:41:23 EDT 2011


URL.openStream on directory URLs from the ShrinkWrapClassLoader throw an NPE
----------------------------------------------------------------------------

                 Key: SHRINKWRAP-306
                 URL: https://issues.jboss.org/browse/SHRINKWRAP-306
             Project: ShrinkWrap
          Issue Type: Bug
          Components: api
    Affects Versions: 1.0.0-beta-4
            Reporter: Andrew Rubinger
            Assignee: Andrew Rubinger


This case should show the problem:

      // Make a new Archive with some content in a directory
      final String nestedResourceName = "nested/test";
      final Asset testAsset = new StringAsset("testContent");
      final GenericArchive archive = ShrinkWrap.create(GenericArchive.class).add(testAsset, nestedResourceName);
      
      // Make a CL to load the content
      final ClassLoader swCl = new ShrinkWrapClassLoader(archive);

      // Get the URL to the parent directory
      final URL nestedResourceUrl = swCl.getResource(nestedResourceName);
      final URL nestedResourceUpALevelUrl = new URL(nestedResourceUrl, "../");
      
      // openStream on the URL to the parent directory; should return null, not throw an exception
      final InputStream in = nestedResourceUpALevelUrl.openStream(); // << NPE

Due to:

https://github.com/shrinkwrap/shrinkwrap/blob/1.0.0-beta-4/api/src/main/java/org/jboss/shrinkwrap/api/classloader/ShrinkWrapClassLoader.java#L134

If "getAsset" from Node is returning null, this is a directory.  So return a null InputStream to denote as such; don't throw an NPE.

--
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