You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by na...@apache.org on 2010/01/25 19:54:22 UTC
svn commit: r902922 - in /webservices/axis/trunk/c/src:
soap/SoapDeSerializer.cpp
wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
Author: nadiramra
Date: Mon Jan 25 18:54:22 2010
New Revision: 902922
URL: http://svn.apache.org/viewvc?rev=902922&view=rev
Log:
AXISCPP-1064 Parser gets confused when expected element is not there
Modified:
webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
Modified: webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp?rev=902922&r1=902921&r2=902922&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp (original)
+++ webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp Mon Jan 25 18:54:22 2010
@@ -947,6 +947,17 @@
if (!isFault)
{
+ if (AXIS_SUCCESS == m_nStatus && (RPC_ENCODED != m_nStyle) && (m_pNode == NULL))
+ {
+ const char*name = peekNextElementName();
+ if (0 != strcmp (pName, name))
+ {
+ logExitWithPointer(NULL)
+
+ return NULL;
+ }
+ }
+
if (AXIS_SUCCESS != m_nStatus || (AXIS_FAIL == getNextNode(RPC_ENCODED != m_nStyle)))
{
logExitWithPointer(NULL)
@@ -1475,6 +1486,17 @@
return;
}
+ if ((RPC_ENCODED != m_nStyle) && (m_pNode == NULL))
+ {
+ const char*name = peekNextElementName();
+ if (0 != strcmp (pName, name))
+ {
+ logExit()
+
+ return;
+ }
+ }
+
if (AXIS_FAIL == getNextNode(RPC_ENCODED != m_nStyle))
{
logExit()
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?rev=902922&r1=902921&r2=902922&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java Mon Jan 25 18:54:22 2010
@@ -640,16 +640,6 @@
{
String soapTagName = (attribs[i].isAttribute() ? attribs[i].getParamNameAsSOAPString() : attribs[i].getElementNameAsSOAPString());
- // We only peek for elements, not element attributes!
- if (attribs[i].isOptional() && !attribs[i].isAttribute() && !handleAll && !handleChoice)
- {
- c_writer.write(tab1 + "peekedElementName = axiscSoapDeSerializerPeekNextElementName(pDZ);\n");
- c_writer.write(tab1 + "if (strcmp(peekedElementName, \"" + soapTagName + "\") == 0)\n");
- c_writer.write(tab1 + "{\n");
-
- tab2 += "\t";
- }
-
Type type = attribs[i].getType();
boolean isPointerType = false;
if (type.isSimpleType())
@@ -701,39 +691,18 @@
c_writer.write(tab2 + "}\n"); // end local scope
}
-
- if (attribs[i].isOptional() && !attribs[i].isAttribute() && !handleAll && !handleChoice)
- {
- c_writer.write("\t\t\t}\n");
- c_writer.write("\t\telse\n");
- c_writer.write("\t\t\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
- }
}
else
{
//if complex type
String soapTagName = attribs[i].getParamNameAsSOAPString();
-
- if (attribs[i].isOptional() && !handleAll && !handleChoice)
- {
- c_writer.write(tab1 + "peekedElementName = axiscSoapDeSerializerPeekNextElementName(pDZ);\n");
- c_writer.write(tab1 + "if (strcmp(peekedElementName, \"" + soapTagName + "\") == 0)\n");
-
- tab2 += "\t";
- }
c_writer.write(tab2 + "param->" + attribs[i].getParamNameAsMember()
+ " = (" + attribs[i].getTypeName()
+ "*)axiscSoapDeSerializerGetCmplxObject(pDZ,(void*)Axis_DeSerialize_" + attribs[i].getTypeName()
+ ", (void*)Axis_Create_" + attribs[i].getTypeName()
+ ", (void*)Axis_Delete_" + attribs[i].getTypeName()
- + ", \"" + soapTagName + "\", Axis_URI_" + attribs[i].getTypeName() + ");\n");
-
- if (attribs[i].isOptional() && !handleAll && !handleChoice)
- {
- c_writer.write(tab1 + "else\n");
- c_writer.write(tab1 + "\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
- }
+ + ", \"" + soapTagName + "\", Axis_URI_" + attribs[i].getTypeName() + ");\n");
}
if (attribs[i].getChoiceElement() || attribs[i].getAllElement())
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java?rev=902922&r1=902921&r2=902922&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java Mon Jan 25 18:54:22 2010
@@ -864,16 +864,6 @@
{
String soapTagName = (attribs[i].isAttribute() ? attribs[i].getParamNameAsSOAPString() : attribs[i].getElementNameAsSOAPString());
- // We only peek for elements, not element attributes!
- if (attribs[i].isOptional() && !attribs[i].isAttribute() && !handleAll && !handleChoice)
- {
- c_writer.write(tab1 + "peekedElementName = pIWSDZ->peekNextElementName();\n");
- c_writer.write(tab1 + "if (strcmp(peekedElementName, \"" + soapTagName + "\") == 0)\n");
- c_writer.write(tab1 + "{\n");
-
- tab2 += "\t";
- }
-
Type type = attribs[i].getType();
boolean isPointerType = false;
if (type.isSimpleType())
@@ -923,27 +913,11 @@
+ ", " + CUtils.getXSDEnumeratorForType( attribs[i].getTypeName()) + ");\n");
c_writer.write(tab2 + "}\n");
}
-
- // TODO - remove this chunk of code...?
- if (attribs[i].isOptional() && !attribs[i].isAttribute() && !handleAll && !handleChoice)
- {
- c_writer.write(tab1 + "}\n");
- c_writer.write(tab1 + "else\n");
- c_writer.write(tab1 + "\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
- }
}
else
{
//if complex type
String soapTagName = attribs[i].getParamNameAsSOAPString();
-
- if (attribs[i].isOptional() && !handleAll && !handleChoice)
- {
- c_writer.write(tab1 + "peekedElementName = pIWSDZ->peekNextElementName();\n");
- c_writer.write(tab1 + "if (strcmp(peekedElementName, \"" + soapTagName + "\") == 0)\n");
-
- tab2 += "\t";
- }
c_writer.write(tab2 + "param->" + attribs[i].getParamNameAsMember()
+ " = (" + attribs[i].getTypeName()
@@ -951,13 +925,6 @@
+ ", (void*)Axis_Create_" + attribs[i].getTypeName()
+ ", (void*)Axis_Delete_" + attribs[i].getTypeName()
+ ", \"" + soapTagName + "\", Axis_URI_" + attribs[i].getTypeName() + ");\n");
-
- // TODO remove following chunk of code...?
- if (attribs[i].isOptional() && !handleAll && !handleChoice)
- {
- c_writer.write(tab1 + "else\n");
- c_writer.write(tab1 + "\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
- }
}
if (attribs[i].getChoiceElement() || attribs[i].getAllElement())