whitlock 2005/07/08 02:57:57
Modified: c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
BeanParamWriter.java
Log:
when deserializing a field that's a complex array, in the code that copies
the array, memset the old array to zero before deleting it, otherwise the
referenced complex type's destructor will free it's strings causing AxisBench
and others to fail.
Revision Changes Path
1.82 +1 -0
ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
Index: BeanParamWriter.java
===================================================================
RCS file:
/home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- BeanParamWriter.java 6 Jul 2005 14:57:55 -0000 1.81
+++ BeanParamWriter.java 8 Jul 2005 09:57:57 -0000 1.82
@@ -884,6 +884,7 @@
writer.write("\t\t*(pp" + i + "[iCount" + i + "]) =
p"
+ i + "[iCount" + i + "];\n");
writer.write("\t}\n");
+ writer.write("\tmemset(p" + i + ", 0, sizeof("
+ attributeTypeName + ")*array.m_Size);\n");
writer.write("\tdelete [] p" + i + ";\n");
}
else