groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GROOVY-7018) GroovyClassLoader addClasspath RegexPattern issue
Date Wed, 01 Jul 2015 06:53:04 GMT

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

ASF GitHub Bot commented on GROOVY-7018:
----------------------------------------

Github user Persi commented on a diff in the pull request:

    https://github.com/apache/incubator-groovy/pull/43#discussion_r33652610
  
    --- Diff: src/main/groovy/ui/GroovyMain.java ---
    @@ -391,17 +391,16 @@ public String getText(String uriOrFilename) throws IOException {
         protected GroovyCodeSource getScriptSource(boolean isScriptFile, String script) throws
IOException, URISyntaxException {
             //check the script is currently valid before starting a server against the script
             if (isScriptFile) {
    -            if (uriPattern.matcher(script).matches()) {
    +            // search for the file and if it exists don't try to use URIs ...
    +            File scriptFile = huntForTheScriptFile(script);
    +            if (!scriptFile.exists() && uriPattern.matcher(script).matches())
{
                     return new GroovyCodeSource(new URI(script));
    -            } else {
    -                return new GroovyCodeSource(huntForTheScriptFile(script));
                 }
    -        } else {
    -            return new GroovyCodeSource(script, "script_from_command_line", GroovyShell.DEFAULT_CODE_BASE);
    +            return new GroovyCodeSource(huntForTheScriptFile(script));
    --- End diff --
    
    Hello Paul,
    
    indeed I could reduce the calls to "huntForTheScriptFile" to one.
    
    I'll commit it.



> GroovyClassLoader addClasspath RegexPattern issue
> -------------------------------------------------
>
>                 Key: GROOVY-7018
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7018
>             Project: Groovy
>          Issue Type: Bug
>          Components: GroovyScriptEngine
>    Affects Versions: 2.3.6
>         Environment: JDK 1.7u51
>            Reporter: Stefan Leonhartsberger
>
> When adding Groovy Files from the file system to the GroovyClassLoader's classpath grabbed
from a default java properties file ("/" instead of "\"))
> Then the addClasspath() method uses a simple URL instead of the File URL
> This is due to a simple mistake in this mentioned method:
> {code}
> public void addClasspath(final String path) {
> ....
>      if (!URI_PATTERN.matcher(path).matches()) {
>           newURI = new File(path).toURI();
>      } else {
>           newURI = new URI(path);
>      }
> }
> private static final Pattern URI_PATTERN = Pattern.compile("\\p{Alpha}[-+.\\p{Alnum}]*:[^\\\\]*");
> {code}
> The URI_PATTERN which should match "URIs but not Windows filenames" doesn't work as expected.
> It matches i.e. C:/xxx/file.ext 
> This is related to using forward instead of backslashes - which souldn't matter.
> This was i.e. NOT the case for Groovy 2.1.3



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message