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]

Reply via email to