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();
> +       }
>  }
>
>
>

Reply via email to