You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Justin Chu (Jira)" <ji...@apache.org> on 2022/06/22 14:50:00 UTC

[jira] [Comment Edited] (GROOVY-10663) PackageHelperImpl#getPackageNames unable to find package from path or jars that contains plus sign

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

Justin Chu edited comment on GROOVY-10663 at 6/22/22 2:49 PM:
--------------------------------------------------------------

You are welcome.

 

-May I know if the fix would backport to previous versions, such as 2.5.x, 3.x, 4.x?-

Never mind, I see the Fix Versions now. Thanks!


was (Author: justinchu):
You are welcome.

 

May I know if the fix would backport to previous versions, such as 2.5.x, 3.x, 4.x?

> PackageHelperImpl#getPackageNames unable to find package from path or jars that contains plus sign
> --------------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-10663
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10663
>             Project: Groovy
>          Issue Type: Bug
>          Components: Groovysh
>    Affects Versions: 3.x, 2.5.x, 4.x, 5.x
>         Environment: Linux, java8u332
>            Reporter: Justin Chu
>            Assignee: Paul King
>            Priority: Minor
>             Fix For: 5.0.0-alpha-1, 2.5.18, 3.0.12, 4.0.4
>
>
> PackageHelperImpl#getPackageNames would not be able to find and return
> the package names if the package path or filename of the jar contains
> plus signs due to the behavior of URLDecoder#decode.
> URLDecoder#decode would decode the plus sign (i.e. {{{}+{}}}) as empty space, causing {{{}java.io.FileNotFoundException{}}}.
>  
> To reproduce the issue, include a plus sign in the {{groovyVersion}} in the {{{}gradle.properties{}}}, e.g. {{{}5.0.0+SNAPSHOT{}}}, then run the {{{}PackageHelperImplTest{}}}, and {{testLoadAndGetPackagesEmpty}} would fail.
>  
> {code}
> WARN [org.apache.groovy.groovysh.util.PackageHelperImpl] Error opening jar file : '/home/jus/repos/apache/groovy/build/libs/groovy-raw-5.0.0+SNAPSHOT.jar' : java.io.FileNotFoundException: /home/jus/repos/apache/groovy/build/libs/groovy-raw-5.0.0 SNAPSHOT.jar (No such file or directory)
> ...
> {code}
>  
> Proposing the fix
> Use {{Paths.get(url.toURI()).toFile()}} instead of {{{}new File(URLDecoder.decode(url.file, 'UTF-8')){}}}.
>  
> Github PR: [https://github.com/apache/groovy/pull/1731]



--
This message was sent by Atlassian Jira
(v8.20.7#820007)