[ https://issues.apache.org/jira/browse/TAP5-1480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thiago H. de Paula Figueiredo resolved TAP5-1480. ------------------------------------------------- Resolution: Fixed Fix Version/s: 5.4 I just added the test. The issue itself was resolved already. > Couldn't create property conduits for generic interfaces > -------------------------------------------------------- > > Key: TAP5-1480 > URL: https://issues.apache.org/jira/browse/TAP5-1480 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-ioc > Affects Versions: 5.2 > Reporter: Ivan Khalopik > Assignee: Thiago H. de Paula Figueiredo > Labels: generics > Fix For: 5.4 > > > Couldn't create property conduits for generic interfaces. > public class TestTapestry { > @Test > public void test() { > final PropertyAccess access = new PropertyAccessImpl(); > final ClassPropertyAdapter adapter = access.getAdapter(NamedEntity.class); > } > public static interface Entity<T extends Serializable> { > T getId(); > } > public static interface NamedEntity extends Entity<Long> { > String getName(); > } > } > This test will throw an exception: > Caused by: java.lang.NullPointerException > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualType(GenericsUtils.java:143) > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractActualTypeAsClass(GenericsUtils.java:174) > at > org.apache.tapestry5.ioc.internal.util.GenericsUtils.extractGenericReturnType(GenericsUtils.java:40) > at > org.apache.tapestry5.ioc.internal.services.ClassPropertyAdapterImpl.<init>(ClassPropertyAdapterImpl.java:50) > at > org.apache.tapestry5.ioc.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:99) > ... 33 more > It is thrown because of this lines (GenericsUtils:140-143) > final Class descendantClass = asClass(descendant); > final ParameterizedType parameterizedType = (ParameterizedType) > descendantClass.getGenericSuperclass(); > extractedType = > parameterizedType.getActualTypeArguments()[typeArgumentIndex]; > It gets generic superclass, but it is null, there are only interfaces. > So it makes impossible to create property bindings for such beans. -- This message was sent by Atlassian JIRA (v6.2#6252)