The xsd deserialization for integer types is awfully
broken.

For instance, calling the getElementAsInt() API for
the XML fragment

"<foo>30a</foo>" 

I would have expected it to either return 30 or
ideally throw an exception. Instead, I get a value of
300 :( 

Similarly, calling 

"<foo>30 </foo>" returns a value of 300 !

I think the following change might have introduced
this bug. 
http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/soap/xsd/Integer.cpp?r1=261408&r2=261497&diff_format=h

Further, why aren't we validating against the maximum
and minimum value for each type ?

For instance, getElementAsShort() for the XML fragment

"<foo1>32768</foo1>" returns -1. I would have expected
AxisC++ to throw an exception saying it exceeds the
max value of short instead of silently returning wrong
values. 

I am surprised why this bug hasn't been seen till now.

Regardless, I think it should be top priority to fix
this issue. 

 



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to