Name: krC82822 Date: 05/08/2001
orig synopsis: "Out of memory in JavaC/JIT compilers, with no stack trace"
8 May 2001, eval1127@eng -- doubt we can put the fix into 1.3.1
at this point, since it was fixed only in merlin (1.4) code base.
Problem is reproducible with build 24 of 1.3.1:
java version "1.3.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24)
Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode)
http://search.java.sun.com/Search/java?qt=4428664+4368309&col=obug&rf=0
-------------------
java version "1.3.1-rc2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-rc2-b23)
Java HotSpot(TM) Client VM (build 1.3.1-rc2-b23, mixed mode)
This Problem report is a duplicate of 4428664 and 4368309
which I believe have been closed prematurely.
Please note that it would be really nice to be fixed before
final release of 1.3[.1]. Sun is currently at release candidate 2, with
(I hope) the intent of taking the 1.3[.1] architecture to final release.
This bug is stated to be fixed in 1.4 (Merlin) But I believe that
there must be a number of companies out there that would like to
release production code using the 1.3[.1] final release. (Mainly because
it is faster) As this problem also effects the rum-time compiler
it is difficult to prove that there are no large switch numbers
in the library code. (i.e. Swing) Is it possible to get the Merlin
fix back-tracked into the 1.3[.1] JavaC and JIT compilers?
I am currently in a position where I will have to write a Lint
like program to search the library (Swing et. al.) class files
for large switch numbers. Any help would be appreciated.
Test case from earlier bug # 4411025:
public class SwitchTest {
public static final int MEMENTO_NULL = 0x7FFFFFFD;
public static final int MEMENTO_ALLE = 0x7FFFFFFE;
public static final int MEMENTO_LEER = 0x7FFFFFFF;
public static void main(String[] argv) {
int i = MEMENTO_LEER;
switch (i) {
case MEMENTO_NULL:
System.out.println("Null");
break;
case MEMENTO_ALLE:
System.out.println("Alle");
break;
case MEMENTO_LEER:
System.out.println("Leer");
break;
}
}
}
(Review ID: 123871)
======================================================================
- duplicates
-
JDK-4368309 Simple switch statement with large case values gives OutOfMemoryError in javac
- Closed