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 "Mark Whitlock (JIRA)" <ax...@ws.apache.org> on 2005/05/17 18:29:40 UTC

[jira] Created: (AXISCPP-653) xsd_unsignedLong not long enough to hold max SOAP value

xsd_unsignedLong not long enough to hold max SOAP value
-------------------------------------------------------

         Key: AXISCPP-653
         URL: http://issues.apache.org/jira/browse/AXISCPP-653
     Project: Axis-C++
        Type: Bug
  Components: SOAP  
    Reporter: Mark Whitlock


In AxisUserAPI.hpp...
typedef unsigned long xsd__unsignedLong;
typedef long long xsd__long;
so a xsd__long is 8 bytes but a xsd__unsignedLong is only 4 bytes. According to the SOAP spec xsd__unsignedLong should also be 8 bytes. So currently it cannot hold the maximum value that is allowed for it in the SOAP spec.

Discussing this with Adrian, it appears that unsigned long is the longest unsigned datatype that is available on all platforms. So maybe xsd__unsignedLong should be converted to a class. There is a similar problem with xsd__duration and some other xsd types.

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


[jira] Reopened: (AXISCPP-653) xsd_unsignedLong not long enough to hold max SOAP value

Posted by "Adrian Dick (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-653?page=all ]
     
Adrian Dick reopened AXISCPP-653:
---------------------------------


The fix for this has now broken the XSDElementNil testcase.

> xsd_unsignedLong not long enough to hold max SOAP value
> -------------------------------------------------------
>
>          Key: AXISCPP-653
>          URL: http://issues.apache.org/jira/browse/AXISCPP-653
>      Project: Axis-C++
>         Type: Bug
>   Components: SOAP
>     Reporter: Mark Whitlock
>     Assignee: Adrian Dick
>      Fix For: current (nightly)

>
> In AxisUserAPI.hpp...
> typedef unsigned long xsd__unsignedLong;
> typedef long long xsd__long;
> so a xsd__long is 8 bytes but a xsd__unsignedLong is only 4 bytes. According to the SOAP spec xsd__unsignedLong should also be 8 bytes. So currently it cannot hold the maximum value that is allowed for it in the SOAP spec.
> Discussing this with Adrian, it appears that unsigned long is the longest unsigned datatype that is available on all platforms. So maybe xsd__unsignedLong should be converted to a class. There is a similar problem with xsd__duration and some other xsd types.

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


[jira] Closed: (AXISCPP-653) xsd_unsignedLong not long enough to hold max SOAP value

Posted by "Adrian Dick (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-653?page=all ]
     
Adrian Dick closed AXISCPP-653:
-------------------------------


> xsd_unsignedLong not long enough to hold max SOAP value
> -------------------------------------------------------
>
>          Key: AXISCPP-653
>          URL: http://issues.apache.org/jira/browse/AXISCPP-653
>      Project: Axis-C++
>         Type: Bug

>   Components: SOAP
>     Reporter: Mark Whitlock
>     Assignee: Adrian Dick
>      Fix For: current (nightly)

>
> In AxisUserAPI.hpp...
> typedef unsigned long xsd__unsignedLong;
> typedef long long xsd__long;
> so a xsd__long is 8 bytes but a xsd__unsignedLong is only 4 bytes. According to the SOAP spec xsd__unsignedLong should also be 8 bytes. So currently it cannot hold the maximum value that is allowed for it in the SOAP spec.
> Discussing this with Adrian, it appears that unsigned long is the longest unsigned datatype that is available on all platforms. So maybe xsd__unsignedLong should be converted to a class. There is a similar problem with xsd__duration and some other xsd types.

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


[jira] Resolved: (AXISCPP-653) xsd_unsignedLong not long enough to hold max SOAP value

Posted by "Adrian Dick (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-653?page=all ]
     
Adrian Dick resolved AXISCPP-653:
---------------------------------

    Fix Version: current (nightly)
     Resolution: Fixed

Changed this to use unsigned long long (unix platforms) or unsigned __int64 (windows) which gives sufficient space for the limits specified within the SOAP specification.
I also took this as an oppurtunity to resolve some small issues where the internal serialization of these values was incorrectly using signed integers - which would cause problems for the larger values.

> xsd_unsignedLong not long enough to hold max SOAP value
> -------------------------------------------------------
>
>          Key: AXISCPP-653
>          URL: http://issues.apache.org/jira/browse/AXISCPP-653
>      Project: Axis-C++
>         Type: Bug
>   Components: SOAP
>     Reporter: Mark Whitlock
>     Assignee: Adrian Dick
>      Fix For: current (nightly)

>
> In AxisUserAPI.hpp...
> typedef unsigned long xsd__unsignedLong;
> typedef long long xsd__long;
> so a xsd__long is 8 bytes but a xsd__unsignedLong is only 4 bytes. According to the SOAP spec xsd__unsignedLong should also be 8 bytes. So currently it cannot hold the maximum value that is allowed for it in the SOAP spec.
> Discussing this with Adrian, it appears that unsigned long is the longest unsigned datatype that is available on all platforms. So maybe xsd__unsignedLong should be converted to a class. There is a similar problem with xsd__duration and some other xsd types.

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


[jira] Resolved: (AXISCPP-653) xsd_unsignedLong not long enough to hold max SOAP value

Posted by "Adrian Dick (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-653?page=all ]
     
Adrian Dick resolved AXISCPP-653:
---------------------------------

    Resolution: Fixed

This has now been resolved, it was a problem with the testcase - on windows only.

> xsd_unsignedLong not long enough to hold max SOAP value
> -------------------------------------------------------
>
>          Key: AXISCPP-653
>          URL: http://issues.apache.org/jira/browse/AXISCPP-653
>      Project: Axis-C++
>         Type: Bug
>   Components: SOAP
>     Reporter: Mark Whitlock
>     Assignee: Adrian Dick
>      Fix For: current (nightly)

>
> In AxisUserAPI.hpp...
> typedef unsigned long xsd__unsignedLong;
> typedef long long xsd__long;
> so a xsd__long is 8 bytes but a xsd__unsignedLong is only 4 bytes. According to the SOAP spec xsd__unsignedLong should also be 8 bytes. So currently it cannot hold the maximum value that is allowed for it in the SOAP spec.
> Discussing this with Adrian, it appears that unsigned long is the longest unsigned datatype that is available on all platforms. So maybe xsd__unsignedLong should be converted to a class. There is a similar problem with xsd__duration and some other xsd types.

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


[jira] Assigned: (AXISCPP-653) xsd_unsignedLong not long enough to hold max SOAP value

Posted by "Adrian Dick (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-653?page=all ]

Adrian Dick reassigned AXISCPP-653:
-----------------------------------

    Assign To: Adrian Dick

> xsd_unsignedLong not long enough to hold max SOAP value
> -------------------------------------------------------
>
>          Key: AXISCPP-653
>          URL: http://issues.apache.org/jira/browse/AXISCPP-653
>      Project: Axis-C++
>         Type: Bug
>   Components: SOAP
>     Reporter: Mark Whitlock
>     Assignee: Adrian Dick

>
> In AxisUserAPI.hpp...
> typedef unsigned long xsd__unsignedLong;
> typedef long long xsd__long;
> so a xsd__long is 8 bytes but a xsd__unsignedLong is only 4 bytes. According to the SOAP spec xsd__unsignedLong should also be 8 bytes. So currently it cannot hold the maximum value that is allowed for it in the SOAP spec.
> Discussing this with Adrian, it appears that unsigned long is the longest unsigned datatype that is available on all platforms. So maybe xsd__unsignedLong should be converted to a class. There is a similar problem with xsd__duration and some other xsd types.

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


[jira] Commented: (AXISCPP-653) xsd_unsignedLong not long enough to hold max SOAP value

Posted by "John Hawkins (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-653?page=comments#action_65643 ]
     
John Hawkins commented on AXISCPP-653:
--------------------------------------

Can we make just one type a class and the rest not? It would be best to have them all as classes or none surely?

> xsd_unsignedLong not long enough to hold max SOAP value
> -------------------------------------------------------
>
>          Key: AXISCPP-653
>          URL: http://issues.apache.org/jira/browse/AXISCPP-653
>      Project: Axis-C++
>         Type: Bug
>   Components: SOAP
>     Reporter: Mark Whitlock

>
> In AxisUserAPI.hpp...
> typedef unsigned long xsd__unsignedLong;
> typedef long long xsd__long;
> so a xsd__long is 8 bytes but a xsd__unsignedLong is only 4 bytes. According to the SOAP spec xsd__unsignedLong should also be 8 bytes. So currently it cannot hold the maximum value that is allowed for it in the SOAP spec.
> Discussing this with Adrian, it appears that unsigned long is the longest unsigned datatype that is available on all platforms. So maybe xsd__unsignedLong should be converted to a class. There is a similar problem with xsd__duration and some other xsd types.

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