[cdi-dev] [JBoss JIRA] (CDI-587) Propose a way to propagate an existing context

Romain Manni-Bucau (JIRA) issues at jboss.org
Wed Jul 18 09:44:01 EDT 2018

    [ https://issues.jboss.org/browse/CDI-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13607583#comment-13607583 ] 

Romain Manni-Bucau commented on CDI-587:

Since CDI 2 we could have a simple solution reusing RequestContextController and adding a method to be able to manipulate the context:

RequestContextController scope = controller.handler();
// do something
// start a new thread or eq () -> {
try { /*...*/}
finally { scope.deactivate(); }
// };

It would:

1. let to the caller the thread safety responsability
2. use some kind of reference counting to not destroy the scope too early (before all deactivate are called)

> Propose a way to propagate an existing context
> ----------------------------------------------
>                 Key: CDI-587
>                 URL: https://issues.jboss.org/browse/CDI-587
>             Project: CDI Specification Issues
>          Issue Type: Epic
>          Components: Contexts
>    Affects Versions: 1.2.Final
>            Reporter: Romain Manni-Bucau
> The overall idea is to ensure that it is not cause the code becomes asynchronous/reactive/... that we loose the instances or get another context.
> An example is starting an AsyncContext in a servlet.
> One proposal is to add a flag to ask for propagation of the context in async managed threads: @RequestScoped(inherited = true) which would reuse the same instances for these "new" threads.
> Note however this issue is not only bound to servlets even if it is the easiest example.
> The original thread disucssion on the list: http://cdi-development-mailing-list.1064426.n5.nabble.com/RequestScope-Life-Cycle-td5712701.html

This message was sent by Atlassian JIRA

More information about the cdi-dev mailing list