You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2004/06/16 21:50:46 UTC
DO NOT REPLY [Bug 22041] -
Loading DynamicProxys from session
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=22041>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=22041
Loading DynamicProxys from session
------- Additional Comments From markt@apache.org 2004-06-16 19:50 -------
I'd prefer something along the lines of the patch below. Could you test this
(or attach a simple test case to this bug report). If it works, I'll commit it.
Index: catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-
catalina/catalina/src/share/org/apache/catalina/util/Cu
stomObjectInputStream.java,v
retrieving revision 1.3
diff -u -r1.3 CustomObjectInputStream.java
--- catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java
27 Feb 2004 14:58:50 -0000 1.3
+++ catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java
16 May 2004 13:35:18 -0000
@@ -72,5 +72,27 @@
return Class.forName(classDesc.getName(), false, classLoader);
}
+ /**
+ * Return a proxy class that implements the interfaces named in a proxy
+ * class descriptor. Do this using the class loader assigned to this
+ * Context.
+ */
+ protected Class resolveProxyClass(String[] interfaces)
+ throws IOException, ClassNotFoundException {
+
+ ClassLoader originalClassLoader =
+ Thread.currentThread().getContextClassLoader();
+
+ // Set thread to use context class loader
+ Thread.currentThread().setContextClassLoader(classLoader);
+
+ // Use super class to do all the real work
+ Class clazz = super.resolveProxyClass(interfaces);
+
+ // Swap back to original class loader
+ Thread.currentThread().setContextClassLoader(originalClassLoader);
+
+ return clazz;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org