@@ -57,14 +57,12 @@ static VarHandle handle() throws Exception {
5757 @ ParameterizedTest
5858 @ MethodSource ("accessModesProvider" )
5959 public void methodInvocationArgumentMismatch (VarHandle .AccessMode accessMode ) throws Exception {
60- Assertions .assertThrows (IllegalArgumentException .class , () -> {
61- VarHandle v = handle ();
60+ VarHandle v = handle ();
6261
63- // Try a reflective invoke using a Method, with no arguments
62+ // Try a reflective invoke using a Method, with no arguments
6463
65- Method vhm = VarHandle .class .getMethod (accessMode .methodName (), Object [].class );
66- vhm .invoke (v , new Object []{});
67- });
64+ Method vhm = VarHandle .class .getMethod (accessMode .methodName (), Object [].class );
65+ Assertions .assertThrows (IllegalArgumentException .class , () -> vhm .invoke (v , new Object []{}));
6866 }
6967
7068 @ ParameterizedTest
@@ -76,76 +74,69 @@ public void methodInvocationMatchingArguments(VarHandle.AccessMode accessMode) t
7674
7775 Method vhm = VarHandle .class .getMethod (accessMode .methodName (), Object [].class );
7876 Object arg = new Object [0 ];
79- try {
80- vhm .invoke (v , arg );
81- } catch (InvocationTargetException e ) {
82- if (!(e .getCause () instanceof UnsupportedOperationException )) {
83- throw new RuntimeException ("expected UnsupportedOperationException but got: "
84- + e .getCause ().getClass ().getName (), e );
85- }
77+ var e = Assertions .assertThrows (InvocationTargetException .class , () -> vhm .invoke (v , arg ));
78+ if (!(e .getCause () instanceof UnsupportedOperationException )) {
79+ throw new RuntimeException ("expected UnsupportedOperationException but got: "
80+ + e .getCause ().getClass ().getName (), e );
8681 }
8782 }
8883
8984 @ ParameterizedTest
9085 @ MethodSource ("accessModesProvider" )
9186 public void methodHandleInvoke (VarHandle .AccessMode accessMode ) throws Throwable {
92- Assertions .assertThrows (UnsupportedOperationException .class , () -> {
93- VarHandle v = handle ();
87+ VarHandle v = handle ();
9488
95- // Try a reflective invoke using a MethodHandle
89+ // Try a reflective invoke using a MethodHandle
9690
97- MethodHandle mh = MethodHandles .lookup ().unreflect (
98- VarHandle .class .getMethod (accessMode .methodName (), Object [].class ));
99- // Use invoke to avoid WrongMethodTypeException for
100- // non-signature-polymorphic return types
91+ MethodHandle mh = MethodHandles .lookup ().unreflect (
92+ VarHandle .class .getMethod (accessMode .methodName (), Object [].class ));
93+ // Use invoke to avoid WrongMethodTypeException for
94+ // non-signature-polymorphic return types
95+ Assertions .assertThrows (UnsupportedOperationException .class , () -> {
10196 Object o = (Object ) mh .invoke (v , new Object []{});
10297 });
10398 }
10499
105100 @ ParameterizedTest
106101 @ MethodSource ("accessModesProvider" )
107102 public void methodInvocationFromMethodInfo (VarHandle .AccessMode accessMode ) throws Exception {
108- Assertions .assertThrows (IllegalArgumentException .class , () -> {
109- VarHandle v = handle ();
103+ VarHandle v = handle ();
110104
111- // Try a reflective invoke using a Method obtained from cracking
112- // a MethodHandle
105+ // Try a reflective invoke using a Method obtained from cracking
106+ // a MethodHandle
113107
114- MethodHandle mh = MethodHandles .lookup ().unreflect (
115- VarHandle .class .getMethod (accessMode .methodName (), Object [].class ));
116- MethodHandleInfo info = MethodHandles .lookup ().revealDirect (mh );
117- Method im = info .reflectAs (Method .class , MethodHandles .lookup ());
108+ MethodHandle mh = MethodHandles .lookup ().unreflect (
109+ VarHandle .class .getMethod (accessMode .methodName (), Object [].class ));
110+ MethodHandleInfo info = MethodHandles .lookup ().revealDirect (mh );
111+ Method im = info .reflectAs (Method .class , MethodHandles .lookup ());
112+ Assertions .assertThrows (IllegalArgumentException .class , () -> {
118113 im .invoke (v , new Object []{});
119114 });
120115 }
121116
122117 @ ParameterizedTest
123118 @ MethodSource ("accessModesProvider" )
124119 public void reflectAsFromVarHandleInvoker (VarHandle .AccessMode accessMode ) throws Exception {
125- Assertions .assertThrows (IllegalArgumentException .class , () -> {
126- VarHandle v = handle ();
120+ VarHandle v = handle ();
127121
128- MethodHandle mh = MethodHandles .varHandleInvoker (
129- accessMode , v .accessModeType (accessMode ));
122+ MethodHandle mh = MethodHandles .varHandleInvoker (
123+ accessMode , v .accessModeType (accessMode ));
130124
131- MethodHandleInfo info = MethodHandles .lookup ().revealDirect (mh );
125+ MethodHandleInfo info = MethodHandles .lookup ().revealDirect (mh );
132126
133- info .reflectAs (Method .class , MethodHandles .lookup ());
134- });
127+ Assertions .assertThrows (IllegalArgumentException .class , () -> info .reflectAs (Method .class , MethodHandles .lookup ()));
135128 }
136129
137130 @ ParameterizedTest
138131 @ MethodSource ("accessModesProvider" )
139132 public void reflectAsFromFindVirtual (VarHandle .AccessMode accessMode ) throws Exception {
140- Assertions .assertThrows (IllegalArgumentException .class , () -> {
141- VarHandle v = handle ();
133+ VarHandle v = handle ();
142134
143- MethodHandle mh = MethodHandles .publicLookup ().findVirtual (
144- VarHandle .class , accessMode .methodName (), v .accessModeType (accessMode ));
135+ MethodHandle mh = MethodHandles .publicLookup ().findVirtual (
136+ VarHandle .class , accessMode .methodName (), v .accessModeType (accessMode ));
145137
146- MethodHandleInfo info = MethodHandles .lookup ().revealDirect (mh );
138+ MethodHandleInfo info = MethodHandles .lookup ().revealDirect (mh );
147139
148- info .reflectAs (Method .class , MethodHandles .lookup ());
149- });
140+ Assertions .assertThrows (IllegalArgumentException .class , () -> info .reflectAs (Method .class , MethodHandles .lookup ()));
150141 }
151142}
0 commit comments