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