StringIndexOutOfBoundsException when processing WSDL request for ITI18 message.

56 views
Skip to first unread message

michael...@emc.com

unread,
May 17, 2012, 4:05:26 PM5/17/12
to ipf-...@googlegroups.com

When attempting to obtain WSDL for the Iti18Service, a StringIndexOutOfBounds exception is generated.

 

This happens when org.openehealth.ipf.commons.ihe.ws.cxf.payload.InPayloadExtractorInterceptor.handleMessage method calls the extractSoapBody method with an empty string payload.  (zero length String)

 

        if (payloadType == PayloadType.SOAP_BODY) {

            payload = SoapUtils.extractSoapBody(payload);

        }

 

Even though the exception below is recorded in the log, the processing proceeds and the WSDL for the service is returned.

 

Do we need to log an error in this case? Is it possible to either have extractSoapBody return immediately in the empty string case or check for that case prior to invoking it?

 

The CXF trace of this URL is pasted  below including the log of the exception generated from an HTTP request to:  http://localhost/registry/xds-iti18?wsdl

 

This was observed using IPF 2.3.1

 

Thanks,

 

Michael Ottati

 

 

 

 

12:04:11.930 [http-bio-80-exec-8] INFO  org.apache.cxf.interceptor.LoggingInInterceptor - Inbound Message

----------------------------

ID: 1

Address: http://localhost/registry/xds-iti18?wsdl

Http-Method: GET

Content-Type:

Headers: {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8], accept-encoding=[gzip, deflate], accept-language=[en-us,en;q=0.5], connection=[keep-alive], Content-Type=[null], host=[localhost], referer=[http://localhost/registry/], user-agent=[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0]}

--------------------------------------

12:04:20.920 [http-bio-80-exec-8] ERROR org.openehealth.ipf.commons.ihe.ws.utils.SoapUtils - Invalid contents, probably not a SOAP Envelope in the parameter

java.lang.StringIndexOutOfBoundsException: String index out of range: -2

                at java.lang.String.charAt(String.java:686) ~[na:1.6.0_30]

                at org.openehealth.ipf.commons.ihe.ws.utils.SoapUtils.extractSoapBody(SoapUtils.java:144) ~[ipf-commons-ihe-ws-2.3.1.jar:na]

                at org.openehealth.ipf.commons.ihe.ws.cxf.payload.InPayloadExtractorInterceptor.handleMessage(InPayloadExtractorInterceptor.java:96) [ipf-commons-ihe-ws-2.3.1.jar:na]

                at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [cxf-api-2.4.2.jar:2.4.2]

                at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-rt-core-2.4.2.jar:2.4.2]

                at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206) [cxf-rt-transports-http-2.4.2.jar:2.4.2]

                at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:218) [cxf-rt-transports-http-2.4.2.jar:2.4.2]

                at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:200) [cxf-rt-transports-http-2.4.2.jar:2.4.2]

                at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:114) [cxf-rt-transports-http-2.4.2.jar:2.4.2]

                at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184) [cxf-rt-transports-http-2.4.2.jar:2.4.2]

                at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:112) [cxf-rt-transports-http-2.4.2.jar:2.4.2]

                at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) [servlet-api.jar:na]

                at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163) [cxf-rt-transports-http-2.4.2.jar:2.4.2]

                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) [catalina.jar:7.0.21]

                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.21]

                at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) [catalina.jar:7.0.21]

                at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) [catalina.jar:7.0.21]

                at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [catalina.jar:7.0.21]

                at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) [catalina.jar:7.0.21]

                at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) [catalina.jar:7.0.21]

                at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) [catalina.jar:7.0.21]

                at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.21]

                at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) [catalina.jar:7.0.21]

                at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269) [tomcat-coyote.jar:7.0.21]

                at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) [tomcat-coyote.jar:7.0.21]

                at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) [tomcat-coyote.jar:7.0.21]

                at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_30]

                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_30]

                at java.lang.Thread.run(Thread.java:662) [na:1.6.0_30]

Dmytro Rud

unread,
May 17, 2012, 4:38:20 PM5/17/12
to ipf-...@googlegroups.com
Hello Michael,

this bug has been fixed shortly after IPF 2.3.1 release --- see https://github.com/krasserm/ipf/commit/28c6d27e709833a095ee2c2ef9548f00e79d5afa.  IPF 2.4-m1 and 2.4-m2 contain the fix out-of-the-box.

Best Regards,
Dmytro
-- 
        rnd.

michael...@emc.com

unread,
May 17, 2012, 4:45:19 PM5/17/12
to ipf-...@googlegroups.com

Dmytro:

 

As always, thanks for the quick response.

 

Can’t go to 2.4 just quite yet. We stagger taking new dependencies until they are at final release.

 

I will keep my eye out for 2.4.0

 

Thanks,

Michael

Reply all
Reply to author
Forward
0 new messages