[ https://issues.apache.org/jira/browse/CXF-6145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14239650#comment-14239650 ]
Guopu Wu commented on CXF-6145: ------------------------------- What happens is that when server receives RM protocol message {http://schemas.xmlsoap.org/ws/2005/02/rm}CloseSequence from client, it asks its Destionation to acknowledge message, which in turn calls DestinationSequence.acknowledge(message) to schedule and defer SequenceAcknowledgement for this message. Problem is that in addition to the scheduled SequenceAcknowledgement, Destination also immediately sends a SequenceAcknowledgement back to client. Client then immediately receives the SequenceAcknowledgement from server and TerminateSequence. When timer for server scheduled SequenceAcknowledgement for LastMessage is on, the client is already shutdown, hence the exception is thrown. > WS-RM demo server throws exception > ---------------------------------- > > Key: CXF-6145 > URL: https://issues.apache.org/jira/browse/CXF-6145 > Project: CXF > Issue Type: Bug > Components: WS-* Components > Affects Versions: 3.0.2 > Environment: Windows JDK 6 > Reporter: Guopu Wu > > Dec 8, 2014 10:04:56 AM org.apache.cxf.ws.rm.Proxy invoke > SEVERE: Failed to send RM protocol message > {http://schemas.xmlsoap.org/ws/2005/02/rm}SequenceAcknowledgement. > org.apache.cxf.interceptor.Fault: Could not send Message. > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) > at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423) > at org.apache.cxf.ws.rm.Proxy.invoke(Proxy.java:313) > at org.apache.cxf.ws.rm.Proxy.invoke(Proxy.java:330) > at org.apache.cxf.ws.rm.Proxy.invoke(Proxy.java:334) > at org.apache.cxf.ws.rm.Proxy.acknowledge(Proxy.java:90) > at > org.apache.cxf.ws.rm.DestinationSequence$DeferredAcknowledgment.run(DestinationSequence.java:469) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run(Timer.java:462) > Caused by: java.net.ConnectException: ConnectException invoking > http://localhost:9990/decoupled_endpoint: Connection refused: connect > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1359) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1343) > at > org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56) > at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215) > at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) > at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:638) > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) > ... 10 more > Caused by: java.net.ConnectException: Connection refused: connect > at java.net.PlainSocketImpl.socketConnect(Native Method) > at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) > at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) > at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) > at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) > at java.net.Socket.connect(Socket.java:529) > at sun.net.NetworkClient.doConnect(NetworkClient.java:158) > at sun.net.www.http.HttpClient.openServer(HttpClient.java:411) > at sun.net.www.http.HttpClient.openServer(HttpClient.java:525) > at sun.net.www.http.HttpClient.<init>(HttpClient.java:208) > at sun.net.www.http.HttpClient.New(HttpClient.java:291) > at sun.net.www.http.HttpClient.New(HttpClient.java:310) > at > sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987) > at > sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923) > at > sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841) > at > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1031) > at > org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:174) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1302) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1258) > at > org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:201) > at > org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47) > at > org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1315) > ... 15 more -- This message was sent by Atlassian JIRA (v6.3.4#6332)