You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Peter Ertl (JIRA)" <ji...@apache.org> on 2010/09/01 14:50:53 UTC

[jira] Updated: (WICKET-3011) strange context shutdown issue on jetty 7

     [ https://issues.apache.org/jira/browse/WICKET-3011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Peter Ertl updated WICKET-3011:
-------------------------------

    Description: 
when using jetty 7, creating at least one http session and then shutting down the web app context of the wicket web application the following happens:

- (1) jetty destroys the wicket filter by calling javax.servlet.Filter#destroy()
- (2) the thread local mapping   application key ---> application   will be purged
- (3) jetty calls org.apache.wicket.session.SessionBindingListener.valueUnbound for the expiring session:


--code--

		public void valueUnbound(final HttpSessionBindingEvent evt)
		{
			if (log.isDebugEnabled())
			{
				log.debug("Session unbound: " + sessionId);
			}

///////////////
////////////// THE APPLICATION WILL BE NULL SINCE THE  
////////////// WICKET FILTER ALREADY REMOVED IT
///////////////
			Application application = Application.get(applicationKey);
			
			if (application == null)
			{
///////////////
/////////////// YOU WILL SEE THE MESSAGE BELOW
///////////////
				log.error("Wicket application with name '" + applicationKey + "' not found.");
				return;
			}

///////////////
/////////////// NO LISTENERS WILL BE INVOKED
///////////////
			ISessionStore sessionStore = application.getSessionStore();
			if (sessionStore != null)
			{
				for (UnboundListener listener : sessionStore.getUnboundListener())
				{
					listener.sessionUnbound(sessionId);
				}
			}
		}

--code--


Can somebody confirm the order jetty executes the handlers is right / wrong?

In case it's wrong we should file a ticket at jetty.

In case it's right we should fix that issue in wicket.



Not fixing this incorrect behavior will mean the session unbound listeners will not be called reliably.



  was:
when using jetty 7, creating at least one http session and then shutting down the web app context of the wicket web application the following happens:

- (1) jetty destroys the wicket filter by calling javax.servlet.Filter#destroy()
- (2) the thread local mapping   application key ---> application   will be purged
- (3) jetty calls org.apache.wicket.session.SessionBindingListener.valueUnbound for the expiring session:


--code--

		public void valueUnbound(final HttpSessionBindingEvent evt)
		{
			if (log.isDebugEnabled())
			{
				log.debug("Session unbound: " + sessionId);
			}

///////////////
////////////// THE APPLICATION WILL BE NULL SINCE THE WICKET FILTER 
////////////// ALREADY REMOVED IT FROM THE THREAD LOCAL
///////////////
			Application application = Application.get(applicationKey);
			
			if (application == null)
			{
///////////////
/////////////// YOU WILL SEE THE MESSAGE BELOW
///////////////
				log.error("Wicket application with name '" + applicationKey + "' not found.");
				return;
			}

///////////////
/////////////// NO LISTENERS WILL BE INVOKED
///////////////
			ISessionStore sessionStore = application.getSessionStore();
			if (sessionStore != null)
			{
				for (UnboundListener listener : sessionStore.getUnboundListener())
				{
					listener.sessionUnbound(sessionId);
				}
			}
		}

--code--


Can somebody confirm the order jetty executes the handlers is right / wrong?

In case it's wrong we should file a ticket at jetty.

In case it's right we should fix that issue in wicket.



Not fixing this incorrect behavior will mean the session unbound listeners will not be called reliably.




> strange context shutdown issue on jetty 7
> -----------------------------------------
>
>                 Key: WICKET-3011
>                 URL: https://issues.apache.org/jira/browse/WICKET-3011
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>            Reporter: Peter Ertl
>            Assignee: Peter Ertl
>
> when using jetty 7, creating at least one http session and then shutting down the web app context of the wicket web application the following happens:
> - (1) jetty destroys the wicket filter by calling javax.servlet.Filter#destroy()
> - (2) the thread local mapping   application key ---> application   will be purged
> - (3) jetty calls org.apache.wicket.session.SessionBindingListener.valueUnbound for the expiring session:
> --code--
> 		public void valueUnbound(final HttpSessionBindingEvent evt)
> 		{
> 			if (log.isDebugEnabled())
> 			{
> 				log.debug("Session unbound: " + sessionId);
> 			}
> ///////////////
> ////////////// THE APPLICATION WILL BE NULL SINCE THE  
> ////////////// WICKET FILTER ALREADY REMOVED IT
> ///////////////
> 			Application application = Application.get(applicationKey);
> 			
> 			if (application == null)
> 			{
> ///////////////
> /////////////// YOU WILL SEE THE MESSAGE BELOW
> ///////////////
> 				log.error("Wicket application with name '" + applicationKey + "' not found.");
> 				return;
> 			}
> ///////////////
> /////////////// NO LISTENERS WILL BE INVOKED
> ///////////////
> 			ISessionStore sessionStore = application.getSessionStore();
> 			if (sessionStore != null)
> 			{
> 				for (UnboundListener listener : sessionStore.getUnboundListener())
> 				{
> 					listener.sessionUnbound(sessionId);
> 				}
> 			}
> 		}
> --code--
> Can somebody confirm the order jetty executes the handlers is right / wrong?
> In case it's wrong we should file a ticket at jetty.
> In case it's right we should fix that issue in wicket.
> Not fixing this incorrect behavior will mean the session unbound listeners will not be called reliably.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.