Я не совсем понимаю, какое неожиданное поведение вы видите, но у JDB нет проблем с отладкой, если, наконец, или если внутри, наконец,.Если вы видите, что пропущены очевидные точки останова, то, скорее всего, вы смотрите на исходный код, который отличается от исполняемого байт-кода.Можно проверить номера строк в байт-коде, разобрав его с помощью
javap -c -l <simple class name>
в том же каталоге, что и файл класса.Его также можно запустить как
javap -c -l -classpath <build dir> <fully qualified class name>
. Он покажет все инструкции, содержащиеся в каждом методе, с числовой меткой.Будет "LineNumberTable", которая связывает эти метки с номерами строк исходного кода.Примечание: обычно в строке исходного кода обычно много инструкций байт-кода.