On Thu, Jun 22, 2017 at 9:35 PM, <[email protected]> wrote: > Repository: wicket > Updated Branches: > refs/heads/wicket-6.x 75a4fdcba -> fe5573ee5 > > > fix Sesssion invalidate method dose not work after deserialisation > > > Project: http://git-wip-us.apache.org/repos/asf/wicket/repo > Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/fe5573ee > Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/fe5573ee > Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/fe5573ee > > Branch: refs/heads/wicket-6.x > Commit: fe5573ee58354600ae79c9af2cc8d65178bed481 > Parents: 75a4fdc > Author: Tomohiro Nagai <[email protected]> >
Is Apple using Wicket ?! :-) > Authored: Thu Jun 22 21:40:51 2017 +0900 > Committer: Tomohiro Nagai <[email protected]> > Committed: Thu Jun 22 21:40:51 2017 +0900 > > ---------------------------------------------------------------------- > .../main/java/org/apache/wicket/Session.java | 2 +- > .../wicket/session/SessionInvalidateTest.java | 64 ++++++++++++++++++++ > 2 files changed, 65 insertions(+), 1 deletion(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > fe5573ee/wicket-core/src/main/java/org/apache/wicket/Session.java > ---------------------------------------------------------------------- > diff --git a/wicket-core/src/main/java/org/apache/wicket/Session.java > b/wicket-core/src/main/java/org/apache/wicket/Session.java > index 730cf91..5bab1c6 100644 > --- a/wicket-core/src/main/java/org/apache/wicket/Session.java > +++ b/wicket-core/src/main/java/org/apache/wicket/Session.java > @@ -518,7 +518,7 @@ public abstract class Session implements IClusterable, > IEventSink > */ > private void destroy() > { > - if (sessionStore != null) > + if (getSessionStore() != null) > { > sessionStore.invalidate( > RequestCycle.get().getRequest()); > sessionStore = null; > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > fe5573ee/wicket-core/src/test/java/org/apache/wicket/ > session/SessionInvalidateTest.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/test/java/org/apache/wicket/session/SessionInvalidateTest.java > b/wicket-core/src/test/java/org/apache/wicket/session/ > SessionInvalidateTest.java > new file mode 100644 > index 0000000..c4c54d8 > --- /dev/null > +++ b/wicket-core/src/test/java/org/apache/wicket/session/ > SessionInvalidateTest.java > @@ -0,0 +1,64 @@ > +/* > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.wicket.session; > + > +import org.apache.wicket.ThreadContext; > +import org.apache.wicket.Session; > +import org.apache.wicket.protocol.http.WebApplication; > +import org.apache.wicket.protocol.http.mock.MockServletContext; > +import org.apache.wicket.core.util.lang.WicketObjects; > +import org.apache.wicket.WicketTestCase; > +import org.junit.Test; > +import org.junit.Before; > + > +public class SessionInvalidateTest extends WicketTestCase > +{ > + private ISessionStore sessionStore; > + private Session session; > + > + @Before > + public void setUp() > + { > + final WebApplication application = tester.getApplication(); > + ThreadContext.setApplication(application); > + sessionStore = application.getSessionStore(); > + > + session = tester.getSession(); > + session.bind(); > + } > + > + @Test > + public void sessionInvalidate() > + { > + sessionStore.bind(null, session); > + assertNotNull(sessionStore.lookup(null)); > + > + session.invalidateNow(); > + assertNull(sessionStore.lookup(null)); > + } > + > + @Test > + public void sessionInvalidateAfterDeserialize() > + { > + sessionStore.bind(null, session); > + assertNotNull(sessionStore.lookup(null)); > + > + final Session copy = (Session)WicketObjects.cloneObject(session); > + copy.invalidateNow(); > + assertNull(sessionStore.lookup(null)); > + } > +} > >
