vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java
changeset 336 4c0c01da763d
parent 334 b5dd05670bef
     1.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java	Sun Dec 16 20:48:21 2012 +0100
     1.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java	Mon Dec 17 09:46:09 2012 +0100
     1.3 @@ -19,6 +19,8 @@
     1.4  
     1.5  import java.io.IOException;
     1.6  import java.io.InputStream;
     1.7 +import java.net.URL;
     1.8 +import java.util.Enumeration;
     1.9  import java.util.Set;
    1.10  import java.util.TreeSet;
    1.11  
    1.12 @@ -48,20 +50,27 @@
    1.13      }
    1.14  
    1.15      static byte[] readClass(String name) throws IOException {
    1.16 -        InputStream is = BytesLoader.class.getClassLoader().getResourceAsStream(name);
    1.17 -        if (is == null) {
    1.18 +        URL u = null;
    1.19 +        Enumeration<URL> en = BytesLoader.class.getClassLoader().getResources(name);
    1.20 +        while (en.hasMoreElements()) {
    1.21 +            u = en.nextElement();
    1.22 +        }
    1.23 +        if (u == null) {
    1.24              throw new IOException("Can't find " + name);
    1.25          }
    1.26 -        byte[] arr = new byte[is.available()];
    1.27 -        int offset = 0;
    1.28 -        while (offset < arr.length) {
    1.29 -            int len = is.read(arr, offset, arr.length - offset);
    1.30 -            if (len == -1) {
    1.31 -                throw new IOException("Can't read " + name);
    1.32 +        try (InputStream is = u.openStream()) {
    1.33 +            byte[] arr;
    1.34 +            arr = new byte[is.available()];
    1.35 +            int offset = 0;
    1.36 +            while (offset < arr.length) {
    1.37 +                int len = is.read(arr, offset, arr.length - offset);
    1.38 +                if (len == -1) {
    1.39 +                    throw new IOException("Can't read " + name);
    1.40 +                }
    1.41 +                offset += len;
    1.42              }
    1.43 -            offset += len;
    1.44 +            return arr;
    1.45          }
    1.46 -        return arr;
    1.47      }
    1.48      
    1.49  }