+1 -Chris.
> On 29 Mar 2018, at 20:01, Brian Burkhalter <brian.burkhal...@oracle.com> > wrote: > > https://bugs.openjdk.java.net/browse/JDK-8200449 > > Problem is due to passing zero to Random.nextInt(int). Diff included below. > > Thanks, > > Brian > > --- a/test/jdk/java/io/ByteArrayInputStream/ReadAllReadNTransferTo.java > +++ b/test/jdk/java/io/ByteArrayInputStream/ReadAllReadNTransferTo.java > @@ -43,22 +43,22 @@ > private static Random random = RandomFactory.getRandom(); > > public static void main(String... args) throws IOException { > byte[] buf = new byte[SIZE]; > random.nextBytes(buf); > int position = random.nextInt(SIZE/2); > int size = random.nextInt(SIZE - position); > > ByteArrayInputStream bais = > new ByteArrayInputStream(buf, position, size); > - int off = random.nextInt(size / 2); > - int len = random.nextInt(size - off); > + int off = size < 2 ? 0 : random.nextInt(size / 2); > + int len = size - off < 1 ? 0 : random.nextInt(size - off); > > byte[] bN = new byte[off + len]; > if (bais.readNBytes(bN, off, len) != len) { > throw new RuntimeException("readNBytes return value"); > } > if (!Arrays.equals(bN, off, off + len, > buf, position, position + len)) { > throw new RuntimeException("readNBytes content"); > } >