[jbossts-issues] [JBoss JIRA] (JBTM-1275) Unexpected Fault type returned when participant cannot complete

Paul Robinson (JIRA) jira-events at lists.jboss.org
Fri Sep 28 05:14:03 EDT 2012


    [ https://issues.jboss.org/browse/JBTM-1275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12722492#comment-12722492 ] 

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" 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" 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-wssecurity-utility-1.0.xsd"><wsam:Addressing xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"><wsp:Policy/></wsam:Addressing></wsp:Policy>
</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


More information about the jbossts-issues mailing list