2010/7/21 <[email protected]>
> 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)
>
Any objections to make this "catch (Exception e)" ?
I have bad experience with catching *Error's.
> + {
> + // 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();
> + }
> }
>
>
>