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