[ 
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)

Reply via email to