Похоже, JVM не любит большие файлы классов Java.
Из спецификации JVM:
4.7.12. Атрибут LineNumberTable
Атрибут LineNumberTable является необязательным атрибутом переменной длины в таблице атрибутов атрибута Code (§4.7.3). Он может использоваться отладчиками для определения того, какая часть массива кода соответствует данному номеру строки в исходном исходном файле.
Если в таблице атрибутов атрибута Code присутствует несколько атрибутов LineNumberTable, они могут отображаться в любом порядке.
Может быть более одного атрибута LineNumberTable на строку исходного файла в таблице атрибутов атрибута Code. То есть атрибуты LineNumberTable могут вместе представлять данную строку исходного файла и не должны быть однозначными с исходными строками.
Атрибут LineNumberTable имеет следующий формат:
LineNumberTable_attribute {
u2 attribute_name_index;
u4 attribute_length;
u2 line_number_table_length;
{ u2 start_pc;
u2 line_number;
} line_number_table[line_number_table_length];
}
Тот факт, что start_pc и line_number имеют тип "u2"
(без знака, 2 байта) означает, что информация о номере строки
не определяется после того, как индекс строки источника больше
чем 2 ^ 16 = 65536.