aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/io/natObjectInputStream.cc
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2005-06-01 19:58:25 +0000
committerTom Tromey <tromey@gcc.gnu.org>2005-06-01 19:58:25 +0000
commitcd3352b625b40e18a95bb5db35de31b8951e4d82 (patch)
tree12419b4dbd84dc19200216a422ba5bca825d6f32 /libjava/java/io/natObjectInputStream.cc
parentc3a29423de8cfb7e2b5642b9d44eb21e4b286aec (diff)
downloadgcc-cd3352b625b40e18a95bb5db35de31b8951e4d82.zip
gcc-cd3352b625b40e18a95bb5db35de31b8951e4d82.tar.gz
gcc-cd3352b625b40e18a95bb5db35de31b8951e4d82.tar.bz2
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
Diffstat (limited to 'libjava/java/io/natObjectInputStream.cc')
-rw-r--r--libjava/java/io/natObjectInputStream.cc13
1 files changed, 8 insertions, 5 deletions
diff --git a/libjava/java/io/natObjectInputStream.cc b/libjava/java/io/natObjectInputStream.cc
index 0e0d5a7..2d1a556 100644
--- a/libjava/java/io/natObjectInputStream.cc
+++ b/libjava/java/io/natObjectInputStream.cc
@@ -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;
}
-