8200449: ReadAllReadNTransferTo fails occasionally
Chris Hegarty
chris.hegarty at oracle.com
Thu Mar 29 19:07:09 UTC 2018
+1
-Chris.
> On 29 Mar 2018, at 20:01, Brian Burkhalter <brian.burkhalter at 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");
> }
>
More information about the core-libs-dev
mailing list