[
https://issues.jboss.org/browse/JBTM-1275?page=com.atlassian.jira.plugin....
]
Paul Robinson commented on JBTM-1275:
-------------------------------------
Here's the wsdl that shows the expected schema type for the fault. Notice the
'FaultOperation' expects a message of 'tns:Fault', where tns is
'http://schemas.arjuna.com/ws/2005/10/wsarjtx'.
{code}
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions
name="TerminationParticipantService"
targetNamespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsp="http://www.w3.org/ns/ws-policy"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xs:schema
targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
version="1.0"
xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Body" type="tns:Body"/>
<xs:element name="Envelope" type="tns:Envelope"/>
<xs:element name="Fault" type="tns:Fault"/>
<xs:element name="Header" type="tns:Header"/>
<xs:complexType name="Fault">
<xs:sequence>
<xs:element name="faultcode" type="xs:QName"/>
<xs:element name="faultstring" type="xs:string"/>
<xs:element minOccurs="0" name="faultactor"
type="xs:anyURI"/>
<xs:element minOccurs="0" name="detail"
type="tns:detail"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="detail">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0"
namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##other"
processContents="skip"/>
</xs:complexType>
<xs:complexType name="Header">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0"
namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##other"
processContents="skip"/>
</xs:complexType>
<xs:complexType name="Envelope">
<xs:sequence>
<xs:element form="qualified" minOccurs="0"
name="Header" type="tns:Header"/>
<xs:element form="qualified" name="Body"
type="tns:Body"/>
<xs:any maxOccurs="unbounded" minOccurs="0"
namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##other"
processContents="skip"/>
</xs:complexType>
<xs:complexType name="Body">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0"
namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##other"
processContents="skip"/>
</xs:complexType>
</xs:schema>
<xs:schema elementFormDefault="qualified"
targetNamespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
version="1.0"
xmlns:tns="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Cancel" type="tns:NotificationType"/>
<xs:element name="Cancelled" type="tns:NotificationType"/>
<xs:element name="Close" type="tns:NotificationType"/>
<xs:element name="Closed" type="tns:NotificationType"/>
<xs:element name="Complete" type="tns:NotificationType"/>
<xs:element name="Completed" type="tns:NotificationType"/>
<xs:element name="Fault" type="tns:ExceptionType"/>
<xs:element name="Faulted" type="tns:NotificationType"/>
<xs:complexType name="NotificationType">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0"
namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##other"
processContents="skip"/>
</xs:complexType>
<xs:complexType name="ExceptionType">
<xs:sequence>
<xs:element name="soapFaultType" type="xs:string"/>
<xs:element name="subCode" type="xs:QName"/>
<xs:element name="reason" type="xs:string"/>
<xs:any maxOccurs="unbounded" minOccurs="0"
namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##other"
processContents="skip"/>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="CancelledOperation">
<wsdl:part element="tns:Cancelled" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="FaultOperation">
<wsdl:part element="tns:Fault" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="FaultedOperation">
<wsdl:part element="tns:Faulted" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="CompletedOperation">
<wsdl:part element="tns:Completed" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="ClosedOperation">
<wsdl:part element="tns:Closed" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="TerminationParticipantPortType">
<wsdl:operation name="FaultOperation">
<wsdl:input message="tns:FaultOperation"
name="FaultOperation">
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="ClosedOperation">
<wsdl:input message="tns:ClosedOperation"
name="ClosedOperation">
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="FaultedOperation">
<wsdl:input message="tns:FaultedOperation"
name="FaultedOperation">
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="CompletedOperation">
<wsdl:input message="tns:CompletedOperation"
name="CompletedOperation">
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="CancelledOperation">
<wsdl:input message="tns:CancelledOperation"
name="CancelledOperation">
</wsdl:input>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TerminationParticipantServiceSoapBinding"
type="tns:TerminationParticipantPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsaw:UsingAddressing wsdl:required="true"/>
<wsp:PolicyReference
URI="#TerminationParticipantServiceSoapBinding_WSAM_Addressing_Policy"/>
<wsdl:operation name="FaultOperation">
<soap:operation
soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Fault"
style="document"/>
<wsdl:input name="FaultOperation">
<soap:body use="literal"/>
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="ClosedOperation">
<soap:operation
soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Closed"
style="document"/>
<wsdl:input name="ClosedOperation">
<soap:body use="literal"/>
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="FaultedOperation">
<soap:operation
soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Faulted"
style="document"/>
<wsdl:input name="FaultedOperation">
<soap:body use="literal"/>
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="CompletedOperation">
<soap:operation
soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Completed&q...
style="document"/>
<wsdl:input name="CompletedOperation">
<soap:body use="literal"/>
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="CancelledOperation">
<soap:operation
soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancelled&q...
style="document"/>
<wsdl:input name="CancelledOperation">
<soap:body use="literal"/>
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TerminationParticipantService">
<wsdl:port binding="tns:TerminationParticipantServiceSoapBinding"
name="TerminationParticipantPortType">
<soap:address
location="http://localhost:8081/ws-t11-client/TerminationParticipantService"/>
</wsdl:port>
</wsdl:service>
<wsp:Policy
wsu:Id="TerminationParticipantServiceSoapBinding_WSAM_Addressing_Policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">&...
</wsdl:definitions>
{code}
Unexpected Fault type returned when participant cannot complete
---------------------------------------------------------------
Key: JBTM-1275
URL:
https://issues.jboss.org/browse/JBTM-1275
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: XTS
Reporter: Paul Robinson
Assignee: Paul Robinson
Priority: Critical
Fix For: 4.16.6, 4.17.1, 5.0.0.M2
Scenario:
* Client begins a BA
* Client invokes a service that enlists a participant
* Participant notifies the coordinator that it cannot complete
* Client asks the coordinator to close the BA
* The coordinator returns a Fault as the BA cannot be closed.
* The fault message appears to be a regular SOAP fault rather than a
'{http://schemas.arjuna.com/ws/2005/10/wsarjtx}Fault' which causes the message to
be dropped and the client hangs waiting for the response.
This is the stacktrace for the dropped message:
{code}
18:34:17,669 WARNING [org.apache.cxf.phase.PhaseInterceptorChain]
(http-/127.0.0.1:8080-3) Interceptor for
{http://schemas.arjuna.com/ws/2005/10/wsarjtx}TerminationParticipantSer
vice#{http://schemas.arjuna.com/ws/2005/10/wsarjtx}FaultOperation has thrown exception,
unwinding now: org.apache.cxf.interceptor.Fault: Unexpected element
{http://schemas.xmlsoa
p.org/soap/envelope/}Fault found. Expected
{http://schemas.arjuna.com/ws/2005/10/wsarjtx}Fault.
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.validatePart(DocLiteralInInterceptor.java:259)
[cxf-rt-core-2.4.9.jar:2.4.9]
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:201)
[cxf-rt-core-2.4.9.jar:2.4.9]
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
[cxf-api-2.4.9.jar:2.4.9]
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
[cxf-rt-core-2.4.9.jar:2.4.9]
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:207)
[cxf-rt-transports-http-2.4.9.jar:2.4.9]
at
org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:91)
at
org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:169)
at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:87)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:185)
[cxf-rt-transports-http-2.4.9.jar:2.4.9]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:108)
[cxf-rt-transports-http-2.4.9.jar:2.4.9]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
[jboss-servlet-api_3.0_spec-1.0.1.Final.jar:1.0.1.Final]
at org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:135)
at org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
[jboss-servlet-api_3.0_spec-1.0.1.Final.jar:1.0.1.Final]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
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:372)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:679)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931)
at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_35]
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira