[ http://jira.codehaus.org/browse/XFIRE-786?page=comments#action_81543 ] Andrew Kerr commented on XFIRE-786: -----------------------------------
Note that the above only fixes the WSDL. The SOAP response still duplicates the property, so a similar fix has to be added to the BeanType.writeObject() method. > POJO Properties can be duplicated in WSDL if abstract method is overridden > -------------------------------------------------------------------------- > > Key: XFIRE-786 > URL: http://jira.codehaus.org/browse/XFIRE-786 > Project: XFire > Issue Type: Bug > Components: Aegis Module > Affects Versions: 1.2.3 > Reporter: Andrew Kerr > Assigned To: Dan Diephouse > Priority: Minor > > Consider the following example: > public class A > { > public abstract String getSomething(); > } > public class B > { > public String getSomething() { return "whatever"; } > } > If this class is used in a web service that has overrideTypesList configured, > etc., the WSDL generated by XFire will include the "something" property > twice; once in class A's definition, and once in class B's. > The problem is with this code in > org.codehaus.xfire.aegis.type.basic.BeanType.writeSchema: > if (pd.getReadMethod().getDeclaringClass() != > info.getTypeClass()) > { > continue; > } > > getDeclaringClass() returns A when called on class A, and B on class B, so > the property is repeated in both definitions. > As a stopgap, I added the following code directly after: > // Comparing against the read method's declaring class > // isn't always enough. For example, we could be overriding > // an abstract method in the superclass. > try > { > > info.getTypeClass().getSuperclass().getMethod(pd.getReadMethod().getName(), > pd.getReadMethod().getParameterTypes()); > log.debug("Method already exists in superclass!"); > continue; > } > catch (NoSuchMethodException e) > { > // This is ok... > } > Note that there may be a better way to do this, but I couldn't find anything > in the reflection API... -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email
