[ https://issues.apache.org/jira/browse/CXF-9009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17845746#comment-17845746 ]
Andriy Redko edited comment on CXF-9009 at 5/12/24 9:27 PM: ------------------------------------------------------------ [~juliojgd] please refer to the FAQ section regarding JAX-WS client proxies thread safety [1], thank you. Out of curiosity, what is the use case to have async invocation (which is already happening in another thread) executed in the context of the thread pool? [1] [https://cxf.apache.org/faq.html#FAQ-AreJAX-WSclientproxiesthreadsafe?] was (Author: reta): [~juliojgd] please refer to the FAQ section regarding JAX-WS client proxies thread safety [1], thank you. [1] https://cxf.apache.org/faq.html#FAQ-AreJAX-WSclientproxiesthreadsafe? > Async operations fail in concurrent calls > ----------------------------------------- > > Key: CXF-9009 > URL: https://issues.apache.org/jira/browse/CXF-9009 > Project: CXF > Issue Type: Bug > Components: JAX-WS Runtime > Affects Versions: 4.0.4 > Reporter: Julio J. Gomez Diaz > Priority: Major > Attachments: spring-soap.zip > > > An exception occurs when a SOAP client is used concurrently in async > operations, the exception is as follows: > > > {code:java} > org.apache.cxf.interceptor.Fault: Could not send Message. > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:67) > ~[cxf-core-4.0.4.jar:4.0.4] > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) > ~[cxf-core-4.0.4.jar:4.0.4] > at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530) > ~[cxf-core-4.0.4.jar:4.0.4] > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:434) > ~[cxf-core-4.0.4.jar:4.0.4] > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:412) > ~[cxf-core-4.0.4.jar:4.0.4] > at > org.apache.cxf.jaxws.JaxWsClientProxy.invokeAsync(JaxWsClientProxy.java:326) > ~[cxf-rt-frontend-jaxws-4.0.4.jar:4.0.4] > at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138) > ~[cxf-rt-frontend-jaxws-4.0.4.jar:4.0.4] > at jdk.proxy2/jdk.proxy2.$Proxy95.countAsync(Unknown Source) ~[na:na] > at > com.example.demo.rest.RestController.lambda$async$1(RestController.java:25) > ~[classes/:na] > at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) > ~[na:na] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) > ~[na:na] > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) > ~[na:na] > at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] > Caused by: io.netty.channel.StacklessClosedChannelException: null > at > io.netty.channel.AbstractChannel$AbstractUnsafe.ensureOpen(ChannelPromise)(Unknown > Source) ~[netty-transport-4.1.109.Final.jar:4.1.109.Final]{code} > > I created an reproducer application (find attached "spring-soap.zip") that > acts as client and server, and this publishes the following operations: > * [http://localhost:8080/async] -> it uses a soap client to call > concurrently using an async operation (this {*}fails with the exception > previously described{*}) > * [http://localhost:8080/sync] -> it uses a soap client to call concurrently > using an ordinary operation (ends without errors) -- This message was sent by Atlassian Jira (v8.20.10#820010)