error-prone icon indicating copy to clipboard operation
error-prone copied to clipboard

JUnitIncompatibleType throws ClassCastException around `assertArrayEquals`

Open XN137 opened this issue 1 year ago • 1 comments

building on jdk 11:

error-prone version: 2.25.0
BugPattern: JUnitIncompatibleType
Stack Trace:
java.lang.ClassCastException: class com.sun.tools.javac.code.Type$ClassType cannot be cast to class com.sun.tools.javac.code.Type$ArrayType (com.sun.tools.javac.code.Type$ClassType and com.sun.tools.javac.code.Type$ArrayType are in module jdk.compiler of loader 'app')
at com.google.errorprone.bugpatterns.collectionincompatibletype.JUnitIncompatibleType.matchMethodInvocation(JUnitIncompatibleType.java:84)
at com.google.errorprone.scanner.ErrorProneScanner.processMatchers(ErrorProneScanner.java:449)
at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:746)
at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:150)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1666)
at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)

problematic code:

Map<MyKeyClass, List<byte[]>> byteArrayMap = ...

(...)

} else if (expectedValue instanceof byte[]) {
    assertArrayEquals((byte[]) expectedValue, byteArrayMap.get(index).get(position));
}

XN137 avatar Feb 17 '24 08:02 XN137

I have a change out for review internally to fix the crash.

cushon avatar Mar 13 '24 16:03 cushon