Details
-
Enhancement
-
Resolution: Fixed
-
P4
-
None
-
b26
-
generic
-
generic
Description
AnnotationTypeMismatchExceptions indicate a change in a class file. However, the values that explain the found, mismatched value are not always explanatory:
- If an enumeration was found where none should be defined, the type is expressed as a descriptor, not as a binary name. Rather, a binary name should be displayed.
- If an annotation was found where not should be defined, the annotations implementing proxy type is displayed instead of the actual annotation type. Rather, the annotation value should be displayed.
- If an array of an incompatible type was found, the array's component type's integer is displayed. Rather, the component type's character symbol should be displayed. (Test requires another fix via https://bugs.openjdk.java.net/browse/JDK-8266766 first which then would entail a validation of this change.)
The message provided by AnnotationTypeMismatchExceptions is deliberately undefined such that this should not break any contract.
- If an enumeration was found where none should be defined, the type is expressed as a descriptor, not as a binary name. Rather, a binary name should be displayed.
- If an annotation was found where not should be defined, the annotations implementing proxy type is displayed instead of the actual annotation type. Rather, the annotation value should be displayed.
- If an array of an incompatible type was found, the array's component type's integer is displayed. Rather, the component type's character symbol should be displayed. (Test requires another fix via https://bugs.openjdk.java.net/browse/JDK-8266766 first which then would entail a validation of this change.)
The message provided by AnnotationTypeMismatchExceptions is deliberately undefined such that this should not break any contract.
Attachments
Issue Links
- csr for
-
JDK-8266768 Exception values for AnnotationTypeMismatchException are not always informative
- Closed