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 "Franz Fehringer (JIRA)" <ax...@ws.apache.org> on 2006/01/09 14:27:50 UTC

[jira] Commented: (AXISCPP-897) recent wsdl2ws generates wrong/inconsistent prototypes

    [ http://issues.apache.org/jira/browse/AXISCPP-897?page=comments#action_12362202 ] 

Franz Fehringer commented on AXISCPP-897:
-----------------------------------------

A short investigation reveals that two problems where introduced with recent changes:
The integer input parameters are now passed as pointers (perhaps for taking optional parameters into account).
The person who implemented this forgot to adapt header file generation accordingly.
For the output parameters one level of indirection (one star/asterisk) was added to the function definition in the source (.cpp).
As can be seen from the implementation afterwards this is wrong.
The declaration in the header file (same as in release 1.5) is correct.


> recent wsdl2ws generates wrong/inconsistent prototypes
> ------------------------------------------------------
>
>          Key: AXISCPP-897
>          URL: http://issues.apache.org/jira/browse/AXISCPP-897
>      Project: Axis-C++
>         Type: Bug
>   Components: Client - Stub
>     Versions: 1.6 Alpha
>  Environment: W2KSP4 JDK 1.5.0_06
>     Reporter: Franz Fehringer
>  Attachments: SessionManagementPortType.cpp, SessionManagementPortType.hpp, durchstich.wsdl, durchstich.xsd
>
> With the latest SVN code i observe the following problem not present in the AxisC 1.5 release:
> Using the attached WSDL method prototypes differ between header (.hpp) and source (.cpp) (also attached to this mail).
> More specifically, the input parameters are declared inconsistent, the output parameters consistent.
> The header reads
> void Login(t_Expiry Value0, t_Language Value1, t_PositiveInt Value2, t_Authentication* Value3, AXIS_OUT_PARAM t_Expiry ** OutValue0, AXIS_OUT_PARAM t_SessionToken ** OutValue1);
> The source reads
> void SessionManagementPortType::Login(xsd__int* Value0, xsd__string Value1, xsd__int* Value2, t_Authentication* Value3, AXIS_OUT_PARAM t_Expiry ** OutValue0, AXIS_OUT_PARAM t_SessionToken ** OutValue1)
> First in the header file for the input parameters typedefed types (t_Expiry ...) are used but typedefed to types (xsd__int ...) in the source file (maybe a cosmetic glitch but nevertheless not desirable).
> Second and more seriously the levels of indirection differ:
> With
> typedef xsd__int t_Expiry;
> typedef xsd__string t_Language;
> typedef xsd__int t_PositiveInt;
> the first parameter Value0 (for example) is an integer in the header but a pointer in the source.
> There is also an issue with the output parameters:
> OutValue1 is a t_SessionToken** in current SVN but a t_SessionToken* in release 1.5.

-- 
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