[ 
https://issues.apache.org/jira/browse/WICKET-2846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12872957#action_12872957
 ] 

Sven Meier commented on WICKET-2846:
------------------------------------

There might be reasons to prefer an ITL but IMHO the provided use case example 
is contrived.
I'd suggest moving your thread creation out of your UI tier:

public class MyPage extends Page {
  @SpringBean
  private MyService service;

  //perform a polling of long running process triggered by a button click
  onClickButton() {
      service.executeLongRunningProcessAndReturnImmediately();
  }
} 

> Store Application in InheritableThreadLocal instead of ThreadLocal
> ------------------------------------------------------------------
>
>                 Key: WICKET-2846
>                 URL: https://issues.apache.org/jira/browse/WICKET-2846
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>            Reporter: Alexandru Objelean
>            Assignee: Jeremy Thomerson
>            Priority: Minor
>             Fix For: 1.4.10
>
>         Attachments: wicket-application-leak.tar.gz
>
>
> Is there any particular reason why Application class wouldn't be stored in 
> InheritableThreadLocal instead of ThreadLocal? The problem is that I need to 
> be able to access Application class from a thread created when a button is 
> pressed. Using InheritableThreadLocal instead of ThreadLocal would solve 
> this problem. 
> Use case example:
> public class MyPage extends Page { 
>   @SpringBean 
>   private MyService service; 
>   //perform a polling of long running process triggered by a button click 
>   onClickButton() { 
>     new Thread() { 
>       run() { 
>         service.executeLongRunningProcess(); 
>       } 
>     }.start();   
>   } 
> } 
> The following example won't work well if the Application is not stored in 
> InheritableThreadLocal. The reason why it doesn't work, as I understand that, 
> is because @SpringBean lookup depends on Application instance which is not 
> accessible from within the thread. Having it stored inside of ITL would solve 
> the problem. 
> Thanks!
> Alex

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

Reply via email to