Author: jdonnerstag
Date: Wed Jul 21 20:43:25 2010
New Revision: 966409

URL: http://svn.apache.org/viewvc?rev=966409&view=rev
Log:
fixed WICKET-2946 Exceptions raised in overridden sessionDestroyed() event (of 
WebApplication class) are completely swallowed by the session-store classes 
without even logging anything
Issue: WICKET-2946

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/DiskPageStoreTest.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java?rev=966409&r1=966408&r2=966409&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java
 Wed Jul 21 20:43:25 2010
@@ -223,8 +223,13 @@ public abstract class AbstractHttpSessio
                        catch (IllegalStateException e)
                        {
                                // can safely be ignored
+                               log.warn("Error while invalidating Session 
Store: Session already invalidated", e);
+                       }
+                       catch (Throwable e)
+                       {
+                               // can safely be ignored
+                               log.error("Error while invalidating Session 
Store: ", e);
                        }
-
                }
        }
 

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/DiskPageStoreTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/DiskPageStoreTest.java?rev=966409&r1=966408&r2=966409&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/DiskPageStoreTest.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/DiskPageStoreTest.java
 Wed Jul 21 20:43:25 2010
@@ -18,6 +18,10 @@ package org.apache.wicket.protocol.http.
 
 import junit.framework.TestCase;
 
+import org.apache.wicket.Page;
+import org.apache.wicket.Session;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.util.tester.DummyHomePage;
 import org.apache.wicket.util.tester.WicketTester;
 
 /**
@@ -71,4 +75,28 @@ public class DiskPageStoreTest extends T
 
                assertEquals(activeThreadsBefore - 1, activeThreadsAfter);
        }
+
+       /**
+        * 
+        */
+       public void testExceptionInSessionDestroy()
+       {
+               WicketTester tester = new WicketTester(new WebApplication()
+               {
+                       @Override
+                       public void sessionDestroyed(String sessionId)
+                       {
+                               throw new NullPointerException("Error");
+                       }
+
+                       @Override
+                       public Class<? extends Page> getHomePage()
+                       {
+                               return DummyHomePage.class;
+                       }
+               });
+
+               tester.startPage(DummyHomePage.class);
+               Session.get().invalidateNow();
+       }
 }


Reply via email to