DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=43174>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=43174

           Summary: EOFException was thrown repeatedly from StandardManager
           Product: Tomcat 6
           Version: 6.0.14
          Platform: Other
        OS/Version: other
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Hi,

If SESSION.ser file was invalid, because Tomcat had been killed or something,
then EOFException would be thrown.
But StandardManager doesn't delete the invalid session file.
So if Tomcat is restarted, EOFException will be thrown repeatedly.

java.io.EOFException
        at 
java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2232)
        at
java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2698)
        at 
java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:750)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:268)
        at
org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:57)
        at 
org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:361)
        at 
org.apache.catalina.session.StandardManager.load(StandardManager.java:320)
        at 
org.apache.catalina.session.StandardManager.start(StandardManager.java:636)
        at 
org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:431)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4130)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
        at 
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
        at 
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1112)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:450)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)


I think StandardManager#doload should delete the session file after the
execution whether sucess or not.

I made a patch.

Regards,

Index: /tc6.0.x/trunk/java/org/apache/catalina/session/StandardManager.java
===================================================================
--- /tc6.0.x/trunk/java/org/apache/catalina/session/StandardManager.java
(revision 566663)
+++ /tc6.0.x/trunk/java/org/apache/catalina/session/StandardManager.java
(working copy)
@@ -345,6 +345,9 @@
             return;
         if (log.isDebugEnabled())
             log.debug(sm.getString("standardManager.loading", pathname));
+
+        try {
+
         FileInputStream fis = null;
         ObjectInputStream ois = null;
         Loader loader = null;
@@ -427,15 +430,17 @@
                 } catch (IOException f) {
                     // ignored
                 }
-
-                // Delete the persistent storage file
-                if (file != null && file.exists() )
-                    file.delete();
             }
         }
 
         if (log.isDebugEnabled())
             log.debug("Finish: Loading persisted sessions");
+
+        } finally {
+            // Delete the persistent storage file
+            if (file != null && file.exists() )
+                file.delete();
+        }
     }

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to