RFR: 8298065: Provide more information in message of NoSuchFieldError [v5]
Matias Saavedra Silva
matsaave at openjdk.org
Fri Dec 23 21:38:21 UTC 2022
> A java.lang.NoSuchFieldError is typically thrown when you remove a field but do not recompile the client code that calls the field. However, the message does not indicate in which class the field was not found.
>
> Additionally, java.lang.NoSuchFieldError is thrown if the field is still present but the types are incompatible. For example, if a field is first defined as int, and later changed to long without recompiling the client. The error text has been expanded to include the class name and field type. Verified with tier 1-4 tests.
>
> Old output:
> `Exception in thread "main" java.lang.NoSuchFieldError: x
> at NoSuchFieldMain.main(NoSuchFieldMain.java:3)`
> Example output:
> `Exception in thread "main" java.lang.NoSuchFieldError: Class Other does not have field 'int x'
> at NoSuchFieldMain.main(NoSuchFieldMain.java:3)`
>
> The added test considers different types of fields like primitives, arrays, and references.
Matias Saavedra Silva has updated the pull request incrementally with one additional commit since the last revision:
Ioi and David comments
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/11745/files
- new: https://git.openjdk.org/jdk/pull/11745/files/3e8e923c..b42ab129
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=11745&range=04
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=11745&range=03-04
Stats: 517 lines in 15 files changed: 303 ins; 180 del; 34 mod
Patch: https://git.openjdk.org/jdk/pull/11745.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/11745/head:pull/11745
PR: https://git.openjdk.org/jdk/pull/11745
More information about the hotspot-runtime-dev
mailing list