[ 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) && !((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