[ https://issues.apache.org/jira/browse/CXF-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Colm O hEigeartaigh closed CXF-7966. ------------------------------------ > Beanspector throws IllegalArgumentException when dealing with overridden > methods > -------------------------------------------------------------------------------- > > Key: CXF-7966 > URL: https://issues.apache.org/jira/browse/CXF-7966 > Project: CXF > Issue Type: Improvement > Affects Versions: 3.2.9, 3.3.2 > Reporter: matteo rulli > Priority: Major > Fix For: 3.2.10, 3.3.3 > > Time Spent: 20m > Remaining Estimate: 0h > > Let's consider the following pojos: > {code:java} > public class A { > private String value; > public String getValue()\{ ... } > public void setValue(String value) \{ ... } > } > public class B { > > private A aValue; > public A getAValue()\{ ... } > public void setAValue(A avalue) \{ ... } > } > {code} > And assume one extends these pojos and decorates them with JPA annotations. > To leverage CXF org.apache.cxf.jaxrs.ext.search.SearchContext and > JPACriteriaQueryVisitor as explained in the docs > ([http://cxf.apache.org/docs/jax-rs-search.html#JAX-RSSearch-JPA2.0]) and > perform searches like > {code:java} > _s=aValue==*search token* {code} > in OpenJPA one has to override the EntityB.getAValue as follows: > {code:java} > @Entity > // ... other JPA annotations are omitted > public class EntityB extends B { > > @Override > // We need to specialize return type to EntityA to make SearchContext > work > public EntityA getAValue()\{ ... } > // This method definition is needed to avoid java.lang.VerifyError > from JPA provider > public void setAValue(EntityA avalue) \{ ... } > } > {code} > But with this scenario, the current implementation of > org.apache.cxf.jaxrs.ext.search.Beanspector<T> fails, throwing > IllegalArgumentException: Accessor 'aValue' type mismatch, getter type is X > while setter type is Y, X and Y depending on the order of the EntityB's > methods as returned by the Class.getMethods(). -- This message was sent by Atlassian JIRA (v7.6.14#76016)