Bug in JDK25 with switch statements

Rafael Winterhalter rafael.wth at gmail.com
Fri Mar 21 10:14:23 UTC 2025


The error is stable and can be reproduced by simply building the project.
But it seems to be an issue with javac indeed. The tableswitch statement is
compiled as follows.

       213: tableswitch   { // 100 to 116
                     100: 322
                     101: 296
                     102: 361
                     103: 335
                     104: 348
                     105: 309
                     106: 374
                     107: 374
                     108: 374
                     109: 374
                     110: 374
                     111: 374
                     112: 374
                     113: 374
                     114: 374
                     115: 374
                     116: 374
                 default: 374

The right branch for 'p' is included at offset 361, but 'p' is an integer
value of 109. The character 102 (f) is not included in the Java source.

I guess this is the wrong mailing list in this case. I will post this to
the javac list.

Thanks, Rafael

Am Fr., 21. März 2025 um 10:54 Uhr schrieb Remi Forax <forax at univ-mlv.fr>:

> Hello Raphael,
> It may be hard to reproduce,
> can you do a javap -c on the class/method so it will be easier to see if
> the generated bytecode is wrong of if it's a VM issue.
>
> regards,
> Rémi
>
> ------------------------------
>
> *From: *"Rafael Winterhalter" <rafael.wth at gmail.com>
> *To: *"compiler-dev" <compiler-dev at openjdk.org>
> *Sent: *Friday, March 21, 2025 10:20:48 AM
> *Subject: *Bug in JDK25 with switch statements
>
> Hello,
> my project Byte Buddy fails to build with recent JDK 25s. I am not sure if
> this is a known bug, but I wanted to mention it:
> https://github.com/raphw/byte-buddy/actions/runs/13975513319/job/39131008617
>
> The reason for the build failure is that this switch statement ends up in
> the default branch:
> https://github.com/raphw/byte-buddy/blob/master/byte-buddy-dep/src/main/java/net/bytebuddy/asm/Advice.java#L3239
>
> This is happening for the char 'p' which is the last legal branch of the
> switch. This does not yield an error on JDKs 5 to 24, so this must be
> introduced recently.
>
> Thanks, Rafael
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/compiler-dev/attachments/20250321/2c21e33b/attachment.htm>


More information about the compiler-dev mailing list