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 bu...@apache.org on 2002/11/07 12:35:11 UTC

DO NOT REPLY [Bug 14345] New: - mustunderstand values patch for soap 1.2

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14345>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14345

mustunderstand values patch for soap 1.2

           Summary: mustunderstand values patch for soap 1.2
           Product: Axis
           Version: future (enh)
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Enhancement
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: andras.avar@nokia.com


Hi,

Since the mustunderstand attribute values are changed in soap 1.2 here is a
patch for it. Plz let me know if this helps.

Br,
Andras



And of course the diff:
--- 20021027/org/apache/axis/message/SOAPHeaderElement.java	Wed Oct 16 10:38:10 2002
+++ 1_0_soap12/org/apache/axis/message/SOAPHeaderElement.java	Wed Nov  6
15:40:48 2002
@@ -67,7 +67,7 @@
 import javax.xml.soap.Name;
 import javax.xml.namespace.QName;
 
-/** 
+/**
  * A simple header element abstraction.  Extends MessageElement with
  * header-specific stuff like mustUnderstand, actor, and a 'processed' flag.
  *
@@ -100,13 +100,18 @@
     {
         super(elem);
 
-        // FIXME : This needs to come from someplace reasonable, perhaps
-        // TLS (SOAPConstants.getCurrentVersion() ?)
         SOAPConstants soapConstants = SOAPConstants.SOAP11_CONSTANTS;
 
+        if
(getNamespaceURI().equals(SOAPConstants.SOAP12_CONSTANTS.getEnvelopeURI()))
+            soapConstants = SOAPConstants.SOAP12_CONSTANTS;
+
         String val = elem.getAttributeNS(soapConstants.getEnvelopeURI(),
                                          Constants.ATTR_MUST_UNDERSTAND);
-        mustUnderstand = ((val != null) && val.equals("1")) ? true : false;
+
+        if (soapConstants == SOAPConstants.SOAP12_CONSTANTS)
+            mustUnderstand = ((val != null) && val.equals("true")) ? true : false;
+        else
+            mustUnderstand = ((val != null) && val.equals("1")) ? true : false;
 
         QName roleQName = soapConstants.getRoleAttributeQName();
         actor = elem.getAttributeNS(roleQName.getNamespaceURI(),
@@ -118,9 +123,9 @@
 
     public void setParentElement(SOAPElement parent) throws SOAPException {
         if(parent == null)
-            throw new
IllegalArgumentException(Messages.getMessage("nullParent00")); 
+            throw new
IllegalArgumentException(Messages.getMessage("nullParent00"));
         if(!(parent instanceof SOAPHeader))
-            throw new
IllegalArgumentException(Messages.getMessage("illegalArgumentException00")); 
+            throw new
IllegalArgumentException(Messages.getMessage("illegalArgumentException00"));
         try {
             super.setParentElement((SOAPHeader)parent);
         } catch (Throwable t) {
@@ -144,7 +149,11 @@
         // Check for mustUnderstand
         String val = attributes.getValue(soapConstants.getEnvelopeURI(),
                                          Constants.ATTR_MUST_UNDERSTAND);
-        mustUnderstand = ((val != null) && val.equals("1")) ? true : false;
+
+        if (soapConstants == SOAPConstants.SOAP12_CONSTANTS)
+            mustUnderstand = ((val != null) && val.equals("true")) ? true : false;
+        else
+            mustUnderstand = ((val != null) && val.equals("1")) ? true : false;
 
         QName roleQName = soapConstants.getRoleAttributeQName();
         actor = attributes.getValue(roleQName.getNamespaceURI(),
@@ -187,7 +196,11 @@
             setAttribute(roleQName.getNamespaceURI(),
                          roleQName.getLocalPart(), actor);
 
-            String val = mustUnderstand ? "1" : "0";
+            String val;
+            if (context.getMessageContext().getSOAPConstants() ==
SOAPConstants.SOAP12_CONSTANTS)
+                val = mustUnderstand ? "true" : "false";
+            else
+                val = mustUnderstand ? "1" : "0";
 
             setAttribute(soapVer.getEnvelopeURI(),
                          Constants.ATTR_MUST_UNDERSTAND,