[jboss-jira] [JBoss JIRA] (WFLY-12982) MP fault tolerance: CDI contexts not available in @Timeout methods
Ladislav Thon (Jira)
issues at jboss.org
Thu Jan 16 08:12:30 EST 2020
[ https://issues.redhat.com/browse/WFLY-12982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13950234#comment-13950234 ]
Ladislav Thon commented on WFLY-12982:
--------------------------------------
Indeed the new implementation should address this.
> MP fault tolerance: CDI contexts not available in @Timeout methods
> ------------------------------------------------------------------
>
> Key: WFLY-12982
> URL: https://issues.redhat.com/browse/WFLY-12982
> Project: WildFly
> Issue Type: Bug
> Components: MP Fault Tolerance
> Affects Versions: 19.0.0.Beta1
> Reporter: Miroslav Novak
> Assignee: Radoslav Husar
> Priority: Major
>
> Say I have a {{@Timeout}} method in my application, which uses a {{@RequestScoped}} service:
> {code:java}
> @Inject
> private MyService service;
> @Timeout
> public String doSomething() throws InterruptedException {
> return "Hello " + service.call();
> }
> {code}
> The method isn't {{@Asynchronous}}, so it's supposed to be executed on the caller thread and hence the CDI contexts should be available. However, they are not:
> {code}
> 2018-04-03 21:16:35,976 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /: org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.enterprise.context.RequestScoped
> {code}
> Clearly the {{@Timeout}} methods are always executed on a separate thread (see {{HystrixCommandInterceptor.initSetter}}):
> {code:java}
> // Async and timeout operations use THREAD isolation strategy
> if (operation.isAsync() || operation.hasTimeout()) {
> propertiesSetter.withExecutionIsolationStrategy(HystrixCommandProperties.ExecutionIsolationStrategy.THREAD);
> } else {
> propertiesSetter.withExecutionIsolationStrategy(HystrixCommandProperties.ExecutionIsolationStrategy.SEMAPHORE);
> }
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the jboss-jira
mailing list