[ 
https://issues.apache.org/jira/browse/FELIX-6416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17345595#comment-17345595
 ] 

Piotr Klimczak edited comment on FELIX-6416 at 5/15/21, 10:25 PM:
------------------------------------------------------------------

[~karlpauls] regarding FELIX-6326 I think what is going on is that FS path is 
being used as plain text as URL path and then back again as FS path.
 Reality is that FS paths and URL paths are slightly two different worlds and 
there are different requirements against the two.
 So in theory when we are creating URL path from FS path we should encode it 
and then decode it on the other end.


was (Author: nannou9):
[~karlpauls] regarding FELIX-6326 I think what is going on is that FS path is 
being used as plain text as URL path and then back again as FS path.
Reality is that FS paths and URL paths are slightly two different worlds.
So in theory when we are creating URL path from FS path we should encode it and 
then decode it on the other end.

> FELIX-6326 breaks JDK9+ URLClassLoader by allowing incorrect URL paths
> ----------------------------------------------------------------------
>
>                 Key: FELIX-6416
>                 URL: https://issues.apache.org/jira/browse/FELIX-6416
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-6.0.4
>         Environment: MacOS
>            Reporter: Piotr Klimczak
>            Priority: Blocker
>
> '#' sign represents URL fragment and is not valid URL path element.
> As per spec it is not allowed for it to be a part of path and instead must be 
> URL encoded.
> So for example for file in location in UNIX systems: 
> "/Users/piotrklimczak/test#", the valid URL encoding to load it in Java is:
> {code:java}
> new File(new URL("file:///Users/piotrklimczak/test%23").toURI()) {code}
> Works.
> While
> {code:java}
> new File(new URL("file:///Users/piotrklimczak/test#").toURI()) {code}
> Returns java.lang.IllegalArgumentException in Java: URI has a fragment 
> component
> FELIX-6326 effectively allows '#' to be accepted as valid URL path element, 
> which in turn breaks JDK9+ URLClassLoader which is using URL fragment (ref) 
> to deal with multi-release jars.
> This then breaks pax-transx-tm-narayana installation in Karaf 4.3.1 (which 
> uses URLClassLoader).
> In my opinion FELIX-6326 should be reverted and users should be encoding 
> special characters correctly in their resource paths as per above example.
> I've taken a risk to mark it as a blocker as effectively it blocks using 
> Narayana TM, rendering Karaf 4.3.1 not usable for us.
> Feel free to downgrade it if my judgement failed here.



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

Reply via email to