[ 
https://issues.apache.org/jira/browse/KARAF-6845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oskar updated KARAF-6845:
-------------------------
    Description: 
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 used:
 src/main/resources/file_without_hash.txt - content irrelevant
 src/main/resources/file#with#hash.txt - content irrelevant

 

_Running the test outside of Karaf do not give any issues._

  was:
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 used:
 src/main/resources/file_without_hash.txt - content irrelevant
 src/main/resources/file#with#hash.txt - content irrelevant

 

_Running the test outside of Karaf do not give any issues._


> Cannot read resource files with hash sign in the name
> -----------------------------------------------------
>
>                 Key: KARAF-6845
>                 URL: https://issues.apache.org/jira/browse/KARAF-6845
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>    Affects Versions: 4.1.4, 4.3.0, 4.2.7
>         Environment: Karaf 4.1.4, 4.2.7, 4.3.0.RC1 executed with both Java8 
> and Java11 on Ubuntu and Suse Linux
>            Reporter: Oskar
>            Priority: Major
>
> 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 used:
>  src/main/resources/file_without_hash.txt - content irrelevant
>  src/main/resources/file#with#hash.txt - content irrelevant
>  
> _Running the test outside of Karaf do not give any issues._



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

Reply via email to