[ 
https://issues.apache.org/jira/browse/CXF-5434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13982820#comment-13982820
 ] 

Andrey Poltavtsev commented on CXF-5434:
----------------------------------------

Hello All,

I have verified this issue (with document binding style) in cxf-2.7.11 . I see 
that oneway request is successfully delivered to service side using JMS 
transport and incoming message is delivered in message handler correctly (there 
is no "IllegalStateException" anymore). So, original problem is solved, but I 
see that provider intiates sending of response to "none" destination and this 
response is processed by set of outgoing interceptors (we can also see outgoing 
message in logs), but sending of response is not performed due to update for 
org.apache.cxf.ws.addressing.impl.InternalContextUtils:

сxf 2.7.8:

        public Conduit getBackChannel(Message inMessage,
                                      Message partialResponse,
                                      EndpointReferenceType address)
            throws IOException {
            Bus bus = inMessage.getExchange().get(Bus.class);
            ....

cxf 2.7.11:

        public Conduit getBackChannel(Message inMessage,
                                      Message partialResponse,
                                      EndpointReferenceType address)
            throws IOException {
            if (ContextUtils.isNoneAddress(reference)) {
                return null;
            }
            Bus bus = inMessage.getExchange().get(Bus.class);
            ...


> IllegalStateException calling Oneway method using JMS and WSA
> -------------------------------------------------------------
>
>                 Key: CXF-5434
>                 URL: https://issues.apache.org/jira/browse/CXF-5434
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.7.5, 2.7.7
>            Reporter: Wouter Dhaeze
>            Assignee: Daniel Kulp
>             Fix For: 2.6.12, 2.7.9
>
>         Attachments: CXFTestServer.zip, incoming_soap_message_01.txt, 
> server_logs_01.log
>
>
> When a client is calling a oneway method, the endpoint method is never called 
> due to an IllegalStateException, when the endpoint has WS-Addressing policy 
> enabled and the endpoint is called through JMS (activeMQ)
> {code}
> java.lang.IllegalStateException: IllegalStateException invoking 
> http://www.w3.org/2005/08/addressing/none: Already connected
>       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>       at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
>       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown 
> Source)
>       at java.lang.reflect.Constructor.newInstance(Unknown Source)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1338)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1327)
>       at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>       at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
>       at 
> org.apache.cxf.interceptor.OneWayProcessorInterceptor.handleMessage(OneWayProcessorInterceptor.java:126)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>       at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>       at 
> org.apache.cxf.transport.jms.JMSDestination.onMessage(JMSDestination.java:235)
>       at 
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:536)
>       at 
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:496)
>       at 
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
>       at 
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
>       at 
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)
>       at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1059)
>       at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1051)
>       at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:948)
>       at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.IllegalStateException: Already connected
>       at java.net.HttpURLConnection.setFixedLengthStreamingMode(Unknown 
> Source)
>       at 
> org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setFixedLengthStreamingMode(URLConnectionHTTPConduit.java:272)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.thresholdNotReached(HTTPConduit.java:1085)
>       at 
> org.apache.cxf.io.AbstractThresholdOutputStream.close(AbstractThresholdOutputStream.java:99)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1301)
>       ... 15 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to