Oskar created FELIX-6326:
----------------------------

             Summary: Cannot read bundled resources with hash in the filename
                 Key: FELIX-6326
                 URL: https://issues.apache.org/jira/browse/FELIX-6326
             Project: Felix
          Issue Type: Bug
          Components: Framework
            Reporter: Oskar


Trying to access a resource via class.getResourceAsStream() fails with NPE if 
the file name contains hash (#). 

Example bundle code to verify the fault:

@Component(immediate = true)
public class ResourceReader
 {
  private static final Logger LOG = LogManager.getLogger();

  @Activate
  public void activate()
 

{     String fileNameWithoutHashes = "file_without_hash.txt";     
logFileContent(fileNameWithoutHashes);String fileNameWithHashes = 
"file#with#hash.txt";     logFileContent(fileNameWithHashes);    }
  private void logFileContent(String resourceFileName)}}
  {
    InputStream stream = ResourceReader.class.getResourceAsStream("/" + 
resourceFileName);
    try (BufferedReader bufferedReader = new BufferedReader(new 
InputStreamReader(stream)))
   

{       LOG.info(bufferedReader.readLine());     }
    catch (Exception e)
   

{       LOG.error("FAILURE: Could not read " + resourceFileName);     }
  }
}

Resource files located in bundle root:
/file_without_hash.txt - content irrelevant
/file#with#hash.txt - content irrelevant

Problem is seen in Karaf using Felix framework. Switching to Equinox made the 
problem disappear.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to