axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Damien Bouchet" <dbouc...@dictao.com>
Subject RE: [AXIS C++ 1.6b] : Deserialization problems
Date Thu, 06 Apr 2006 12:57:42 GMT
Hello, thanks for the anwser.

In fact, with more research, we have found the problem has been partially fixed in the 1.6
revision with this check-in in revision 369808 :
http://svn.apache.org/viewcvs.cgi?rev=369808&view=rev

But that fix is only partial and doesn't solve our problem, because it fixes only the DOC_LITERAL
case, and not the RPC_ENCODED case.

Proposed patch based on the latest SoapDeSerializer.cpp version available from this URL (adding
a required check on m_pNode too):
http://svn.apache.org/viewcvs.cgi/webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp

--- SoapDeSerializer.cpp        2006-04-06 13:40:41.000000000 +0200
+++ SoapDeSerializerFix.cpp     2006-04-06 02:50:55.096619672 +0200
@@ -1598,20 +1598,20 @@
             }
             else if (m_pNode && (END_ELEMENT == m_pNode->m_type) && bNillFound
 ) //xsi:nil="true"
             {
                 pSimpleType->deserialize(NULL);
                 m_pNode = NULL;
                 return;
             }

-            else if (END_ELEMENT == m_pNode->m_type)    // We have an empty string - Jira
AXISCPP-93
+            else if (m_pNode && (END_ELEMENT == m_pNode->m_type) )    // We have
an empty string - Jira AXISCPP-93
             {
                 pSimpleType->deserialize("");
-                m_pNode = m_pParser->next();
+                m_pNode = NULL;
                 return;
             }
             else
             {
                 // simpleType may have xsi:nill="true" */
                 //m_pNode = NULL;
                 // this is important when deserializing
                 // arrays

We also seem to have a problem with non US-ASCII requests, even when they apparently are properly
UTF-8 declared and encoded. 
We have not been able yet to understand what happens.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tss="urn:tokenSoapService" xmlns:types="urn:tokenSoapService/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<tss:make_token>
<text1 xsi:type="xsd:string">eeéee</text1>
<text2 xsi:type="xsd:string">TEXT2</text2>
</tss:make_token>
</soap:Body>
</soap:Envelope>

Text1 seems to be handled just like if it were empty in our test. 
Our treatment gets the right value for text2.

Best regards


---------------------------------------------------------------------------------------------------------------
Ce message et tous les fichiers qui y sont attachés contiennent des informations
confidentielles ou appartenant à Dictao. Ils sont destinés à l'intention
exclusive de son (ses) destinataire(s). Toute divulgation, utilisation, diffusion ou
reproduction (totale ou partielle) de ce message, ou des informations
qu'il contient, doit être préalablement autorisée. Tout message électronique
est susceptible d'altération et son intégrité ne peut être assurée. Dictao décline
toute responsabilité au titre de ce message s'il a été modifié ou falsifié. Si vous
n'êtes pas destinataire de ce message, merci de le détruire immédiatement 
et d'avertir l'expéditeur de l'erreur de distribution et de la destruction du message.
Dictao - RCS Paris B 429 383 979 - 42, avenue de la Grande Armée - 75017 Paris

This e-mail and all the attached files contain confidential information or information 
belonging to Dictao. They are intended solely for the addressee(s). The unauthorized 
disclosure, use, dissemination or copying (either whole or partial) of this e-mail, or 
any information it contains, is prohibited. E-mails are susceptible to alteration and 
their integrity cannot be guaranteed. Dictao shall not be liable for this e-mail if
modified or falsified. If you are not the intended recipient of this e-mail, please 
delete it immediately from your system and notify the sender of the wrong 
delivery and the mail deletion.
Dictao  - Registered Office : Paris B 429 383 979 - 42, avenue de la Grande Armée - 75017
Paris - France


Mime
View raw message