From: Jan P. <jp...@us...> - 2006-09-20 19:07:11
|
Update of /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv27895/src/org/epic/debug Modified Files: Tag: stable CGITarget.java Log Message: (Hopefully) Fixed bug [ 1557015 ] Debugger could not start web server Index: CGITarget.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug/CGITarget.java,v retrieving revision 1.18.2.1 retrieving revision 1.18.2.2 diff -u -d -r1.18.2.1 -r1.18.2.2 --- CGITarget.java 2 Sep 2006 13:06:19 -0000 1.18.2.1 +++ CGITarget.java 20 Sep 2006 19:06:57 -0000 1.18.2.2 @@ -230,7 +230,8 @@ assert "file".equalsIgnoreCase(brazilUrl.getProtocol()) : "brazil_mini.jar must reside in the file system"; - cp.add(new File(new URI(brazilUrl.toExternalForm()))); + + cp.add(urlToFile(brazilUrl)); Bundle bundle = PerlDebugPlugin.getDefault().getBundle(); URL binUrl = bundle.getEntry("/bin"); @@ -243,7 +244,7 @@ // 'bin' folder exists = we're running inside of // a hosted workbench - cp.add(new File(new URI(binUrl.toExternalForm()))); + cp.add(urlToFile(binUrl)); } else { @@ -258,8 +259,8 @@ assert path.startsWith("file:"); assert path.endsWith(".jar!/"); - cp.add(new File(new URI( - path.substring(0, path.length()-2)))); + URL jarUrl = new URL(path.substring(0, path.length()-2)); + cp.add(urlToFile(jarUrl)); } else { @@ -268,7 +269,7 @@ // org.epic.debug was deployed as a directory: // add this directory to the classpath - cp.add(new File(new URI(dirUrl.toExternalForm()))); + cp.add(urlToFile(dirUrl)); } } return cp; @@ -428,6 +429,23 @@ return true; } + private File urlToFile(URL url) + { + String urlString = url.toExternalForm(); + + if (urlString.matches("^file:/[A-Za-z]:/.*$")) + { + // Windows URL with volume letter: file:/C:/foo/bar/blah.txt + return new File(urlString.substring(6)); + } + else + { + // Unix URLs look like this: file:/foo/bar/blah.txt + assert urlString.matches("^file:/[^/].*$"); + return new File(urlString.substring(5)); + } + } + private static class BrazilProps { private StringBuffer props; |