Name: rmT116609 Date: 10/27/2003 FULL PRODUCT VERSION : D:\entw\java\reflectioncrash>c:\java\1.4.2\02\jre\bin\java -version java version "1.4.2_02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03) Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode) FULL OS VERSION : Microsoft Windows XP [Version 5.1.2600] A DESCRIPTION OF THE PROBLEM : Error in MemoryManagement while passing an Object[] array to its old reference which is of type java.lang.Object. Instead of returning a decent Exception the whole JVM crashes. STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : /** Marc Schoenefeld **/ /* illegalaccess.org */ public class MemApplet extends java.applet.Applet{ static Object o = null; public static void main(String[] args) { (new MemApplet()).doit(); } public void paint(java.awt.Graphics p) { (new MemApplet()).doit(); } void doit () { while (true) try { Object[] oarr = {o}; o = oarr; } catch (Throwable t) { o = null; System.out.println("Wurfgeschoss: " + t); } } } EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - an exception ACTUAL - Window Alert box: Exception "Unknown software exception" (0xc00000fd) has occured in your application at location 0x6d3deb0e. ERROR MESSAGES/STACK TRACES THAT OCCUR : no stack trace available REPRODUCIBILITY : This bug can be reproduced always. ---------- BEGIN SOURCE ---------- /** Marc Schoenefeld **/ /* illegalaccess.org */ public class MemApplet extends java.applet.Applet{ static Object o = null; public static void main(String[] args) { (new MemApplet()).doit(); } public void paint(java.awt.Graphics p) { (new MemApplet()).doit(); } void doit () { while (true) try { Object[] oarr = {o}; o = oarr; } catch (Throwable t) { o = null; System.out.println("Wurfgeschoss: " + t); } } } ---------- END SOURCE ---------- CUSTOMER SUBMITTED WORKAROUND : check all my class files for the following bytecode sequence 3 iconst_1 4 anewarray class #5 <Class java.lang.Object> 7 dup 8 iconst_0 9 getstatic #6 <Field java.lang.Object o> 12 aastore 13 astore_1 14 aload_1 15 putstatic #6 <Field java.lang.Object o> 18 goto 3 (Incident Review ID: 217993) ======================================================================
|