|
Quick Lists
|
|
Bug ID:
|
6491544
|
|
Votes
|
2
|
|
Synopsis
|
Compiling try-finally within code size limit
|
|
Category
|
java:compiler
|
|
Reported Against
|
|
|
Release Fixed
|
|
|
State
|
6-Fix Understood,
request for enhancement
|
|
Priority:
|
4-Low
|
|
Related Bugs
|
4640034
,
4739388
,
6464451
|
|
Submit Date
|
09-NOV-2006
|
|
Description
|
The amount of code per method is limited to 64K bytes by the sizes of the indices
in the exception_table of the Code attribute, in the LineNumberTable attribute,
in the LocalVariableTable attribute, and in the StackMapTable attribute (JVMS 2nd
edition 4.10).
After inlining subroutine code (4640034), some applications with extreme styles
such as deeply nested finally blocks, or huge amount of exiting paths in try or
synchronized blocks, would fail to compile because code size exceeds limit.
It was temporarily fixed in JDK 1.4.2 by introducing a command-line flag to
control how much inlining happens for finally blocks (4739388). After jsr/ret
instructions are eliminated in JDK 6, the above workaround will no longer work.
Posted Date : 2006-11-09 00:22:03.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
We need a general solution to ensure backward compatibility. More specifically,
a souce code compiled in older javac should still be able to compile in current
javac.
Posted Date : 2006-11-09 00:22:03.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |