Added.

On Fri, 2010-10-01 at 13:14 +0200, Sebastian wrote:

> I just realized that the current session is also bound to the thread 
> context. Would it make sense to attach the Session to the background 
> thread using the same way we do it for the Application?
> 
> E.g.
> 
> Session oldSession = Session.exists() ? Session.get() : null;
> Session.set(_session);
> try
> {
>       ... invoke...
> }
> finally
> {
>     if (oldSession == null) Session.unset();
>     else Session.set(oldSession);
> }
> 
> Without doing this, the exception IllegalSateException: "You can only 
> locate or create sessions in the context of a request cycle" may be thrown.
> 
> Seb
> 
> On 01.10.2010 00:42, Rodolfo Hansen wrote:
> > On Thu, 2010-09-30 at 23:48 +0200, Sebastian wrote:
> >
> >>> There was an issue in your patch where the application could be left
> >> in the ThreadContext, which was fixed,
> >>
> >> Hi Rodolfo,
> >>
> >> I think you are referring to
> >>
> >> try {
> >>     Application.set(_application);
> >>     methods[m].invoke(o, parameters);
> >> } finally {
> >>     Application.set(originalApplication);
> >>     if (originalApplication != null) Application.set(originalApplication);
> >> }
> >>
> >> The problem is if this code is executed in a separate thread the
> >> originalApplication will be null. If you just omit the null check in the
> >> finally clause the setter will throw an IllegalArgumentException. So to
> >> remove the app from the ThreadContext we would have to call
> >> Application.unset() instead:
> >>
> >> if (originalApplication == null) Application.unset();
> >> else Application.set(originalApplication);
> >
> >
> > you are right, although i checked the source for set and didn't see the
> > throw...
> >
> > amended in the 1.4 branches
> >
> >
> >>
> >> Regards,
> >> Seb
> >>
> >>
> >>
> >> On 30.09.2010 23:08, Rodolfo Hansen wrote:
> >>> Hi Sebastian, your patch is in:
> >>>
> >>> trunk (1.5)
> >>> 1.4 branch (future 1.4.13 release)
> >>> and 1.4.12
> >>>
> >>> There was an issue in your patch where the application could be left in
> >>> the ThreadContext, which was fixed,
> >>> as well as a simplification in the trigger function.
> >>>
> >>> On Wed, 2010-09-29 at 21:39 +0200, Sebastian wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>> there is a problem in the Push TimerChannelService implementation:
> >>>> Callbacks do not work reliable when they are invoked from non-Web
> >>>> threads. The "There is no application attached to current thread"
> >>>> WicketRuntimeException will occur in such a case. The attached patch
> >>>> fixes this issue.
> >>>>
> >>>> Regards,
> >>>>
> >>>> Seb
> 
> >
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 


Reply via email to