Author: nadiramra
Date: Thu Jan  3 19:13:37 2008
New Revision: 608722

URL: http://svn.apache.org/viewvc?rev=608722&view=rev
Log:
AXISCPP-429 - stubs use request message name, instead of operation name for 
setOperation

Modified:
    webservices/axis/trunk/c/src/soap/SoapBody.cpp
    webservices/axis/trunk/c/src/soap/SoapMethod.h
    webservices/axis/trunk/c/src/soap/SoapSerializer.cpp

Modified: webservices/axis/trunk/c/src/soap/SoapBody.cpp
URL: 
http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/soap/SoapBody.cpp?rev=608722&r1=608721&r2=608722&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapBody.cpp (original)
+++ webservices/axis/trunk/c/src/soap/SoapBody.cpp Thu Jan  3 19:13:37 2008
@@ -84,10 +84,16 @@
         }
         else if(NULL != m_pSoapMethod)
         {
-            iStatus= m_pSoapMethod->serialize(pSZ);
-            if(iStatus==AXIS_FAIL)
-                break;
-        } 
+               // A null-string namespace means the operation does not have 
input parameters and
+               // thus we skip this serialization step!
+               AxisString prefix = m_pSoapMethod->getPrefix();
+               if (prefix.length() != 0)
+               {
+                       iStatus= m_pSoapMethod->serialize(pSZ);
+                       if(iStatus==AXIS_FAIL)
+                               break;
+               }
+        }
         else
         {
             m_pSoapFault = 
SoapFault::getSoapFault(SERVER_ENGINE_WEBSERVICE_FAILED);

Modified: webservices/axis/trunk/c/src/soap/SoapMethod.h
URL: 
http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/soap/SoapMethod.h?rev=608722&r1=608721&r2=608722&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapMethod.h (original)
+++ webservices/axis/trunk/c/src/soap/SoapMethod.h Thu Jan  3 19:13:37 2008
@@ -93,6 +93,9 @@
     
     /** Method to clear up all the current attributes in preparation of a new 
method call */
     void clearAttributes();
+    
+    /** Return namespace prefix */
+    AxisString getPrefix() { return m_strPrefix; }
 };
 
 AXIS_CPP_NAMESPACE_END

Modified: webservices/axis/trunk/c/src/soap/SoapSerializer.cpp
URL: 
http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/soap/SoapSerializer.cpp?rev=608722&r1=608721&r2=608722&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapSerializer.cpp (original)
+++ webservices/axis/trunk/c/src/soap/SoapSerializer.cpp Thu Jan  3 19:13:37 
2008
@@ -455,19 +455,20 @@
 const AxisChar * SoapSerializer::
 getNamespacePrefix( const AxisChar * pNamespace)
 {
-    if( m_NsStack.find( pNamespace) == m_NsStack.end())
-    {
-        m_nCounter++;
-        AxisSprintf(m_Buf, 8, "ns%d", m_nCounter);
-        m_NsStack[pNamespace] = m_Buf;
-    }
-
-    return m_NsStack[pNamespace].c_str();
+       bool blnIsNewPrefix;
+       return getNamespacePrefix(pNamespace, blnIsNewPrefix);
 }
 
 const AxisChar * SoapSerializer::
 getNamespacePrefix( const AxisChar * pNamespace, bool & blnIsNewPrefix)
 {
+       blnIsNewPrefix = false;
+       
+       // We will not map null or null string namespaces...MUST return null 
string
+       // since the namespace is sometimes assigned to object of type string 
class.
+       if (pNamespace == (const AxisChar *)NULL || pNamespace[0] == '\0')      
+               return (const AxisChar *)"";
+       
     if( m_NsStack.find( pNamespace) == m_NsStack.end())
     {
         m_nCounter++;



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to