[
https://issues.apache.org/jira/browse/FLEX-33500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13672901#comment-13672901
]
Maurits Lourens commented on FLEX-33500:
----------------------------------------
Thanks for the link, I can now at least test our software before the release of
4.10.0. Do you now when the release is planned?
> XMLEncoder fails to encode WSDL simpleType union
> ------------------------------------------------
>
> Key: FLEX-33500
> URL: https://issues.apache.org/jira/browse/FLEX-33500
> Project: Apache Flex
> Issue Type: Bug
> Components: RPC: General, RPC: WebService
> Affects Versions: Adobe Flex SDK 3.3 (Release)
> Reporter: Maurits Lourens
> Assignee: Justin Mclean
> Labels: easyfix
>
> The XMLEncoder can not encode simpleTypes with a definitionChild Union.
> Steps to reproduce:
> 1. Create a WSDL with a request containing a simpleType, with a union child,
> like this:
> <simpleType name="dateTimeOrEmpty">
> <union memberTypes="dateTime tns:emptyString"/>
> </simpleType>
> 2. Create a sample project which uses this call to do send a date to the
> server.
> Expected behavior: the dateTime should be send to the server.
> Actual behavior: the dateTime object is always empty (not nill).
> The cause of this bug can be found inside the XMLEncoder. Around line 1340
> you will find the function encodeSimpleType:
> public function encodeSimpleType(definition:XML, parent:XML, name:QName,
> value:*, restriction:XML = null):void
> {
> var definitionChild:XML = getSingleElementFromNode(definition,
> constants.restrictionQName,
> constants.listQName,
> constants.unionQName);
> if (definitionChild.name() == constants.restrictionQName)
> {
> // <restriction>
> encodeSimpleRestriction(definitionChild, parent, name, value);
> }
> else if (definitionChild.name() == constants.listQName)
> {
> // <list>
> encodeSimpleList(definitionChild, parent, name, value,
> restriction);
> }
> else if (definitionChild.name() == constants.listQName)
> {
> // <union>
> encodeSimpleUnion(definitionChild, parent, name, value,
> restriction);
> }
> }
> If you look at this function, you see that the last else if statement is
> exactly the same as the previous, so you will never execute the code inside
> this statement, which is needed to encode union simpleTypes. To fix this, you
> should change it to something like this:
> else if (definitionChild.name() == constants.unionQName)
> {
> // <union>
> encodeSimpleUnion(definitionChild, parent, name, value, restriction);
> }
--
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