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