# HG changeset patch # User Jaroslav Tulach # Date 1355680137 -3600 # Node ID acba19bef0223c02cd83d5464c5eb7c7a03ca063 # Parent 46db65995983395ea5ccdddb826edce3a502b627 Real algorithm for reading (even large) arrays diff -r 46db65995983 -r acba19bef022 vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java Sat Dec 15 21:37:57 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/BytesLoader.java Sun Dec 16 18:48:57 2012 +0100 @@ -38,9 +38,13 @@ throw new IOException("Can't find " + name); } byte[] arr = new byte[is.available()]; - int len = is.read(arr); - if (len != arr.length) { - throw new IOException("Read only " + len + " wanting " + arr.length); + 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; } /* System.err.print("loader['" + name + "'] = [");