wilfried created CXF-8926: ----------------------------- Summary: MTOM - Lock while processing attachment Key: CXF-8926 URL: https://issues.apache.org/jira/browse/CXF-8926 Project: CXF Issue Type: Bug Reporter: wilfried
I'm currently implementing a SOAP client to send document with CXF 4.0.1 (the application is quarkus based). My client is working fine when firewall is open between my machine and the target server, but in case firewall is closed (for QA environment for example), I was expecting to get a timeout, but it's not the case. The SOAP client stops its execution to the interceptor *AttachmentOutEndingInterceptor *and waits indefinitely. After profiling the application, I found out a lock as shown by the below thread dump: {code:java} "executor-thread-2" #296 daemon prio=5 os_prio=0 cpu=31.25ms elapsed=201.04s tid=0x0000019f9cd475d0 nid=0x5cf8 in Object.wait() [0x0000009645dfe000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(java.base@17.0.2/Native Method) - waiting on <no object reference available> at java.io.PipedInputStream.awaitSpace(java.base@17.0.2/PipedInputStream.java:273) at java.io.PipedInputStream.receive(java.base@17.0.2/PipedInputStream.java:231) - locked <0x0000000613854b08> (a java.io.PipedInputStream) at java.io.PipedOutputStream.write(java.base@17.0.2/PipedOutputStream.java:150) at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:51) at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:81) at jakarta.activation.DataHandler.writeTo(DataHandler.java:283) at org.apache.cxf.attachment.AttachmentSerializer.writeAttachments(AttachmentSerializer.java:318) at org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInterceptor.handleMessage(AttachmentOutInterceptor.java:126) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) - locked <0x0000000613856e30> (a org.apache.cxf.phase.PhaseInterceptorChain) at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:528) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:439) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:354) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:312) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140) at jdk.proxy7.$Proxy235.addMessage(jdk.proxy7/Unknown Source) at lu.etat.ci.fwt.soap.SOAPTestController.callSaySomethingMtomSecuredCIDUT(SOAPTestController.java:138) at lu.etat.ci.fwt.soap.SOAPTestController$quarkusrestinvoker$callSaySomethingMtomSecuredCIDUT_1b14f2d5ed1a4d42c824e7582903a9f19063cae3.invoke(Unknown Source) at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29) at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141) at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:145) at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:576) at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1512) at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29) at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(java.base@17.0.2/Thread.java:833) {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)