Skip to content

Commit 44c5b86

Browse files
committed
Avoid crawling MethodHandle internals in unit tests with AssertJ
Attempts to fix java.lang.NoSuchFieldException: no such field: java.lang.invoke.BoundMethodHandle.argL0/java.lang.Object/getField
1 parent 56f831d commit 44c5b86

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

java-compiler-testing/src/test/java/io/github/ascopes/jct/compilers/AbstractJctCompilerTest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1834,7 +1834,13 @@ final <T> List<T> concat(List<T> first, List<T>... more) {
18341834
/// will allow it this time.
18351835

18361836
AbstractObjectAssert<?, ?> assertThatCompilerField(String field) {
1837-
return assertThat(compiler).extracting(field);
1837+
try {
1838+
var fieldObj = AbstractJctCompiler.class.getDeclaredField(field);
1839+
fieldObj.setAccessible(true);
1840+
return assertThat(fieldObj.get(compiler));
1841+
} catch (ReflectiveOperationException ex) {
1842+
return fail("Failed to get field " + field, ex);
1843+
}
18381844
}
18391845

18401846
<T> T setFieldOnCompiler(String field, T value) {

0 commit comments

Comments
 (0)