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

Cleber Zarate updated AXIS2-5273:
---------------------------------

    Attachment: favoriteCharacters_service_original_enumeration_values.zip
                favoriteCharacters_service_new_enumeration_value.zip
                favoriteCharacters_client_beforePatch.zip
                favoriteCharacters_client_afterPatch.zip

file favoriteCharacters_service_original_enumeration_values.zip contains a 
simple service that exposes a method that returns an enumeration with 4 values. 
favoriteCharacters_service_new_enumeration_value.zip is a newer version of the 
previous service, which happens to add a new value in the enumeration (now 5 
values total).
File favoriteCharacters_client_beforePatch.zip contains a client project 
generated against the original service WSDL (containing 4 values). When pointed 
to the new service, an IllegalArgumentException is thrown.
File favoriteCharacters_client_afterPatch.zip contains the same client project 
generated against the original service WSDL (4 values), however because of the 
patch, it won't throw any exceptions when pointing to the new service.
The binding will return null when it encounters the unexpected new enumeration 
value.
                
> Allow forward-compatibility by ignoring unexpected enumeration values
> ---------------------------------------------------------------------
>
>                 Key: AXIS2-5273
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5273
>             Project: Axis2
>          Issue Type: Bug
>          Components: adb, codegen
>    Affects Versions: 1.7.0
>            Reporter: Cleber Zarate
>            Priority: Minor
>              Labels: adb, adb-codegen, enumeration, restriction
>         Attachments: favoriteCharacters_client_afterPatch.zip, 
> favoriteCharacters_client_beforePatch.zip, 
> favoriteCharacters_service_new_enumeration_value.zip, 
> favoriteCharacters_service_original_enumeration_values.zip, patch.txt
>
>
> [AXIS2-4859] has been patched adding the -Eiu option to ignore unexpected 
> elements. However, to truly be forward-compatible, generated code should also 
> ignore unexpected enumeration values.
> Here's the snippet necessary for the adb code generation. I opted to return 
> null when an unexpected enumeration is found, as opposed to skip it:
> ADBBeanTemplate-bean.xsl line 2135:
>                     // handle unexpected enumeration values properly
>                     <xsl:if test="$ignoreunexpected">
>                         log.warn("Unexpected value " + value + " for 
> enumeration <xsl:value-of select="$name"/>");
>                         return enumeration;
>                     </xsl:if>
>                     <xsl:if test="not($ignoreunexpected)">
>                         if ((enumeration == null) &amp;&amp; !((value == 
> null) || (value.equals("")))) {
>                             throw new java.lang.IllegalArgumentException();
>                         }
>                         return enumeration;
>                     </xsl:if>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to