title: Combine Resteasy async fail to inject SessionScoped and RequestScoped bean with CDI
body: <p>I am working on a issue related to async job in Reasteasy (http://docs.jboss.org/resteasy/docs/2.3.1.GA/userguide/html_single/index.html#async_job_service).</p>
  
  <p>I post a request adding ?asynch=true to the url, and the job is then run asynchronously, but when it runs, it works fine with @ApplicationScoped or @Singleton annotated bean, but it cannot access bean of class declared with @RequestScoped annotation and I always run into this error :</p>
  
  <pre><code>org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.enterprise.context.RequestScoped
      at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:664)
      at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:77)
      at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:87)
      at com.examplecompany.exampleproject.multitenancy.org$jboss$weld$bean-flat-ManagedBean-class_com$examplecompany$exampleproject$multitenancy$PersistenceContext_$$WeldClientProxy.setDb(org$jboss$weld$bean-flat-ManagedBean-class_com$examplecompany$exampleproject$multitenancy$PersistenceContext$$_WeldClientProxy.java)
      at com.examplecompany.exampleproject.auth.oauth.secure.OAuthDelegate.filterHttp(OAuthDelegate.java:115)
      at com.examplecompany.exampleproject.auth.oauth.secure.AuthorizationInterceptor.preProcess(AuthorizationInterceptor.java:59)
      at com.examplecompany.exampleproject.auth.oauth.secure.org$jboss$weld$bean-flat-ManagedBean-com$examplecompany$exampleproject$auth$oauth$secure$AuthorizationInterceptor$@javax$enterprise$context$ApplicationScoped()@javax$ws$rs$ext$Provider()@org$jboss$resteasy$annotations$interception$SecurityPrecedence()@org$jboss$resteasy$annotations$interception$ServerInterceptor()${com$examplecompany$exampleproject$auth$oauth$secure$AuthorizationInterceptor$oauthDelegate$@javax$inject$Inject()$$}_$$_WeldClientProxy.preProcess(org$jboss$weld$bean-flat-ManagedBean-com$examplecompany$exampleproject$auth$oauth$secure$AuthorizationInterceptor$@javax$enterprise$context$ApplicationScoped()@javax$ws$rs$ext$Provider()@org$jboss$resteasy$annotations$interception$SecurityPrecedence()@org$jboss$resteasy$annotations$interception$ServerInterceptor()${com$examplecompany$exampleproject$auth$oauth$secure$AuthorizationInterceptor$oauthDelegate$@javax$inject$Inject()$$}_$$_WeldClientProxy.java)
      at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:247)
      at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222)
      at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211)
      at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:525)
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502)
      at org.jboss.resteasy.core.AsynchronousDispatcher.invokeSuper(AsynchronousDispatcher.java:227)
      at org.jboss.resteasy.core.AsynchronousDispatcher$1.call(AsynchronousDispatcher.java:267)
      at org.jboss.resteasy.core.AsynchronousDispatcher$1.call(AsynchronousDispatcher.java:259)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:680)
  </code></pre>
  
  <p>This error do not occur if I post the same request not adding ?asynch=true.</p>
  
  <p>I further investigated the issue and wrote the following lines in my code </p>
  
  
  
  <pre><code>try {
      Context context = beanManager.getContext(RequestScoped.class);
  } catch (ContextNotActiveException e) {
      logger.info("Oops the context does not exists, we are in bad sh*t",e);
  }
  </code></pre>
  
  <p>If I'm in async mode, the <code>ContextNotActiveException</code>is always thrown, and the log have the same exception message <code>WELD-001303 No active contexts for scope type javax.enterprise.context.RequestScoped</code>.</p>
  
  <p>So I guess that when the task is launched async mode, the two context Session and Request are not created, and thus my bean defined in these scope are inaccessible.</p>
  
  <p>I raised a ticket into Resteasy Jira for this: <a href="https://issues.jboss.org/browse/RESTEASY-682" rel="nofollow">https://issues.jboss.org/browse/RESTEASY-682</a></p>