RFR: 8261857: serviceability/sa/ClhsdbPrintAll.java failed with "Test ERROR java.lang.RuntimeException: 'cannot be cast to' found in stdout"
Chris Plummer
cjplummer at openjdk.java.net
Thu Feb 18 06:18:55 UTC 2021
The test is checking for "cannot be cast to" because at one point there was a bug in `printall` that was causing a `ClassCastException`. See [JDK-8175384](https://bugs.openjdk.java.net/browse/JDK-8175384). However, there is also a "cannot be cast to" message in the `printall` output when disassembling since the java source actually has it in a string literal:
3203 302 ldc #214(6) <String " cannot be cast to ResourceBundle"> [fast_aldc]
Which comes from the following in the ResourceBundle.java source:
throw new ClassCastException(c.getName()
+ " cannot be cast to ResourceBundle");
So this occurrence of "cannot be cast" is fine. The one we don't want comes from `SharedRuntime::generate_class_cast_message()` in `sharedRuntime.cpp`:
` "class %s cannot be cast to class %s (%s%s%s)",`
So we can avoid this bug by changing the check to be a bit more explicit and check for "cannot be cast to class" instead.
-------------
Commit messages:
- Be more specific about the "cannot be cast" message the test looks for
Changes: https://git.openjdk.java.net/jdk/pull/2624/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2624&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8261857
Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
Patch: https://git.openjdk.java.net/jdk/pull/2624.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/2624/head:pull/2624
PR: https://git.openjdk.java.net/jdk/pull/2624
More information about the serviceability-dev
mailing list