mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8199149: Improve the exception message thrown by VarHandle of unsupported operation
Reviewed-by: liach, jvernee
This commit is contained in:
parent
354c6605e3
commit
d7b9416406
4 changed files with 12 additions and 5 deletions
|
@ -2003,6 +2003,11 @@ public abstract sealed class VarHandle implements Constable
|
|||
default -> throw new IllegalArgumentException("No AccessMode value for method name " + methodName);
|
||||
};
|
||||
}
|
||||
|
||||
private static final @Stable AccessMode[] VALUES = values();
|
||||
static AccessMode valueFromOrdinal(int mode) {
|
||||
return VALUES[mode];
|
||||
}
|
||||
}
|
||||
|
||||
static final class AccessDescriptor {
|
||||
|
@ -2215,7 +2220,7 @@ public abstract sealed class VarHandle implements Constable
|
|||
* @throws UnsupportedOperationException if the access mode is not supported
|
||||
*/
|
||||
MethodHandle getMethodHandleUncached(int mode) {
|
||||
MethodType mt = accessModeType(AccessMode.values()[mode]).
|
||||
MethodType mt = accessModeType(AccessMode.valueFromOrdinal(mode)).
|
||||
insertParameterTypes(0, VarHandle.class);
|
||||
MemberName mn = vform.getMemberName(mode);
|
||||
DirectMethodHandle dmh = DirectMethodHandle.make(mn);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue