[ 
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