craigmcc 01/07/12 12:42:13 Modified: catalina/src/share/org/apache/catalina/session LocalStrings.properties StandardManager.java Log: Log exception messages (with stack traces) when IOException or ClassNotFound- Exception is encountered when unloading sessions to SESSIONS.ser, or reloading them after a restart. Currently, such errors are silently ignored. This can cause problems like the one reported in Bugzilla #2380, where the SESSIONS.ser file was created but with zero length. This could happen, for example, if a non-serializable session attribute was being processed -- the NotSerializableException would get silently swallowed and no remaining sessions would be saved. Revision Changes Path 1.9 +3 -0 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/LocalStrings.properties,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- LocalStrings.properties 2001/07/10 22:08:25 1.8 +++ LocalStrings.properties 2001/07/12 19:42:04 1.9 @@ -24,9 +24,12 @@ standardManager.alreadyStarted=Manager has already been started standardManager.createSession.ise=createSession: Too many active sessions standardManager.loading=Loading persisted sessions from {0} +standardManager.loading.cnfe=ClassNotFoundException while loading persisted sessions: {0} +standardManager.loading.ioe=IOException while loading persisted sessions: {0} standardManager.notStarted=Manager has not yet been started standardManager.sessionTimeout=Invalid session timeout setting {0} standardManager.unloading=Saving persisted sessions to {0} +standardManager.unloading.ioe=IOException while saving persisted sessions: {0} standardManager.managerLoad=Exception loading sessions from persistent storage standardManager.managerUnload=Exception unloading sessions to persistent storage standardSession.attributeEvent=Session attribute event listener threw exception 1.12 +9 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardManager.java Index: StandardManager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardManager.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- StandardManager.java 2001/06/22 22:03:35 1.11 +++ StandardManager.java 2001/07/12 19:42:06 1.12 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardManager.java,v 1.11 2001/06/22 22:03:35 jon Exp $ - * $Revision: 1.11 $ - * $Date: 2001/06/22 22:03:35 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardManager.java,v 1.12 2001/07/12 19:42:06 craigmcc Exp $ + * $Revision: 1.12 $ + * $Date: 2001/07/12 19:42:06 $ * * ==================================================================== * @@ -106,7 +106,7 @@ * <code>stop()</code> methods of this class at the correct times. * * @author Craig R. McClanahan - * @version $Revision: 1.11 $ $Date: 2001/06/22 22:03:35 $ + * @version $Revision: 1.12 $ $Date: 2001/07/12 19:42:06 $ */ public class StandardManager @@ -387,6 +387,7 @@ log("No persisted data file found"); return; } catch (IOException e) { + log(sm.getString("standardManager.loading.ioe", e), e); if (ois != null) { try { ois.close(); @@ -413,6 +414,7 @@ ((StandardSession) session).activate(); } } catch (ClassNotFoundException e) { + log(sm.getString("standardManager.loading.cnfe", e), e); if (ois != null) { try { ois.close(); @@ -423,6 +425,7 @@ } throw e; } catch (IOException e) { + log(sm.getString("standardManager.loading.ioe", e), e); if (ois != null) { try { ois.close(); @@ -476,6 +479,7 @@ fos = new FileOutputStream(file.getAbsolutePath()); oos = new ObjectOutputStream(new BufferedOutputStream(fos)); } catch (IOException e) { + log(sm.getString("standardManager.unloading.ioe", e), e); if (oos != null) { try { oos.close(); @@ -503,6 +507,7 @@ session.writeObjectData(oos); } } catch (IOException e) { + log(sm.getString("standardManager.unloading.ioe", e), e); if (oos != null) { try { oos.close();