diff -r 394379b81e73 -r 32653a09f0db emul/src/main/java/java/io/DataInputStream.java --- a/emul/src/main/java/java/io/DataInputStream.java Sat Nov 10 17:27:07 2012 +0100 +++ b/emul/src/main/java/java/io/DataInputStream.java Sat Nov 10 19:01:28 2012 +0100 @@ -529,7 +529,7 @@ if (--room < 0) { buf = new char[offset + 128]; room = buf.length - offset - 1; - System.arraycopy(lineBuffer, 0, buf, 0, offset); + arraycopy(lineBuffer, 0, buf, 0, offset); lineBuffer = buf; } buf[offset++] = (char) c; @@ -660,4 +660,9 @@ // The number of chars produced may be less than utflen return new String(chararr, 0, chararr_count); } + static void arraycopy(char[] value, int srcBegin, char[] dst, int dstBegin, int count) { + while (count-- > 0) { + dst[dstBegin++] = value[srcBegin++]; + } + } }