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