Name: rmT116609 Date: 05/30/2003
FULL PRODUCT VERSION :
java version "1.4.2-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-beta-b19)
Java HotSpot(TM) Client VM (build 1.4.2-beta-b19, mixed mode)
FULL OS VERSION :
Microsoft Windows XP [Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
There is no stack trace emitted in the case of a java.lang.StackOverflowError exception.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
javac Test.java
java Test
See the file Test.java included below, containing an infinite recursion error which leads to stack overflow.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
In the previous version:
java version "1.4.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06)
Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode)
The output is as expected:
D:\lithium\mb7.2\src\test>java Test
Exception in thread "main" java.lang.StackOverflowError
at Test$Oops.toString(Test.java:10)
at java.lang.String.valueOf(String.java:2177)
at java.lang.StringBuffer.append(StringBuffer.java:361)
at Test$Oops.toString(Test.java:10)
at java.lang.String.valueOf(String.java:2177)
at java.lang.StringBuffer.append(StringBuffer.java:361)
<<many pages of the above repeated>>
ACTUAL -
D:\lithium\mb7.2\src\test>java Test
Exception in thread "main" java.lang.StackOverflowError
<<no additional output>>
ERROR MESSAGES/STACK TRACES THAT OCCUR :
none emitted, that's the bug
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Test {
static class Oops {
private String name;
public Oops(String name) {
this.name = name;
}
public String toString() {
return "[group=" + this + name + "]";
}
}
public static void main(String[] args) {
Oops a = new Oops("foo");
System.out.println("" + a);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
none (except reverting to the previous JDK version)
(Review ID: 186786)
======================================================================