From 043ede821236cb8f3935ad6d3c9e06b1e42e5ee8 Mon Sep 17 00:00:00 2001 From: markt Date: Thu, 3 Jan 2008 22:04:48 +0000 Subject: [PATCH] Improve fix for 43840 with better error handling, a better variable name and a bit of other clean-up. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@608654 13f79535-47bb-0310-9956-ffa450edef68 --- .../catalina/ha/session/LocalStrings.properties | 1 + .../catalina/ha/session/SerializablePrincipal.java | 37 +++++++++++++++------- .../ha/session/TestSerializablePrincipal.java | 3 ++ 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/java/org/apache/catalina/ha/session/LocalStrings.properties b/java/org/apache/catalina/ha/session/LocalStrings.properties index 45e1478ec..18d222ad7 100644 --- a/java/org/apache/catalina/ha/session/LocalStrings.properties +++ b/java/org/apache/catalina/ha/session/LocalStrings.properties @@ -109,3 +109,4 @@ standardSession.setAttribute.iae=setAttribute: Non-serializable attribute standardSession.setAttribute.ise=setAttribute: Session already invalidated standardSession.setAttribute.namenull=setAttribute: name parameter cannot be null standardSession.sessionCreated=Created Session id = {0} +serializablePrincipal.readPrincipal.cnfe=readPrincipal: Failed to recreate user Principal \ No newline at end of file diff --git a/java/org/apache/catalina/ha/session/SerializablePrincipal.java b/java/org/apache/catalina/ha/session/SerializablePrincipal.java index ebd2c9fee..ff2cedaa4 100644 --- a/java/org/apache/catalina/ha/session/SerializablePrincipal.java +++ b/java/org/apache/catalina/ha/session/SerializablePrincipal.java @@ -19,6 +19,7 @@ package org.apache.catalina.ha.session; +import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.io.Serializable; @@ -30,6 +31,7 @@ import java.util.List; import org.apache.catalina.Realm; import org.apache.catalina.realm.GenericPrincipal; +import org.apache.catalina.util.StringManager; /** @@ -42,6 +44,14 @@ import org.apache.catalina.realm.GenericPrincipal; */ public class SerializablePrincipal implements java.io.Serializable { + protected static org.apache.juli.logging.Log log = + org.apache.juli.logging.LogFactory.getLog(SerializablePrincipal.class); + + /** + * The string manager for this package. + */ + protected static StringManager sm = + StringManager.getManager(Constants.Package); // ----------------------------------------------------------- Constructors @@ -201,7 +211,8 @@ public class SerializablePrincipal implements java.io.Serializable { userPrincipal); } - public static GenericPrincipal readPrincipal(ObjectInput in, Realm realm) throws java.io.IOException{ + public static GenericPrincipal readPrincipal(ObjectInput in, Realm realm) + throws IOException, ClassNotFoundException { String name = in.readUTF(); boolean hasPwd = in.readBoolean(); String pwd = null; @@ -209,21 +220,23 @@ public class SerializablePrincipal implements java.io.Serializable { int size = in.readInt(); String[] roles = new String[size]; for ( int i=0; i