You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "shijith lal (JIRA)" <ax...@ws.apache.org> on 2004/11/02 13:10:32 UTC

[jira] Created: (AXISCPP-240) Bug in SoapDeserilizer File

Bug in SoapDeserilizer File
---------------------------

         Key: AXISCPP-240
         URL: http://nagoya.apache.org/jira/browse/AXISCPP-240
     Project: Axis-C++
        Type: Bug
  Components: Serialization/Deserialization  
    Versions: 1.3 Final    
    Reporter: shijith lal



 I am working with Axis Client 1.3 (C++ ) version. I want to recieve
a complex response coming from my apache SOAP server. For that I write
my own Deserialize function and proced. I use the "getAnyObject"
function of Deserializer object. I found that if my attribute contain
no namespace it will not work. The code in Axis C++ client looks like
(in SoapDeserializer.cpp file serializeTag function )
               if (node->m_pchAttributes[j])
               {
             pchPrefix = m_pParser->getPrefix4NS(node->m_pchAttributes[j+1]);
                     // remainig code....
               }
m_pchAttributes[j+1] is null in my case. So the function throw an
exception if i use the Expat XML parser. I think it is bug and code
can be change to
       if (node->m_pchAttributes[j])
               {
                 if(node->m_pchAttributes[j+1])
                {
             pchPrefix = m_pParser->getPrefix4NS(node->m_pchAttributes[j+1]);
                }
                     // remainig code....
               }

  Another prblem in the same file and function is , code looks like
       xmlStr += " ";
       if (pchPrefix && (strcmp(pchPrefix, "")!=0))
              {
        xmlStr += pchPrefix;
       xmlStr += ":";
       xmlStr += node->m_pchAttributes[j];
       }
               xmlStr += "=\"";                                        xmlStr +=
node->m_pchAttributes[j+2];                             xmlStr += "\"";

here if namespace is null then the attribute name will not append to
the result string . It can be modified to
       xmlStr += " ";
       if (pchPrefix && (strcmp(pchPrefix, "")!=0))
              {
        xmlStr += pchPrefix;
       xmlStr += ":";
       }
       xmlStr += node->m_pchAttributes[j];
               xmlStr += "=\"";                                        xmlStr +=
node->m_pchAttributes[j+2];                             xmlStr += "\"";


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Closed: (AXISCPP-240) Bug in SoapDeserilizer File

Posted by "Samisa Abeysinghe (JIRA)" <ax...@ws.apache.org>.
     [ http://nagoya.apache.org/jira/browse/AXISCPP-240?page=history ]
     
Samisa Abeysinghe closed AXISCPP-240:
-------------------------------------

      Assign To: Samisa Abeysinghe
     Resolution: Fixed
    Fix Version: 1.4 Alpha

Bugs were fixed in line with the suggestions made.
Thanks to Shijith Lal for his feedback/thougts on the fix.

> Bug in SoapDeserilizer File
> ---------------------------
>
>          Key: AXISCPP-240
>          URL: http://nagoya.apache.org/jira/browse/AXISCPP-240
>      Project: Axis-C++
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.3 Final
>     Reporter: shijith lal
>     Assignee: Samisa Abeysinghe
>      Fix For: 1.4 Alpha

>
>  I am working with Axis Client 1.3 (C++ ) version. I want to recieve
> a complex response coming from my apache SOAP server. For that I write
> my own Deserialize function and proced. I use the "getAnyObject"
> function of Deserializer object. I found that if my attribute contain
> no namespace it will not work. The code in Axis C++ client looks like
> (in SoapDeserializer.cpp file serializeTag function )
>                if (node->m_pchAttributes[j])
>                {
>              pchPrefix = m_pParser->getPrefix4NS(node->m_pchAttributes[j+1]);
>                      // remainig code....
>                }
> m_pchAttributes[j+1] is null in my case. So the function throw an
> exception if i use the Expat XML parser. I think it is bug and code
> can be change to
>        if (node->m_pchAttributes[j])
>                {
>                  if(node->m_pchAttributes[j+1])
>                 {
>              pchPrefix = m_pParser->getPrefix4NS(node->m_pchAttributes[j+1]);
>                 }
>                      // remainig code....
>                }
>   Another prblem in the same file and function is , code looks like
>        xmlStr += " ";
>        if (pchPrefix && (strcmp(pchPrefix, "")!=0))
>               {
>         xmlStr += pchPrefix;
>        xmlStr += ":";
>        xmlStr += node->m_pchAttributes[j];
>        }
>                xmlStr += "=\"";                                        xmlStr +=
> node->m_pchAttributes[j+2];                             xmlStr += "\"";
> here if namespace is null then the attribute name will not append to
> the result string . It can be modified to
>        xmlStr += " ";
>        if (pchPrefix && (strcmp(pchPrefix, "")!=0))
>               {
>         xmlStr += pchPrefix;
>        xmlStr += ":";
>        }
>        xmlStr += node->m_pchAttributes[j];
>                xmlStr += "=\"";                                        xmlStr +=
> node->m_pchAttributes[j+2];                             xmlStr += "\"";

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira