WSDL2WS generate wrong code: redundant value reference * in Wrapper
-------------------------------------------------------------------
Key: AXISCPP-966
URL: http://issues.apache.org/jira/browse/AXISCPP-966
Project: Axis-C++
Type: Bug
Components: WSDL processing - RPC
Versions: 1.6 Beta
Environment: Platform:
Linux fedora 3.0
Axis version:
Server-side Axis C++ 1.5
XML Parser Lib:
xersesc 2.6
WSDL2ws tool by using axis java 1.2RC3 jar
Client-side version Axis java 1.2RC3
Http Server Version:
Apache 2.0.53
Tomcat 2.0.58
Reporter: FX SDCC
Priority: Critical
[Error Statement]:
I have used AxisCPP1.6Beta version to generate SampleTestSoapWrapper.cpp as the
below:
Function: int SampleTestSoapWrapper::GetOperation(void* pMsg)
xsd_string v0 = *(pIWSDZ->getElementAsString("ListType", 0));
The generated code has bug: xsd_string is already indeed a "char *", so should
not reference it's content by "*".
The correct code I expected is:
xsd_string v0 = pIWSDZ->getElementAsString("ListType", 0);
[solution]:
I have investigated the source code of AxisCPP/WSDL2Ws tool, and found that if
I modify the following code at about line 217~234 in writeMethodInWrapper
method that belongs to WrapWriter (wsdl2ws/cpp/iteral) class, the above bug can
be resolved.
else
{
writer.write(
"\t"
+ paraTypeName
+ " v"
+ i
//<mxiong debug 20060425
+ " = pIWSDZ->"
// + " = *(pIWSDZ->"
//>mxiong debug 20060425
+ CUtils.getParameterGetValueMethodName(
paraTypeName,
false)
+ "(\""
+ elementName
// <mxiong debug 20060425
// + "\",0));\n");
+ "\",0);\n");
// >mxiong debug 20060425
}
So I think it's a bug.
[other]
I will create a patch for you and upload it later.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira