1.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java Sun Dec 16 21:19:26 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 }