1.1 --- a/dew/src/main/java/org/apidesign/bck2brwsr/dew/ClassLoaderFileManager.java Wed Oct 02 21:00:24 2013 +0200
1.2 +++ b/dew/src/main/java/org/apidesign/bck2brwsr/dew/ClassLoaderFileManager.java Wed Oct 02 22:32:57 2013 +0200
1.3 @@ -9,7 +9,9 @@
1.4 import java.io.BufferedReader;
1.5 import java.io.File;
1.6 import java.io.IOException;
1.7 +import java.io.InputStream;
1.8 import java.io.InputStreamReader;
1.9 +import java.net.URL;
1.10 import java.util.ArrayList;
1.11 import java.util.Collections;
1.12 import java.util.EnumSet;
1.13 @@ -61,7 +63,7 @@
1.14 @Override
1.15 public ClassLoader getClassLoader(Location location) {
1.16 if (canClassLoad(location)) {
1.17 - return getClass().getClassLoader();
1.18 + return new SafeClassLoader(getClass().getClassLoader());
1.19 } else {
1.20 return null;
1.21 }
1.22 @@ -328,4 +330,33 @@
1.23 return res;
1.24 }
1.25
1.26 + private static final class SafeClassLoader extends ClassLoader {
1.27 + private final ClassLoader delegate;
1.28 +
1.29 + SafeClassLoader(final ClassLoader delegate) {
1.30 + this.delegate = delegate;
1.31 +
1.32 + }
1.33 +
1.34 + @Override
1.35 + public URL getResource(String name) {
1.36 + return delegate.getResource(name);
1.37 + }
1.38 +
1.39 + @Override
1.40 + public InputStream getResourceAsStream(String name) {
1.41 + return delegate.getResourceAsStream(name);
1.42 + }
1.43 +
1.44 + @Override
1.45 + public Enumeration<URL> getResources(String name) throws IOException {
1.46 + return delegate.getResources(name);
1.47 + }
1.48 +
1.49 + @Override
1.50 + public Class<?> loadClass(String name) throws ClassNotFoundException {
1.51 + return delegate.loadClass(name);
1.52 + }
1.53 + }
1.54 +
1.55 }