You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Francisco Vila (JIRA)" <ji...@apache.org> on 2011/05/23 12:02:47 UTC

[jira] [Created] (AXIS2-5053) SOAP Fault Detail element cannot have more than one child

SOAP Fault Detail element cannot have more than one child
---------------------------------------------------------

                 Key: AXIS2-5053
                 URL: https://issues.apache.org/jira/browse/AXIS2-5053
             Project: Axis2
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.5.4
            Reporter: Francisco Vila


The source code of axis2 1.5.x has a problem in AxisFault.java (located in org.apache.axis2.AxisFault.java): the Detail element of the SOAP Fault can only have one child. It can cause a problem when, for example, a MessageNumberRollover fault is generated in a Web Service, because as stated in WS Reliable Messaging profile, the Detail element must include two childs, a "wsrm:Identifier" and a "wsrn:MaxMsgNumber" element.

The code where it is considered, marked as "TODO" issue, is the following:

private void initializeValues(SOAPFaultCode soapFaultCode,
                                       SOAPFaultReason soapFaultReason,
                                       SOAPFaultNode soapFaultNode,
                                       SOAPFaultRole soapFaultRole,
                                       SOAPFaultDetail soapFaultDetail) {
             this.soapFaultCode = soapFaultCode;
             this.soapFaultReason = soapFaultReason;
             this.soapFaultNode = soapFaultNode;
             this.soapFaultRole = soapFaultRole;
             this.soapFaultDetail = soapFaultDetail;
     
             if (soapFaultDetail != null) {
     //            OMElement exceptionElement = soapFaultDetail.getFirstChildWithName(
     //                    new QName(SOAPConstants.SOAP_FAULT_DETAIL_EXCEPTION_ENTRY));
     //            if (exceptionElement != null && exceptionElement.getText() != null) {
     //                cause = new Exception(exceptionElement.getText());
     //            }
     
                 // TODO - Wha? Details can have multiple elements, why take the first child here?
                 // TODO - Review the API for details
                 // setting the first child element of the fault detail as this.detail
                 this.detail = soapFaultDetail.getFirstElement();
     
             }


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] [Commented] (AXIS2-5053) SOAP Fault Detail element cannot have more than one child

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-5053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13040630#comment-13040630 ] 

Hudson commented on AXIS2-5053:
-------------------------------

Integrated in Axis2 #792 (See [https://builds.apache.org/hudson/job/Axis2/792/])
    AXIS2-5053: Store all SOAP fault detail elements (not just the first one) in AxisFault.

veithen : 
Files : 
* /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/AxisFault.java


> SOAP Fault Detail element cannot have more than one child
> ---------------------------------------------------------
>
>                 Key: AXIS2-5053
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5053
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.5.4
>            Reporter: Francisco Vila
>            Assignee: Andreas Veithen
>              Labels: MaxMsgNumber, detail, soapfault
>             Fix For: 1.7.0
>
>
> The source code of axis2 1.5.x has a problem in AxisFault.java (located in org.apache.axis2.AxisFault.java): the Detail element of the SOAP Fault can only have one child. It can cause a problem when, for example, a MessageNumberRollover fault is generated in a Web Service, because as stated in WS Reliable Messaging profile, the Detail element must include two childs, a "wsrm:Identifier" and a "wsrn:MaxMsgNumber" element.
> The code where it is considered, marked as "TODO" issue, is the following:
> private void initializeValues(SOAPFaultCode soapFaultCode,
>                                        SOAPFaultReason soapFaultReason,
>                                        SOAPFaultNode soapFaultNode,
>                                        SOAPFaultRole soapFaultRole,
>                                        SOAPFaultDetail soapFaultDetail) {
>              this.soapFaultCode = soapFaultCode;
>              this.soapFaultReason = soapFaultReason;
>              this.soapFaultNode = soapFaultNode;
>              this.soapFaultRole = soapFaultRole;
>              this.soapFaultDetail = soapFaultDetail;
>      
>              if (soapFaultDetail != null) {
>      //            OMElement exceptionElement = soapFaultDetail.getFirstChildWithName(
>      //                    new QName(SOAPConstants.SOAP_FAULT_DETAIL_EXCEPTION_ENTRY));
>      //            if (exceptionElement != null && exceptionElement.getText() != null) {
>      //                cause = new Exception(exceptionElement.getText());
>      //            }
>      
>                  // TODO - Wha? Details can have multiple elements, why take the first child here?
>                  // TODO - Review the API for details
>                  // setting the first child element of the fault detail as this.detail
>                  this.detail = soapFaultDetail.getFirstElement();
>      
>              }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] [Assigned] (AXIS2-5053) SOAP Fault Detail element cannot have more than one child

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-5053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen reassigned AXIS2-5053:
--------------------------------------

    Assignee: Andreas Veithen

> SOAP Fault Detail element cannot have more than one child
> ---------------------------------------------------------
>
>                 Key: AXIS2-5053
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5053
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.5.4
>            Reporter: Francisco Vila
>            Assignee: Andreas Veithen
>              Labels: MaxMsgNumber, detail, soapfault
>
> The source code of axis2 1.5.x has a problem in AxisFault.java (located in org.apache.axis2.AxisFault.java): the Detail element of the SOAP Fault can only have one child. It can cause a problem when, for example, a MessageNumberRollover fault is generated in a Web Service, because as stated in WS Reliable Messaging profile, the Detail element must include two childs, a "wsrm:Identifier" and a "wsrn:MaxMsgNumber" element.
> The code where it is considered, marked as "TODO" issue, is the following:
> private void initializeValues(SOAPFaultCode soapFaultCode,
>                                        SOAPFaultReason soapFaultReason,
>                                        SOAPFaultNode soapFaultNode,
>                                        SOAPFaultRole soapFaultRole,
>                                        SOAPFaultDetail soapFaultDetail) {
>              this.soapFaultCode = soapFaultCode;
>              this.soapFaultReason = soapFaultReason;
>              this.soapFaultNode = soapFaultNode;
>              this.soapFaultRole = soapFaultRole;
>              this.soapFaultDetail = soapFaultDetail;
>      
>              if (soapFaultDetail != null) {
>      //            OMElement exceptionElement = soapFaultDetail.getFirstChildWithName(
>      //                    new QName(SOAPConstants.SOAP_FAULT_DETAIL_EXCEPTION_ENTRY));
>      //            if (exceptionElement != null && exceptionElement.getText() != null) {
>      //                cause = new Exception(exceptionElement.getText());
>      //            }
>      
>                  // TODO - Wha? Details can have multiple elements, why take the first child here?
>                  // TODO - Review the API for details
>                  // setting the first child element of the fault detail as this.detail
>                  this.detail = soapFaultDetail.getFirstElement();
>      
>              }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] [Updated] (AXIS2-5053) SOAP Fault Detail element cannot have more than one child

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-5053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen updated AXIS2-5053:
-----------------------------------

    Fix Version/s: 1.7.0

> SOAP Fault Detail element cannot have more than one child
> ---------------------------------------------------------
>
>                 Key: AXIS2-5053
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5053
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.5.4
>            Reporter: Francisco Vila
>            Assignee: Andreas Veithen
>              Labels: MaxMsgNumber, detail, soapfault
>             Fix For: 1.7.0
>
>
> The source code of axis2 1.5.x has a problem in AxisFault.java (located in org.apache.axis2.AxisFault.java): the Detail element of the SOAP Fault can only have one child. It can cause a problem when, for example, a MessageNumberRollover fault is generated in a Web Service, because as stated in WS Reliable Messaging profile, the Detail element must include two childs, a "wsrm:Identifier" and a "wsrn:MaxMsgNumber" element.
> The code where it is considered, marked as "TODO" issue, is the following:
> private void initializeValues(SOAPFaultCode soapFaultCode,
>                                        SOAPFaultReason soapFaultReason,
>                                        SOAPFaultNode soapFaultNode,
>                                        SOAPFaultRole soapFaultRole,
>                                        SOAPFaultDetail soapFaultDetail) {
>              this.soapFaultCode = soapFaultCode;
>              this.soapFaultReason = soapFaultReason;
>              this.soapFaultNode = soapFaultNode;
>              this.soapFaultRole = soapFaultRole;
>              this.soapFaultDetail = soapFaultDetail;
>      
>              if (soapFaultDetail != null) {
>      //            OMElement exceptionElement = soapFaultDetail.getFirstChildWithName(
>      //                    new QName(SOAPConstants.SOAP_FAULT_DETAIL_EXCEPTION_ENTRY));
>      //            if (exceptionElement != null && exceptionElement.getText() != null) {
>      //                cause = new Exception(exceptionElement.getText());
>      //            }
>      
>                  // TODO - Wha? Details can have multiple elements, why take the first child here?
>                  // TODO - Review the API for details
>                  // setting the first child element of the fault detail as this.detail
>                  this.detail = soapFaultDetail.getFirstElement();
>      
>              }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[jira] [Resolved] (AXIS2-5053) SOAP Fault Detail element cannot have more than one child

Posted by "Andreas Veithen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-5053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen resolved AXIS2-5053.
------------------------------------

    Resolution: Fixed

With the change introduced in r1128596, it is now possible to get the complete list of detail elements.

> SOAP Fault Detail element cannot have more than one child
> ---------------------------------------------------------
>
>                 Key: AXIS2-5053
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5053
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.5.4
>            Reporter: Francisco Vila
>            Assignee: Andreas Veithen
>              Labels: MaxMsgNumber, detail, soapfault
>             Fix For: 1.7.0
>
>
> The source code of axis2 1.5.x has a problem in AxisFault.java (located in org.apache.axis2.AxisFault.java): the Detail element of the SOAP Fault can only have one child. It can cause a problem when, for example, a MessageNumberRollover fault is generated in a Web Service, because as stated in WS Reliable Messaging profile, the Detail element must include two childs, a "wsrm:Identifier" and a "wsrn:MaxMsgNumber" element.
> The code where it is considered, marked as "TODO" issue, is the following:
> private void initializeValues(SOAPFaultCode soapFaultCode,
>                                        SOAPFaultReason soapFaultReason,
>                                        SOAPFaultNode soapFaultNode,
>                                        SOAPFaultRole soapFaultRole,
>                                        SOAPFaultDetail soapFaultDetail) {
>              this.soapFaultCode = soapFaultCode;
>              this.soapFaultReason = soapFaultReason;
>              this.soapFaultNode = soapFaultNode;
>              this.soapFaultRole = soapFaultRole;
>              this.soapFaultDetail = soapFaultDetail;
>      
>              if (soapFaultDetail != null) {
>      //            OMElement exceptionElement = soapFaultDetail.getFirstChildWithName(
>      //                    new QName(SOAPConstants.SOAP_FAULT_DETAIL_EXCEPTION_ENTRY));
>      //            if (exceptionElement != null && exceptionElement.getText() != null) {
>      //                cause = new Exception(exceptionElement.getText());
>      //            }
>      
>                  // TODO - Wha? Details can have multiple elements, why take the first child here?
>                  // TODO - Review the API for details
>                  // setting the first child element of the fault detail as this.detail
>                  this.detail = soapFaultDetail.getFirstElement();
>      
>              }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org