diff -r 0d22420c0b65 core.startup/test/unit/src/org/netbeans/core/startup/layers/CountingSecurityManager.java --- a/core.startup/test/unit/src/org/netbeans/core/startup/layers/CountingSecurityManager.java Mon Mar 02 08:45:36 2009 +0100 +++ b/core.startup/test/unit/src/org/netbeans/core/startup/layers/CountingSecurityManager.java Mon Mar 02 12:59:15 2009 +0100 @@ -443,7 +443,7 @@ if (file.endsWith("tests.jar")) { return false; } - if (file.startsWith(System.getProperty("java.home").replaceAll("/[^/]*$", ""))) { + if (file.startsWith(System.getProperty("java.home").replaceAll("[/\\\\][^/\\\\]*$", ""))) { return false; } if (file.startsWith(System.getProperty("netbeans.home") + File.separator + "lib")) { diff -r 0d22420c0b65 ide.ergonomics/test/unit/src/org/netbeans/modules/ide/ergonomics/fod/FodDataObjectFactoryTest.java --- a/ide.ergonomics/test/unit/src/org/netbeans/modules/ide/ergonomics/fod/FodDataObjectFactoryTest.java Mon Mar 02 08:45:36 2009 +0100 +++ b/ide.ergonomics/test/unit/src/org/netbeans/modules/ide/ergonomics/fod/FodDataObjectFactoryTest.java Mon Mar 02 12:59:15 2009 +0100 @@ -45,6 +45,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.logging.Level; +import java.util.logging.Logger; import junit.framework.Test; import org.netbeans.junit.NbModuleSuite; import org.netbeans.junit.NbTestCase; diff -r 0d22420c0b65 ide.kit/test/qa-functional/src/org/netbeans/test/ide/CountingSecurityManager.java --- a/ide.kit/test/qa-functional/src/org/netbeans/test/ide/CountingSecurityManager.java Mon Mar 02 08:45:36 2009 +0100 +++ b/ide.kit/test/qa-functional/src/org/netbeans/test/ide/CountingSecurityManager.java Mon Mar 02 12:59:15 2009 +0100 @@ -443,7 +443,7 @@ if (file.endsWith("tests.jar")) { return false; } - if (file.startsWith(System.getProperty("java.home").replaceAll("/[^/]*$", ""))) { + if (file.startsWith(System.getProperty("java.home").replaceAll("[/\\\\][^/\\\\]*$", ""))) { return false; } if (!acceptFileInDir(file, System.getProperty("netbeans.home"))) { diff -r 0d22420c0b65 nbjunit/src/org/netbeans/junit/Log.java --- a/nbjunit/src/org/netbeans/junit/Log.java Mon Mar 02 08:45:36 2009 +0100 +++ b/nbjunit/src/org/netbeans/junit/Log.java Mon Mar 02 12:59:15 2009 +0100 @@ -304,8 +304,11 @@ sb.append("\n ").append(s.toString()); } } - - getLog(record).println(sb.toString()); + try { + getLog(record).println(sb.toString()); + } catch (LinkageError err) { + // prevent circular references + } messages.append(sb.toString()); diff -r 0d22420c0b65 o.n.bootstrap/src/org/netbeans/JarClassLoader.java --- a/o.n.bootstrap/src/org/netbeans/JarClassLoader.java Mon Mar 02 08:45:36 2009 +0100 +++ b/o.n.bootstrap/src/org/netbeans/JarClassLoader.java Mon Mar 02 12:59:15 2009 +0100 @@ -77,7 +77,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.zip.ZipEntry; -import org.openide.util.Exceptions; +import org.openide.util.Utilities; /** * A ProxyClassLoader capable of loading classes from a set of jar files @@ -379,21 +379,23 @@ return file.getPath(); } - private static String toURI(File file) { - String sp = slashify(file.getPath(), false); - if (sp.startsWith("//")) // NOI18N - sp = "//" + sp; // NOI18N - return "jar:file:"+ sp +"!/"; // NOI18N - } - private static String slashify(String path, boolean isDirectory) { - String p = path; - if (File.separatorChar != '/') - p = p.replace(File.separatorChar, '/'); - if (!p.startsWith("/")) - p = "/" + p; - if (!p.endsWith("/") && isDirectory) - p = p + "/"; - return p; + private static String toURI(final File file) { + class VFile extends File { + public VFile() { + super(file.getPath()); + } + + @Override + public boolean isDirectory() { + return false; + } + + @Override + public File getAbsoluteFile() { + return this; + } + } + return "jar:" + new VFile().toURI() + "!/"; // NOI18N } @Override @@ -740,12 +742,12 @@ throw new IOException("Malformed JAR-protocol URL: " + u); } int from; - if (url.startsWith("file:")) { - from = 5; + if (url.startsWith("file:/")) { + from = Utilities.isWindows() ? 6 : 5; } else { from = 0; } - String jar = url.substring(from, bang); + String jar = url.substring(from, bang).replace('/', File.separatorChar); String _name = url.substring(bang+2); Source _src = Source.sources.get(jar); if (_src == null) {