Name: vi73552 Date: 03/20/99
import java.io.*;
import java.net.*;
/**
The following code results in an endless recursive loop. However, it
doesn't produce a StackOverflowError as you would expect, and crashes
the JVM.
javac bug.java ; java -Djava.compiler=NONE bug
In addition, it causes the following error in the symantec JIT when it
is enabled:
A nonfatal internal JIT (3.00.078(x)) error 'Structured Exception(c00000fd)' has occurred in :
'bug$M.m ()V': Interpreting method.
Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cgi
*/
//----------------------------------------------------------------------------
public final class bug
{
public static void main(String args[])
{
System.out.println("main called");
System.out.flush();
if (System.getSecurityManager()!=null)
{
System.out.println("Can't set security manager");
System.exit(-1);
}
System.setSecurityManager(new M());
System.out.println("#args="+args.length);
System.out.flush();
}
private static final class M extends SecurityManager
{
private synchronized void m()
{
System.out.println("getting call stack...");
System.out.flush();
Class[] s=getClassContext();
for (int i=0 ; i<s.length ; i++)
{
System.out.print("s["+i+"]="+s[i].getName());
System.out.flush();
}
}
public void checkCreateClassLoader() {}
public void checkAccess(Thread g) {}
public void checkAccess(ThreadGroup g) {}
public void checkExit(int status) {}
public void checkExec(String cmd) {}
public void checkLink(String lib) {}
public void checkRead(FileDescriptor fd) {}
public void checkRead(String file) {}
public void checkRead(String file, Object context) {}
public void checkWrite(FileDescriptor fd) {}
public void checkWrite(String file) {}
public void checkDelete(String file) {}
public void checkConnect(String host, int port) {}
public void checkConnect(String host, int port, Object context) {}
public void checkListen(int port) {}
public void checkAccept(String host, int port) {}
public void checkMulticast(InetAddress maddr) {}
public void checkMulticast(InetAddress maddr, byte ttl) {}
public void checkPropertiesAccess() {}
public void checkPropertyAccess(String key) {}
public void checkPropertyAccess(String key, String def) {}
public boolean checkTopLevelWindow(Object window) { return true; }
public void checkPrintJobAccess() {}
public void checkSystemClipboardAccess() {}
public void checkAwtEventQueueAccess() {}
public void checkSetFactory() {}
public void checkPackageDefinition(String pkg) {}
public void checkSecurityAccess(String provider) {}
public void checkMemberAccess(Class clazz, int which) {}
public void checkPackageAccess(String pkg) { m(); }
}
}
(Review ID: 55841)
======================================================================
- duplicates
-
JDK-4217960 [native stack overflow bug] reflection test causes crash
-
- Closed
-