From 1c66c2d26df3dc4a2f9a7874262346bc56c3a5ba Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 24 Jun 2010 17:39:24 +0400 Subject: [PATCH] yet another attempt to handle spaces in URLs --- .../groovy/compiler/rt/GroovycRunner.java | 17 +++++++++++++---- .../groovy/compiler/GroovyCompilerBase.java | 5 +---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/plugins/groovy/rt/src/org/jetbrains/groovy/compiler/rt/GroovycRunner.java b/plugins/groovy/rt/src/org/jetbrains/groovy/compiler/rt/GroovycRunner.java index 57865443cb40..d7635078decd 100644 --- a/plugins/groovy/rt/src/org/jetbrains/groovy/compiler/rt/GroovycRunner.java +++ b/plugins/groovy/rt/src/org/jetbrains/groovy/compiler/rt/GroovycRunner.java @@ -24,6 +24,8 @@ import org.codehaus.groovy.tools.javac.JavaAwareResolveVisitor; import org.codehaus.groovy.tools.javac.JavaStubGenerator; import java.io.*; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.security.AccessController; import java.security.PrivilegedAction; @@ -341,10 +343,17 @@ public class GroovycRunner { final Enumeration resources = super.getResources(name); final ArrayList list = Collections.list(resources); for (Iterator iterator = list.iterator(); iterator.hasNext();) { - String file = ((URL)iterator.next()).getFile(); - System.out.println("Enumerated:" + file); - if (file.startsWith(finalOutput) || file.startsWith("/" + finalOutput)) { - iterator.remove(); + final URL url = (URL)iterator.next(); + if ("file".equals(url.getProtocol())) { + try { + final String file = new File(new URI(url.toString())).getCanonicalPath(); + System.out.println("Enumerated:" + file); + if (file.startsWith(finalOutput) || file.startsWith("/" + finalOutput)) { + iterator.remove(); + } + } + catch (URISyntaxException ignored) { + } } } return Collections.enumeration(list); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerBase.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerBase.java index 8e74963b88ee..50a5991ce0bc 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerBase.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerBase.java @@ -71,7 +71,6 @@ import org.jetbrains.plugins.groovy.lang.psi.GroovyFileBase; import org.jetbrains.plugins.groovy.util.GroovyUtils; import java.io.*; -import java.net.URL; import java.nio.charset.Charset; import java.util.*; @@ -304,9 +303,7 @@ public abstract class GroovyCompilerBase implements TranslatingCompiler { printer.println(PathUtil.getLocalPath(outputDir)); printer.println(GroovycRunner.FINAL_OUTPUTPATH); - final URL finalUrl = VfsUtil.convertToURL(finalOutputDir.getUrl()); - LOG.assertTrue(finalUrl != null, finalOutputDir.getPath()); - printer.println(finalUrl.getFile()); + printer.println(FileUtil.toSystemDependentName(finalOutputDir.getPath())); printer.close();