remm 2005/09/08 08:41:11
Modified: modules/cluster/src/share/org/apache/catalina/cluster/session
ReplicationStream.java
catalina/src/share/org/apache/catalina/util
CustomObjectInputStream.java
webapps/docs changelog.xml
Log:
- 36113: Session persistence for objects with primitive types.
- The best fix would be to be able to reuse the JDK code (or similar) here.
Revision Changes Path
1.5 +14 -10
jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/ReplicationStream.java
Index: ReplicationStream.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/ReplicationStream.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ReplicationStream.java 27 Jul 2005 15:11:40 -0000 1.4
+++ ReplicationStream.java 8 Sep 2005 15:41:11 -0000 1.5
@@ -69,15 +69,19 @@
throws ClassNotFoundException, IOException {
String name = classDesc.getName();
boolean tryRepFirst = name.startsWith("org.apache.catalina.cluster");
- try
- {
- if ( tryRepFirst ) return findReplicationClass(name);
- else return findWebappClass(name);
- }
- catch ( Exception x )
- {
- if ( tryRepFirst ) return findWebappClass(name);
- else return findReplicationClass(name);
+ try {
+ try
+ {
+ if ( tryRepFirst ) return findReplicationClass(name);
+ else return findWebappClass(name);
+ }
+ catch ( Exception x )
+ {
+ if ( tryRepFirst ) return findWebappClass(name);
+ else return findReplicationClass(name);
+ }
+ } catch (ClassNotFoundException e) {
+ return super.resolveClass(classDesc);
}
}
1.5 +7 -2
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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CustomObjectInputStream.java 10 Mar 2005 23:54:45 -0000 1.4
+++ CustomObjectInputStream.java 8 Sep 2005 15:41:11 -0000 1.5
@@ -70,7 +70,12 @@
*/
public Class resolveClass(ObjectStreamClass classDesc)
throws ClassNotFoundException, IOException {
- return Class.forName(classDesc.getName(), false, classLoader);
+ try {
+ return Class.forName(classDesc.getName(), false, classLoader);
+ } catch (ClassNotFoundException e) {
+ // Try also the superclass because of primitive types
+ return super.resolveClass(classDesc);
+ }
}
1.371 +4 -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.370
retrieving revision 1.371
diff -u -r1.370 -r1.371
--- changelog.xml 8 Sep 2005 15:00:54 -0000 1.370
+++ changelog.xml 8 Sep 2005 15:41:11 -0000 1.371
@@ -56,6 +56,10 @@
<bug>36558</bug>: Clear IntrospectionUtils cache when stopping a
webapp, as it
could leak to keeping a reference to the classloader (remm)
</fix>
+ <fix>
+ <bug>36113</bug>: Session persistence for objects with primitive
types could fail in
+ some rare cases (remm)
+ </fix>
</changelog>
</subsection>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]