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

Alexandru Objelean updated WICKET-2846:
---------------------------------------

    Description: 
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

  was:
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. 

Thanks!
Alex


> 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: Igor Vaynberg
>            Priority: Minor
>             Fix For: 1.4.9
>
>
> 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