Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: JiBX/WS 0.9
-
Fix Version/s: JiBX/WS 0.9.1
-
Component/s: JiBX/WS
-
Labels:None
-
Number of attachments :
Description
After an unhandled exception occurs in an OutputCompletionListener, the following request results in:
WARN [http-8080-1] 2009-10-18 13:39:22,636 server.SoapFaultHandler - Error processing request. Generating SOAP Fault response.
java.lang.IllegalStateException: Cannot receive message when current message context is outbound
at org.jibx.ws.soap.SoapProcessor.receiveMessage(SoapProcessor.java:224)
at org.jibx.ws.server.Service.processRequest(Service.java:233)
at org.jibx.ws.http.servlet.WsServletDelegate.doPost(WsServletDelegate.java:147)
at org.jibx.ws.http.servlet.WsSpringServlet.doService(WsSpringServlet.java:81)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
ERROR [http-8080-1] 2009-10-18 13:39:22,639 server.SoapFaultHandler - Error while processing prior error
java.lang.IllegalStateException: No message context available for sending fault message
at org.jibx.ws.soap.SoapProcessor.sendFaultMessage(SoapProcessor.java:162)
at org.jibx.ws.soap.server.SoapFaultHandler.handleException(SoapFaultHandler.java:95)
at org.jibx.ws.server.Service.processRequest(Service.java:259)
at org.jibx.ws.http.servlet.WsServletDelegate.doPost(WsServletDelegate.java:147)
at org.jibx.ws.http.servlet.WsSpringServlet.doService(WsSpringServlet.java:81)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Bug introduced in fix for JIRA
JIBX-326. Have now added try-finally block around call to OutputCompletionListener to ensure context is reset.