re PR libgcj/21785 (ClassNotFound during deserialization)

PR libgcj/21785:
	* java/io/natObjectInputStream.cc (currentClassLoader): Removed.
	(currentLoader): New method.
	* java/io/ObjectInputStream.java (resolveProxyClass): Use
	currentLoader.
	(currentLoader): Now native.
	(currentClassLoader): Removed.
	* testsuite/libjava.lang/pr21785.java: New file.
	* testsuite/libjava.lang/pr21785.out: New file.

From-SVN: r100462
This commit is contained in:
Tom Tromey 2005-06-01 19:58:25 +00:00 committed by Tom Tromey
parent c3a29423de
commit cd3352b625
5 changed files with 46 additions and 34 deletions

View file

@ -1,6 +1,6 @@
// natObjectInputStream.cc - Native part of ObjectInputStream class.
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
/* Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation
This ObjectInputStream is part of libgcj.
@ -24,6 +24,7 @@ details. */
#include <java/lang/SecurityManager.h>
#include <java/lang/reflect/Constructor.h>
#include <java/lang/reflect/Method.h>
#include <java-stack.h>
#ifdef DEBUG
#include <java/lang/System.h>
@ -69,9 +70,11 @@ java::io::ObjectInputStream::allocateObject (jclass klass, jclass,
return obj;
}
java::lang::ClassLoader*
java::io::ObjectInputStream::currentClassLoader (::java::lang::SecurityManager *sm)
java::lang::ClassLoader *
java::io::ObjectInputStream::currentLoader ()
{
return sm->currentClassLoader ();
jclass caller = _Jv_StackTrace::GetCallingClass (&ObjectInputStream::class$);
if (caller)
return caller->getClassLoaderInternal();
return NULL;
}