flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ben Burns (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FLEX-33644) XMLEncoder improperly handles encoding the string "null".
Date Fri, 02 Aug 2013 13:45:48 GMT

     [ https://issues.apache.org/jira/browse/FLEX-33644?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Ben Burns updated FLEX-33644:
-----------------------------

    Description: 
The following code returns an empty string:

    var enc:XMLEncoder = new XMLEncoder();
    enc.encode("null");

However, SchemaMarshaller.marshall() correctly returns the string "null".

I believe the problems is that XML.appendChild for some reason treats the string "null" differently.
I have no idea why.

If you're curious as to why I think this is a bug, see this StackOverflow question:
http://stackoverflow.com/questions/4456438/how-can-i-pass-the-string-null-through-wsdl-soap-from-as3-to-coldfusion-web

Finally, see this fiddle for examples:
http://wonderfl.net/c/jYIm

  was:
Found this bug while researching an answer for this StackOverflow question: http://stackoverflow.com/questions/4456438/how-can-i-pass-the-string-null-through-wsdl-soap-from-as3-to-coldfusion-web

If XMLEncoder is passed a string "null" (that is, a proper string, not null the placeholder
value), it's possible that the value will not be included in the encoded output. This appears
to be because of the equality check here: https://git-wip-us.apache.org/repos/asf?p=flex-sdk.git;a=blob;f=frameworks/projects/rpc/src/mx/rpc/xml/XMLEncoder.as;h=f9a223e66e35fa8a11095e4e458c5a09d92678eb;hb=4f20635628acdc09e8739c5f94ec644d20cbd959#l101
(this is HEAD at time of posting).

I believe that in that case, null is coerced to "null" and the equality test succeeds which
in turn sets content to null, causing the output to be omitted later in the encode method.

Note that this has been a problem since at least Flex 3.5, and probably longer. http://opensource.adobe.com/svn/opensource/flex/sdk/tags/3.5.0.12683/frameworks/projects/rpc/src/mx/rpc/xml/XMLEncoder.as

    
> XMLEncoder improperly handles encoding the string "null".
> ---------------------------------------------------------
>
>                 Key: FLEX-33644
>                 URL: https://issues.apache.org/jira/browse/FLEX-33644
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: RPC: General
>    Affects Versions: Adobe Flex SDK 3.5 (Release)
>            Reporter: Ben Burns
>              Labels: easyfix, rpc, soap, xml, xmlrpc
>
> The following code returns an empty string:
>     var enc:XMLEncoder = new XMLEncoder();
>     enc.encode("null");
> However, SchemaMarshaller.marshall() correctly returns the string "null".
> I believe the problems is that XML.appendChild for some reason treats the string "null"
differently. I have no idea why.
> If you're curious as to why I think this is a bug, see this StackOverflow question:
> http://stackoverflow.com/questions/4456438/how-can-i-pass-the-string-null-through-wsdl-soap-from-as3-to-coldfusion-web
> Finally, see this fiddle for examples:
> http://wonderfl.net/c/jYIm

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message