# HG changeset patch # User Jaroslav Tulach # Date 1355733969 -3600 # Node ID 4c0c01da763d900e3450d757085c443283046e08 # Parent b8fd5ab83a2039a1cddbb5a6344187715f91e634 If available, prefer emulation diff -r b8fd5ab83a20 -r 4c0c01da763d vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java Sun Dec 16 21:19:26 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java Mon Dec 17 09:46:09 2012 +0100 @@ -19,6 +19,8 @@ import java.io.IOException; import java.io.InputStream; +import java.net.URL; +import java.util.Enumeration; import java.util.Set; import java.util.TreeSet; @@ -48,20 +50,27 @@ } static byte[] readClass(String name) throws IOException { - InputStream is = BytesLoader.class.getClassLoader().getResourceAsStream(name); - if (is == null) { + URL u = null; + Enumeration en = BytesLoader.class.getClassLoader().getResources(name); + while (en.hasMoreElements()) { + u = en.nextElement(); + } + if (u == null) { throw new IOException("Can't find " + name); } - byte[] arr = new byte[is.available()]; - int offset = 0; - while (offset < arr.length) { - int len = is.read(arr, offset, arr.length - offset); - if (len == -1) { - throw new IOException("Can't read " + name); + try (InputStream is = u.openStream()) { + byte[] arr; + arr = new byte[is.available()]; + int offset = 0; + while (offset < arr.length) { + int len = is.read(arr, offset, arr.length - offset); + if (len == -1) { + throw new IOException("Can't read " + name); + } + offset += len; } - offset += len; + return arr; } - return arr; } }