Makefile.in: Rebuilt.

* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added
	RuntimePermission.java.
	* java/lang/RuntimePermission.java: Imported from Classpath.
	* java/lang/Thread.java (getContextClassLoader): Now
	synchronized.  Added security code.
	(setContextClassLoader): Likewise.

From-SVN: r37772
This commit is contained in:
Tom Tromey 2000-11-27 04:07:48 +00:00 committed by Tom Tromey
parent 2721806e98
commit 0cf17a8051
8 changed files with 241 additions and 37 deletions

View file

@ -145,21 +145,37 @@ public class Thread implements Runnable
daemon_flag = status;
}
public ClassLoader getContextClassLoader()
public synchronized ClassLoader getContextClassLoader()
{
if (context_class_loader == null)
context_class_loader = ClassLoader.getSystemClassLoader ();
SecurityManager s = System.getSecurityManager();
// FIXME: we can't currently find the caller's class loader.
ClassLoader callers = null;
if (s != null && callers != null)
{
context_class_loader = ClassLoader.getSystemClassLoader ();
return context_class_loader;
// See if the caller's class loader is the same as or an
// ancestor of this thread's class loader.
while (callers != null && callers != context_class_loader)
{
// FIXME: should use some internal version of getParent
// that avoids security checks.
callers = callers.getParent ();
}
if (callers != context_class_loader)
s.checkPermission (new RuntimePermission ("getClassLoader"));
}
// FIXME: Add security manager stuff here.
return context_class_loader;
}
public void setContextClassLoader(ClassLoader cl)
public synchronized void setContextClassLoader(ClassLoader cl)
{
// FIXME: Add security manager stuff here.
SecurityManager s = System.getSecurityManager ();
if (s != null)
s.checkPermission (new RuntimePermission ("setContextClassLoader"));
context_class_loader = cl;
}