8259911: byteArrayViewVarHandle should throw ArrayIndexOutOfBoundsException

Reviewed-by: jvernee, mchung
This commit is contained in:
Claes Redestad 2021-01-20 23:42:58 +00:00
parent 1f47de5f6a
commit 27cc62a5c7
30 changed files with 534 additions and 521 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -4371,7 +4371,7 @@ return mh1;
* {@code double}.
* <p>
* Access of bytes at a given index will result in an
* {@code IndexOutOfBoundsException} if the index is less than {@code 0}
* {@code ArrayIndexOutOfBoundsException} if the index is less than {@code 0}
* or greater than the {@code byte[]} array length minus the size (in bytes)
* of {@code T}.
* <p>

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -35,7 +35,9 @@ import jdk.internal.vm.annotation.ForceInline;
import java.nio.ByteBuffer;
import java.nio.ReadOnlyBufferException;
import java.util.List;
import java.util.Objects;
import java.util.function.BiFunction;
import static java.lang.invoke.MethodHandleStatics.UNSAFE;
@ -107,9 +109,12 @@ final class VarHandleByteArrayAs$Type$s extends VarHandleByteArrayBase {
return at.accessModeType(byte[].class, $type$.class, int.class);
}
private static final BiFunction<String, List<Number>, ArrayIndexOutOfBoundsException>
OOBEF = Preconditions.outOfBoundsExceptionFormatter(ArrayIndexOutOfBoundsException::new);
@ForceInline
static int index(byte[] ba, int index) {
return Preconditions.checkIndex(index, ba.length - ALIGN, null);
return Preconditions.checkIndex(index, ba.length - ALIGN, OOBEF);
}
@ForceInline

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -70,6 +70,14 @@ abstract class VarHandleBaseTest {
checkWithThrowable(IndexOutOfBoundsException.class, message, r);
}
static void checkAIOOBE(ThrowingRunnable r) {
checkWithThrowable(ArrayIndexOutOfBoundsException.class, null, r);
}
static void checkAIOOBE(Object message, ThrowingRunnable r) {
checkWithThrowable(ArrayIndexOutOfBoundsException.class, message, r);
}
static void checkASE(ThrowingRunnable r) {
checkWithThrowable(ArrayStoreException.class, null, r);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1204,116 +1204,116 @@ public class VarHandleTestAccessBoolean extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean x = (boolean) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean x = (boolean) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean x = (boolean) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean x = (boolean) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, true, false);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = (boolean) vh.compareAndExchange(array, ci, false, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = (boolean) vh.compareAndExchangeAcquire(array, ci, false, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = (boolean) vh.compareAndExchangeRelease(array, ci, false, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, true, false);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, true, false);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, true, false);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, true, false);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndSet(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndSetAcquire(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndSetRelease(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseOr(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseOrAcquire(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseOrRelease(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseAnd(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseAndAcquire(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseAndRelease(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseXor(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseXorAcquire(array, ci, true);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean o = (boolean) vh.getAndBitwiseXorRelease(array, ci, true);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1230,127 +1230,127 @@ public class VarHandleTestAccessByte extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte x = (byte) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte x = (byte) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte x = (byte) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte x = (byte) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, (byte)0x01, (byte)0x23);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte r = (byte) vh.compareAndExchange(array, ci, (byte)0x23, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte r = (byte) vh.compareAndExchangeAcquire(array, ci, (byte)0x23, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte r = (byte) vh.compareAndExchangeRelease(array, ci, (byte)0x23, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, (byte)0x01, (byte)0x23);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, (byte)0x01, (byte)0x23);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, (byte)0x01, (byte)0x23);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, (byte)0x01, (byte)0x23);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndSet(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndSetAcquire(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndSetRelease(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndAdd(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndAddAcquire(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndAddRelease(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseOr(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseOrAcquire(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseOrRelease(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseAnd(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseAndAcquire(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseAndRelease(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseXor(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseXorAcquire(array, ci, (byte)0x01);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
byte o = (byte) vh.getAndBitwiseXorRelease(array, ci, (byte)0x01);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1230,127 +1230,127 @@ public class VarHandleTestAccessChar extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
char x = (char) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char x = (char) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char x = (char) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char x = (char) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, '\u0123', '\u4567');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char r = (char) vh.compareAndExchange(array, ci, '\u4567', '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char r = (char) vh.compareAndExchangeAcquire(array, ci, '\u4567', '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char r = (char) vh.compareAndExchangeRelease(array, ci, '\u4567', '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, '\u0123', '\u4567');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, '\u0123', '\u4567');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, '\u0123', '\u4567');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, '\u0123', '\u4567');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndSet(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndSetAcquire(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndSetRelease(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndAdd(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndAddAcquire(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndAddRelease(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseOr(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseOrAcquire(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseOrRelease(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseAnd(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseAndAcquire(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseAndRelease(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseXor(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseXorAcquire(array, ci, '\u0123');
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char o = (char) vh.getAndBitwiseXorRelease(array, ci, '\u0123');
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1156,91 +1156,91 @@ public class VarHandleTestAccessDouble extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
double x = (double) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double x = (double) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double x = (double) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double x = (double) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, 1.0d, 2.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double r = (double) vh.compareAndExchange(array, ci, 2.0d, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double r = (double) vh.compareAndExchangeAcquire(array, ci, 2.0d, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double r = (double) vh.compareAndExchangeRelease(array, ci, 2.0d, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, 1.0d, 2.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, 1.0d, 2.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, 1.0d, 2.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, 1.0d, 2.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndSet(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndSetAcquire(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndSetRelease(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndAdd(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndAddAcquire(array, ci, 1.0d);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndAddRelease(array, ci, 1.0d);
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1156,91 +1156,91 @@ public class VarHandleTestAccessFloat extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
float x = (float) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float x = (float) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float x = (float) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float x = (float) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, 1.0f, 2.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float r = (float) vh.compareAndExchange(array, ci, 2.0f, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float r = (float) vh.compareAndExchangeAcquire(array, ci, 2.0f, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float r = (float) vh.compareAndExchangeRelease(array, ci, 2.0f, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, 1.0f, 2.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, 1.0f, 2.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, 1.0f, 2.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, 1.0f, 2.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndSet(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndSetAcquire(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndSetRelease(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndAdd(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndAddAcquire(array, ci, 1.0f);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndAddRelease(array, ci, 1.0f);
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1230,127 +1230,127 @@ public class VarHandleTestAccessInt extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
int x = (int) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int x = (int) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int x = (int) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int x = (int) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, 0x01234567, 0x89ABCDEF);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int r = (int) vh.compareAndExchange(array, ci, 0x89ABCDEF, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int r = (int) vh.compareAndExchangeAcquire(array, ci, 0x89ABCDEF, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int r = (int) vh.compareAndExchangeRelease(array, ci, 0x89ABCDEF, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, 0x01234567, 0x89ABCDEF);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, 0x01234567, 0x89ABCDEF);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, 0x01234567, 0x89ABCDEF);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, 0x01234567, 0x89ABCDEF);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndSet(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndSetAcquire(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndSetRelease(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndAdd(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndAddAcquire(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndAddRelease(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseOr(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseOrAcquire(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseOrRelease(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseAnd(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseAndAcquire(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseAndRelease(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseXor(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseXorAcquire(array, ci, 0x01234567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseXorRelease(array, ci, 0x01234567);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1230,127 +1230,127 @@ public class VarHandleTestAccessLong extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
long x = (long) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long x = (long) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long x = (long) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long x = (long) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, 0x0123456789ABCDEFL, 0xCAFEBABECAFEBABEL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long r = (long) vh.compareAndExchange(array, ci, 0xCAFEBABECAFEBABEL, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long r = (long) vh.compareAndExchangeAcquire(array, ci, 0xCAFEBABECAFEBABEL, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long r = (long) vh.compareAndExchangeRelease(array, ci, 0xCAFEBABECAFEBABEL, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, 0x0123456789ABCDEFL, 0xCAFEBABECAFEBABEL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, 0x0123456789ABCDEFL, 0xCAFEBABECAFEBABEL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, 0x0123456789ABCDEFL, 0xCAFEBABECAFEBABEL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, 0x0123456789ABCDEFL, 0xCAFEBABECAFEBABEL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndSet(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndSetAcquire(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndSetRelease(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndAdd(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndAddAcquire(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndAddRelease(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseOr(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseOrAcquire(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseOrRelease(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseAnd(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseAndAcquire(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseAndRelease(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseXor(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseXorAcquire(array, ci, 0x0123456789ABCDEFL);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseXorRelease(array, ci, 0x0123456789ABCDEFL);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1230,127 +1230,127 @@ public class VarHandleTestAccessShort extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
short x = (short) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short x = (short) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short x = (short) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short x = (short) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, (short)0x0123, (short)0x4567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short r = (short) vh.compareAndExchange(array, ci, (short)0x4567, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short r = (short) vh.compareAndExchangeAcquire(array, ci, (short)0x4567, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short r = (short) vh.compareAndExchangeRelease(array, ci, (short)0x4567, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, (short)0x0123, (short)0x4567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, (short)0x0123, (short)0x4567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, (short)0x0123, (short)0x4567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, (short)0x0123, (short)0x4567);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndSet(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndSetAcquire(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndSetRelease(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndAdd(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndAddAcquire(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndAddRelease(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseOr(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseOrAcquire(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseOrRelease(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseAnd(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseAndAcquire(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseAndRelease(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseXor(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseXorAcquire(array, ci, (short)0x0123);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short o = (short) vh.getAndBitwiseXorRelease(array, ci, (short)0x0123);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1137,79 +1137,79 @@ public class VarHandleTestAccessString extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
String x = (String) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String x = (String) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String x = (String) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String x = (String) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, "foo", "bar");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String r = (String) vh.compareAndExchange(array, ci, "bar", "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String r = (String) vh.compareAndExchangeAcquire(array, ci, "bar", "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String r = (String) vh.compareAndExchangeRelease(array, ci, "bar", "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, "foo", "bar");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, "foo", "bar");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, "foo", "bar");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, "foo", "bar");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String o = (String) vh.getAndSet(array, ci, "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String o = (String) vh.getAndSetAcquire(array, ci, "foo");
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
String o = (String) vh.getAndSetRelease(array, ci, "foo");
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -627,35 +627,35 @@ public class VarHandleTestByteArrayAsChar extends VarHandleBaseByteArrayTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, length, length + 1, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
char x = (char) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char x = (char) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char x = (char) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
char x = (char) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, VALUE_1);
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -629,79 +629,79 @@ public class VarHandleTestByteArrayAsDouble extends VarHandleBaseByteArrayTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, length, length + 1, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
double x = (double) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double x = (double) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double x = (double) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double x = (double) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double r = (double) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double r = (double) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double r = (double) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndSet(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndSetAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
double o = (double) vh.getAndSetRelease(array, ci, VALUE_1);
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -629,79 +629,79 @@ public class VarHandleTestByteArrayAsFloat extends VarHandleBaseByteArrayTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, length, length + 1, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
float x = (float) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float x = (float) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float x = (float) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float x = (float) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float r = (float) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float r = (float) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float r = (float) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndSet(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndSetAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
float o = (float) vh.getAndSetRelease(array, ci, VALUE_1);
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -629,127 +629,127 @@ public class VarHandleTestByteArrayAsInt extends VarHandleBaseByteArrayTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, length, length + 1, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
int x = (int) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int x = (int) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int x = (int) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int x = (int) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int r = (int) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int r = (int) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int r = (int) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndSet(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndSetAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndSetRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndAdd(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndAddAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndAddRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseOr(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseAnd(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseXor(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
int o = (int) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -629,127 +629,127 @@ public class VarHandleTestByteArrayAsLong extends VarHandleBaseByteArrayTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, length, length + 1, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
long x = (long) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long x = (long) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long x = (long) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long x = (long) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long r = (long) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long r = (long) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long r = (long) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndSet(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndSetAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndSetRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndAdd(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndAddAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndAddRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseOr(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseAnd(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseXor(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
long o = (long) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -627,35 +627,35 @@ public class VarHandleTestByteArrayAsShort extends VarHandleBaseByteArrayTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, length, length + 1, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
short x = (short) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short x = (short) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short x = (short) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
short x = (short) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, VALUE_1);
});

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -875,38 +875,38 @@ public class VarHandleTestMethodHandleAccessBoolean extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean x = (boolean) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, true);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, true, false);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, false, true);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean o = (boolean) hs.get(am).invokeExact(array, ci, true);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_BITWISE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean o = (boolean) hs.get(am).invokeExact(array, ci, false);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -941,43 +941,43 @@ public class VarHandleTestMethodHandleAccessByte extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
byte x = (byte) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, (byte)0x01);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, (byte)0x01, (byte)0x23);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
byte r = (byte) hs.get(am).invokeExact(array, ci, (byte)0x23, (byte)0x01);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
byte o = (byte) hs.get(am).invokeExact(array, ci, (byte)0x01);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_ADD)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
byte o = (byte) hs.get(am).invokeExact(array, ci, (byte)0x45);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_BITWISE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
byte o = (byte) hs.get(am).invokeExact(array, ci, (byte)0x45);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -941,43 +941,43 @@ public class VarHandleTestMethodHandleAccessChar extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
char x = (char) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, '\u0123');
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, '\u0123', '\u4567');
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
char r = (char) hs.get(am).invokeExact(array, ci, '\u4567', '\u0123');
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
char o = (char) hs.get(am).invokeExact(array, ci, '\u0123');
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_ADD)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
char o = (char) hs.get(am).invokeExact(array, ci, '\u89AB');
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_BITWISE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
char o = (char) hs.get(am).invokeExact(array, ci, '\u89AB');
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -707,37 +707,37 @@ public class VarHandleTestMethodHandleAccessDouble extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
double x = (double) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, 1.0d);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, 1.0d, 2.0d);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
double r = (double) hs.get(am).invokeExact(array, ci, 2.0d, 1.0d);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
double o = (double) hs.get(am).invokeExact(array, ci, 1.0d);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_ADD)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
double o = (double) hs.get(am).invokeExact(array, ci, 3.0d);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -707,37 +707,37 @@ public class VarHandleTestMethodHandleAccessFloat extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
float x = (float) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, 1.0f);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, 1.0f, 2.0f);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
float r = (float) hs.get(am).invokeExact(array, ci, 2.0f, 1.0f);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
float o = (float) hs.get(am).invokeExact(array, ci, 1.0f);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_ADD)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
float o = (float) hs.get(am).invokeExact(array, ci, 3.0f);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -941,43 +941,43 @@ public class VarHandleTestMethodHandleAccessInt extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
int x = (int) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, 0x01234567);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, 0x01234567, 0x89ABCDEF);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
int r = (int) hs.get(am).invokeExact(array, ci, 0x89ABCDEF, 0x01234567);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
int o = (int) hs.get(am).invokeExact(array, ci, 0x01234567);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_ADD)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
int o = (int) hs.get(am).invokeExact(array, ci, 0xCAFEBABE);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_BITWISE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
int o = (int) hs.get(am).invokeExact(array, ci, 0xCAFEBABE);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -941,43 +941,43 @@ public class VarHandleTestMethodHandleAccessLong extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
long x = (long) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, 0x0123456789ABCDEFL);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, 0x0123456789ABCDEFL, 0xCAFEBABECAFEBABEL);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
long r = (long) hs.get(am).invokeExact(array, ci, 0xCAFEBABECAFEBABEL, 0x0123456789ABCDEFL);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
long o = (long) hs.get(am).invokeExact(array, ci, 0x0123456789ABCDEFL);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_ADD)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
long o = (long) hs.get(am).invokeExact(array, ci, 0xDEADBEEFDEADBEEFL);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_BITWISE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
long o = (long) hs.get(am).invokeExact(array, ci, 0xDEADBEEFDEADBEEFL);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -941,43 +941,43 @@ public class VarHandleTestMethodHandleAccessShort extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
short x = (short) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, (short)0x0123);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, (short)0x0123, (short)0x4567);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
short r = (short) hs.get(am).invokeExact(array, ci, (short)0x4567, (short)0x0123);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
short o = (short) hs.get(am).invokeExact(array, ci, (short)0x0123);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_ADD)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
short o = (short) hs.get(am).invokeExact(array, ci, (short)0x89AB);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_BITWISE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
short o = (short) hs.get(am).invokeExact(array, ci, (short)0x89AB);
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -641,31 +641,31 @@ public class VarHandleTestMethodHandleAccessString extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
String x = (String) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, "foo");
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, "foo", "bar");
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
String r = (String) hs.get(am).invokeExact(array, ci, "bar", "foo");
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
String o = (String) hs.get(am).invokeExact(array, ci, "foo");
});
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1774,132 +1774,132 @@ public class VarHandleTestAccess$Type$ extends VarHandleBaseTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, 10, 11, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ x = ($type$) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ x = ($type$) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ x = ($type$) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ x = ($type$) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, $value1$);
});
#if[CAS]
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, $value1$, $value2$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ r = ($type$) vh.compareAndExchange(array, ci, $value2$, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ r = ($type$) vh.compareAndExchangeAcquire(array, ci, $value2$, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ r = ($type$) vh.compareAndExchangeRelease(array, ci, $value2$, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, $value1$, $value2$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, $value1$, $value2$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, $value1$, $value2$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, $value1$, $value2$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndSet(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndSetAcquire(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndSetRelease(array, ci, $value1$);
});
#end[CAS]
#if[AtomicAdd]
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndAdd(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndAddAcquire(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndAddRelease(array, ci, $value1$);
});
#end[AtomicAdd]
#if[Bitwise]
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseOr(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseOrAcquire(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseOrRelease(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseAnd(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseAndAcquire(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseAndRelease(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseXor(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseXorAcquire(array, ci, $value1$);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseXorRelease(array, ci, $value1$);
});
#end[Bitwise]

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -965,132 +965,132 @@ public class VarHandleTestByteArrayAs$Type$ extends VarHandleBaseByteArrayTest {
for (int i : new int[]{-1, Integer.MIN_VALUE, length, length + 1, Integer.MAX_VALUE}) {
final int ci = i;
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ x = ($type$) vh.get(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.set(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ x = ($type$) vh.getVolatile(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ x = ($type$) vh.getAcquire(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ x = ($type$) vh.getOpaque(array, ci);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setVolatile(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
vh.setOpaque(array, ci, VALUE_1);
});
#if[CAS]
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.compareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ r = ($type$) vh.compareAndExchange(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ r = ($type$) vh.compareAndExchangeAcquire(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ r = ($type$) vh.compareAndExchangeRelease(array, ci, VALUE_2, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetPlain(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSet(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetAcquire(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
boolean r = vh.weakCompareAndSetRelease(array, ci, VALUE_1, VALUE_2);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndSet(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndSetAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndSetRelease(array, ci, VALUE_1);
});
#end[CAS]
#if[AtomicAdd]
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndAdd(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndAddAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndAddRelease(array, ci, VALUE_1);
});
#end[AtomicAdd]
#if[Bitwise]
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseOr(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseOrAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseOrRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseAnd(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseAndAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseAndRelease(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseXor(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseXorAcquire(array, ci, VALUE_1);
});
checkIOOBE(() -> {
checkAIOOBE(() -> {
$type$ o = ($type$) vh.getAndBitwiseXorRelease(array, ci, VALUE_1);
});
#end[Bitwise]

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -1058,32 +1058,32 @@ public class VarHandleTestMethodHandleAccess$Type$ extends VarHandleBaseTest {
final int ci = i;
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
$type$ x = ($type$) hs.get(am).invokeExact(array, ci);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
hs.get(am).invokeExact(array, ci, $value1$);
});
}
#if[CAS]
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
boolean r = (boolean) hs.get(am).invokeExact(array, ci, $value1$, $value2$);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.COMPARE_AND_EXCHANGE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
$type$ r = ($type$) hs.get(am).invokeExact(array, ci, $value2$, $value1$);
});
}
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_SET)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
$type$ o = ($type$) hs.get(am).invokeExact(array, ci, $value1$);
});
}
@ -1091,7 +1091,7 @@ public class VarHandleTestMethodHandleAccess$Type$ extends VarHandleBaseTest {
#if[AtomicAdd]
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_ADD)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
$type$ o = ($type$) hs.get(am).invokeExact(array, ci, $value3$);
});
}
@ -1099,7 +1099,7 @@ public class VarHandleTestMethodHandleAccess$Type$ extends VarHandleBaseTest {
#if[Bitwise]
for (TestAccessMode am : testAccessModesOfType(TestAccessType.GET_AND_BITWISE)) {
checkIOOBE(am, () -> {
checkAIOOBE(am, () -> {
$type$ o = ($type$) hs.get(am).invokeExact(array, ci, $value3$);
});
}