Hello,
I have a bean, that one property is an interface without any method:
public class Security {
<some common properties>
private SecurityTail tail;
<getters an setters>
public SecurityTail getTail() {
return tail;
}
public void setTail(SecurityTail tail) {
this.tail = tail;
}
}
[code]
public interface SecurityTail {}
[/code]I display the beans in tables with AbstractBeanContainer. I have the main table with all security types and it works fine. But I would like to display other table with specified kind of security, ie. in each table the
tail
property would be of the same (not abstact type). Is it possible?
Now when trying to add property
tail.effectiveDate
I get an exception:
java.lang.IllegalArgumentException: Bean property 'effectiveDate' not found
at com.vaadin.data.util.NestedMethodProperty.initialize(NestedMethodProperty.java:146)
at com.vaadin.data.util.NestedMethodProperty.<init>(NestedMethodProperty.java:106)
at com.vaadin.data.util.NestedPropertyDescriptor.<init>(NestedPropertyDescriptor.java:52)
at com.vaadin.data.util.AbstractBeanContainer.addNestedContainerProperty(AbstractBeanContainer.java:853)
at cz.px.iis.ng.ui.view.PxTableViewRoot.init(PxTableViewRoot.java:542)
at cz.pse.agata.commons.ui.view.PxTabWithTableAndMenuWithBasicOperations.init(PxTabWithTableAndMenuWithBasicOperations.java:175)
at cz.px.iis.ng.ui.view.PxTableViewRoot.attach(PxTableViewRoot.java:980)
at com.vaadin.ui.AbstractComponent.setParent(AbstractComponent.java:484)
at com.vaadin.ui.AbstractComponentContainer.addComponent(AbstractComponentContainer.java:210)
at com.vaadin.ui.TabSheet.addTab(TabSheet.java:342)
at com.vaadin.ui.TabSheet.addTab(TabSheet.java:378)
at com.vaadin.ui.TabSheet.addTab(TabSheet.java:359)
at cz.px.iis.ng.ui.PxUI.addTab(PxUI.java:146)
at cz.pse.agata.commons.CommonUI.addPxTab(CommonUI.java:368)
at cz.pse.cp.ui.view.SecuritiesView.lambda$3(SecuritiesView.java:187)
at cz.pse.cp.ui.view.SecuritiesView$$Lambda$9/1079210580.execute(Unknown Source)
at cz.px.iis.ng.ui.menu.PxActionFactory$PxAction$1.buttonClick(PxActionFactory.java:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:979)
at com.vaadin.ui.Button.fireClick(Button.java:393)
at com.vaadin.ui.Button$1.click(Button.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:287)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:180)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:93)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1406)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:305)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:611)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoSuchMethodException: cz.pse.agata.commons.dto.SecurityTail.areEffectiveDate()
at java.lang.Class.getMethod(Class.java:1773)
at com.vaadin.data.util.MethodProperty.initGetterMethod(MethodProperty.java:547)
at com.vaadin.data.util.NestedMethodProperty.initialize(NestedMethodProperty.java:141)
... 55 more
even thought this concrete tail has method
getEffectiveDate().