markt 2005/03/10 15:54:46
Modified: catalina/src/share/org/apache/catalina/util
CustomObjectInputStream.java
webapps/docs changelog.xml
Log:
Fix bug 22041. Dynamic proxies are now supported as sesison objects.
- Implemented using the code from
org.apache.geronimo.network.ResolvingObjectInputStream
- Ported from TC4
Revision Changes Path
1.4 +21 -1
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java
Index: CustomObjectInputStream.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- CustomObjectInputStream.java 27 Feb 2004 14:58:50 -0000 1.3
+++ CustomObjectInputStream.java 10 Mar 2005 23:54:45 -0000 1.4
@@ -20,6 +20,7 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectStreamClass;
+import java.lang.reflect.Proxy;
/**
* Custom subclass of <code>ObjectInputStream</code> that loads from the
@@ -73,4 +74,23 @@
}
+ /**
+ * 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 {
+
+ Class[] cinterfaces = new Class[interfaces.length];
+ for (int i = 0; i < interfaces.length; i++)
+ cinterfaces[i] = classLoader.loadClass(interfaces[i]);
+
+ try {
+ return Proxy.getProxyClass(classLoader, cinterfaces);
+ } catch (IllegalArgumentException e) {
+ throw new ClassNotFoundException(null, e);
+ }
+ }
+
}
1.239 +3 -0 jakarta-tomcat-catalina/webapps/docs/changelog.xml
Index: changelog.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/changelog.xml,v
retrieving revision 1.238
retrieving revision 1.239
diff -u -r1.238 -r1.239
--- changelog.xml 8 Mar 2005 23:26:18 -0000 1.238
+++ changelog.xml 10 Mar 2005 23:54:45 -0000 1.239
@@ -57,6 +57,9 @@
<fix>
Add back retry logic in JDBC realm in case of a connection failure
(remm)
</fix>
+ <fix>
+ <bug>22041</bug>: Support dynamic proxies as session objects. (markt)
+ </fix>
</changelog>
</subsection>
</section>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]