dew/src/main/java/org/apidesign/bck2brwsr/dew/ClassLoaderFileManager.java
changeset 1325 f7f25ea1bbec
parent 1324 263482b074e9
child 1326 8ae6a6c42b5f
     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  }