[ 
https://issues.apache.org/jira/browse/CXF-7131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Diego Pietralunga updated CXF-7131:
-----------------------------------
    Description: 
Hi.
I'm getting a IndexOutOfBoundException when receiving a SwA message 
(multipart/related).
I produce the stubs with Wsdl2Java  with params 
"-verbose   -autoNameResolution   -client" on my wsdl;  operation looks ok with 
this output:
****************
Loading FrontEnd jaxws ...
Loading DataBinding jaxb ...
wsdl2java -verbose -autoNameResolution -client -d cxfIssuesJira3 
./apache-cxf-3.1.8/ricercaImprese1.2-icar.wsdl
wsdl2java - Apache CXF 3.1.8

Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
checkForWrapped
INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseCodiceFiscale 
cannot be unwrapped, input and output messages (if present) must contain only a 
single part
Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
checkForWrapped
INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseNRea cannot be 
unwrapped, input and output messages (if present) must contain only a single 
part
Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
checkForWrapped
INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseDenominazione 
cannot be unwrapped, input and output messages (if present) must contain only a 
single part
************

This generates the Port/Service/Holders architecture. I populate data for the 
request and then I launch the generated client program untouched, except for:
- Using BindingProvider.ENDPOINT_ADDRESS_PROPERTY to set the target 
- adding WSS4JOutInterceptor to provide USERNAME_TOKEN & password callback 
method to the endpoint (getting a proxy)

Upon invocation, I get:

/***********/
WARNING: Interceptor for 
{http://it.ictechnology.pcad.ws}ricercaImpreseService#{http://it.ictechnology.pcad.ws}ricercaImpreseCodiceFiscale
 has thrown exception, unwinding now
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
        at java.util.ArrayList.rangeCheck(ArrayList.java:635)
        at java.util.ArrayList.get(ArrayList.java:411)
        at 
org.apache.cxf.message.MessageContentsList.get(MessageContentsList.java:80)
        at 
org.apache.cxf.jaxws.interceptors.HolderInInterceptor.handleMessage(HolderInInterceptor.java:69)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1670)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348)
        at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
        at com.sun.proxy.$Proxy33.ricercaImpreseCodiceFiscale(Unknown Source)
        at 
ws.pcad.ictechnology.it.RicercaImprese_RicercaImprese_Client.main(RicercaImprese_RicercaImprese_Client.java:101)

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Index: 3, 
Size: 3
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:161)
        at com.sun.proxy.$Proxy33.ricercaImpreseCodiceFiscale(Unknown Source)
        at 
ws.pcad.ictechnology.it.RicercaImprese_RicercaImprese_Client.main(RicercaImprese_RicercaImprese_Client.java:101)
Caused by: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
        at java.util.ArrayList.rangeCheck(ArrayList.java:635)
        at java.util.ArrayList.get(ArrayList.java:411)
        at 
org.apache.cxf.message.MessageContentsList.get(MessageContentsList.java:80)
        at 
org.apache.cxf.jaxws.interceptors.HolderInInterceptor.handleMessage(HolderInInterceptor.java:69)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1670)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348)
        at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
        ... 2 more

/***********/


Looks to me that the incoming Swa/Multipart message is not parsed correctly, or 
the indeces of the message parts are not set correctly upon extraction.

The incoming multipart/related message looks correct to me and I'm trying to 
attach a sample to this ticket


  was:
Hi.
I'm getting a IndexOutOfBoundException when receiving a SwA message 
(multipart/related).
I produce the stubs with Wsdl2Java  with params 
"-verbose   -autoNameResolution   -client" on my wsdl;  operation looks ok with 
this output:
****************
Loading FrontEnd jaxws ...
Loading DataBinding jaxb ...
wsdl2java -verbose -autoNameResolution -client -d cxfIssuesJira3 
./apache-cxf-3.1.8/ricercaImprese1.2-icar.wsdl
wsdl2java - Apache CXF 3.1.8

Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
checkForWrapped
INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseCodiceFiscale 
cannot be unwrapped, input and output messages (if present) must contain only a 
single part
Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
checkForWrapped
INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseNRea cannot be 
unwrapped, input and output messages (if present) must contain only a single 
part
Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
checkForWrapped
INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseDenominazione 
cannot be unwrapped, input and output messages (if present) must contain only a 
single part
************

This generates the Port/Service/Holders architecture. I populate data for the 
request and then I launch the generated client program untouched, except for:
- Using BindingProvider.ENDPOINT_ADDRESS_PROPERTY to set the target 
-adding WSS4JOutInterceptor to provide USERNAME_TOKEN & password callback 
method to the endpoint (getting a proxy)

Upon invocation, I get:

/***********/
WARNING: Interceptor for 
{http://it.ictechnology.pcad.ws}ricercaImpreseService#{http://it.ictechnology.pcad.ws}ricercaImpreseCodiceFiscale
 has thrown exception, unwinding now
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
        at java.util.ArrayList.rangeCheck(ArrayList.java:635)
        at java.util.ArrayList.get(ArrayList.java:411)
        at 
org.apache.cxf.message.MessageContentsList.get(MessageContentsList.java:80)
        at 
org.apache.cxf.jaxws.interceptors.HolderInInterceptor.handleMessage(HolderInInterceptor.java:69)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1670)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348)
        at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
        at com.sun.proxy.$Proxy33.ricercaImpreseCodiceFiscale(Unknown Source)
        at 
ws.pcad.ictechnology.it.RicercaImprese_RicercaImprese_Client.main(RicercaImprese_RicercaImprese_Client.java:101)

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Index: 3, 
Size: 3
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:161)
        at com.sun.proxy.$Proxy33.ricercaImpreseCodiceFiscale(Unknown Source)
        at 
ws.pcad.ictechnology.it.RicercaImprese_RicercaImprese_Client.main(RicercaImprese_RicercaImprese_Client.java:101)
Caused by: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
        at java.util.ArrayList.rangeCheck(ArrayList.java:635)
        at java.util.ArrayList.get(ArrayList.java:411)
        at 
org.apache.cxf.message.MessageContentsList.get(MessageContentsList.java:80)
        at 
org.apache.cxf.jaxws.interceptors.HolderInInterceptor.handleMessage(HolderInInterceptor.java:69)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1670)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348)
        at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
        ... 2 more

/***********/


Looks to me that the incoming Swa/Multipart message is not parsed correctly, or 
the indeces of the message parts are not set correctly upon extraction.

The incoming multipart/related message looks correct to me and I'm trying to 
attach a sample to this ticket



> JAX-WS Client: HolderInInterceptor misbehaving on multipart/repalted SwA 
> message: IndexOutOfBoundException
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-7131
>                 URL: https://issues.apache.org/jira/browse/CXF-7131
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 3.1.8
>         Environment: Oracle JDK 1.7.0_79 64-Bit, Linux (OpenSuse 42.1)
>            Reporter: Diego Pietralunga
>
> Hi.
> I'm getting a IndexOutOfBoundException when receiving a SwA message 
> (multipart/related).
> I produce the stubs with Wsdl2Java  with params 
> "-verbose   -autoNameResolution   -client" on my wsdl;  operation looks ok 
> with this output:
> ****************
> Loading FrontEnd jaxws ...
> Loading DataBinding jaxb ...
> wsdl2java -verbose -autoNameResolution -client -d cxfIssuesJira3 
> ./apache-cxf-3.1.8/ricercaImprese1.2-icar.wsdl
> wsdl2java - Apache CXF 3.1.8
> Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
> checkForWrapped
> INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseCodiceFiscale 
> cannot be unwrapped, input and output messages (if present) must contain only 
> a single part
> Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
> checkForWrapped
> INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseNRea cannot be 
> unwrapped, input and output messages (if present) must contain only a single 
> part
> Nov 14, 2016 12:16:40 PM org.apache.cxf.wsdl11.WSDLServiceBuilder 
> checkForWrapped
> INFO: Operation {http://it.ictechnology.pcad.ws}ricercaImpreseDenominazione 
> cannot be unwrapped, input and output messages (if present) must contain only 
> a single part
> ************
> This generates the Port/Service/Holders architecture. I populate data for the 
> request and then I launch the generated client program untouched, except for:
> - Using BindingProvider.ENDPOINT_ADDRESS_PROPERTY to set the target 
> - adding WSS4JOutInterceptor to provide USERNAME_TOKEN & password callback 
> method to the endpoint (getting a proxy)
> Upon invocation, I get:
> /***********/
> WARNING: Interceptor for 
> {http://it.ictechnology.pcad.ws}ricercaImpreseService#{http://it.ictechnology.pcad.ws}ricercaImpreseCodiceFiscale
>  has thrown exception, unwinding now
> java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
>       at java.util.ArrayList.rangeCheck(ArrayList.java:635)
>       at java.util.ArrayList.get(ArrayList.java:411)
>       at 
> org.apache.cxf.message.MessageContentsList.get(MessageContentsList.java:80)
>       at 
> org.apache.cxf.jaxws.interceptors.HolderInInterceptor.handleMessage(HolderInInterceptor.java:69)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>       at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1670)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348)
>       at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>       at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
>       at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>       at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
>       at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>       at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
>       at com.sun.proxy.$Proxy33.ricercaImpreseCodiceFiscale(Unknown Source)
>       at 
> ws.pcad.ictechnology.it.RicercaImprese_RicercaImprese_Client.main(RicercaImprese_RicercaImprese_Client.java:101)
> Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Index: 3, 
> Size: 3
>       at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:161)
>       at com.sun.proxy.$Proxy33.ricercaImpreseCodiceFiscale(Unknown Source)
>       at 
> ws.pcad.ictechnology.it.RicercaImprese_RicercaImprese_Client.main(RicercaImprese_RicercaImprese_Client.java:101)
> Caused by: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
>       at java.util.ArrayList.rangeCheck(ArrayList.java:635)
>       at java.util.ArrayList.get(ArrayList.java:411)
>       at 
> org.apache.cxf.message.MessageContentsList.get(MessageContentsList.java:80)
>       at 
> org.apache.cxf.jaxws.interceptors.HolderInInterceptor.handleMessage(HolderInInterceptor.java:69)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>       at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1670)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348)
>       at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>       at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
>       at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>       at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:324)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:277)
>       at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>       at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
>       ... 2 more
> /***********/
> Looks to me that the incoming Swa/Multipart message is not parsed correctly, 
> or the indeces of the message parts are not set correctly upon extraction.
> The incoming multipart/related message looks correct to me and I'm trying to 
> attach a sample to this ticket



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to