-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2.0.3...2.2.2: IllegalArgumentException: Not an array type for method like void method(@Nullable Object[]) #102
Comments
Smaller case: public interface EqualityComparer<T> {
boolean equal(T v1, T v2);
int hashCode(T t);
} private static class ArrayEqualityComparer
implements EqualityComparer<Object[]> {
@Override public boolean equal(Object[] v1, Object[] v2) {
return Arrays.deepEquals(v1, v2);
}
@Override public int hashCode(@Nullable Object[] t) {
return Arrays.deepHashCode(t);
}
} javac 11, javap:
|
I guess the issue is caused by |
Thanks for the report. I'll need to research various compiler outputs. It looks like the generated bridge is referring to a type path that is not valid with this signature. This will probably need to be gracefully ignored. |
What do you think if a GitHub Action was added that tried to parse Apache Calcite codebase with the current jandex? Calcite has a significant amount of type annotations added in apache/calcite#2268 It won't make debug easier, however, it might help to prevent regressions. |
@vlsi i think thats a great idea. I would be happy to regression test with calcite. |
javac copies annotations to bridge methods (which is good), however the annotations might become invalid. For instance, the bridge signature for @nullable Object[] is Object (non-array), so usage=ARRAY signature is invalid We ignore those annotations for the bridge methods. See https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6695379 fixes smallrye#102
javac copies annotations to bridge methods (which is good), however the annotations might become invalid. For instance, the bridge signature for @nullable Object[] is Object (non-array), so usage=ARRAY signature is invalid We ignore those annotations for the bridge methods. See https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6695379 fixes smallrye#102
javac copies annotations to bridge methods (which is good), however the annotations might become invalid. For instance, the bridge signature for @nullable Object[] is Object (non-array), so usage=ARRAY signature is invalid We ignore those annotations for the bridge methods. See https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6695379 fixes smallrye#102
javac copies annotations to bridge methods (which is good), however the annotations might become invalid. For instance, the bridge signature for @nullable Object[] is Object (non-array), so usage=ARRAY signature is invalid We ignore those annotations for the bridge methods. See https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6695379 fixes smallrye#102
javac copies annotations to bridge methods (which is good), however the annotations might become invalid. For instance, the bridge signature for @nullable Object[] is Object (non-array), so usage=ARRAY signature is invalid We ignore those annotations for the bridge methods. See https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6695379 fixes smallrye#102
Sample:
Error (in jandex 2.0.3.Final and 2.2.2.Final):
See https://issues.apache.org/jira/browse/CALCITE-4459
The text was updated successfully, but these errors were encountered: