On Thu, 18 Feb 2021 06:13:27 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> 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.

This looks good and trivial.

-------------

Marked as reviewed by sspitsyn (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/2624

Reply via email to