Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
FieldGroup$BindException: Cannot bind property id
Hi,
I search and try other ways to do it but I can´t.
my pojo :
private BigDecimal idUsuario = BigDecimal.ZERO;
...
my class:
...
txtID = new TextField("Código", "");
txtID.setWidth(100.0f, Unit.PERCENTAGE);
//txtID.setNullRepresentation("0");
//here I try it
txtID.setConverter((Converter<String, BigDecimal>) new BigDecimalStringConverter());
//try https://vaadin.com/forum#!/thread/2583480/2621700
txtID.setNullSettingAllowed(false);
NumberFormat nf = DecimalFormat.getNumberInstance(getLocale());
txtID.setNullRepresentation(nf.format(BigDecimal.ZERO));
..
button.click ()
//new user
...
Usuario usuario = new Usuario();
try {
PropertysetItem item = new BeanItem<Usuario>(usuario);
FieldGroup binder = new FieldGroup(item);
} catch (Exception e){
e.printStackTrace();
} finally {
binder.bind(txtID, "idUsuario"); // ERROR GOES HERE ;
}
ERROR:
com.vaadin.data.fieldgroup.FieldGroup$BindException: Cannot bind property id 'idUsuario' to a null field.
at com.vaadin.data.fieldgroup.FieldGroup.throwIfFieldIsNull(FieldGroup.java:292)
at com.vaadin.data.fieldgroup.FieldGroup.bind(FieldGroup.java:253)
at com.ebfvaz.comercial.view.UsuarioCad.changeBind(UsuarioCad.java:483)
at com.ebfvaz.comercial.view.UsuarioCad.access$1(UsuarioCad.java:474)
at com.ebfvaz.comercial.view.UsuarioCad$2.buttonClick(UsuarioCad.java:215)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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:995)
at com.vaadin.ui.Button.fireClick(Button.java:393)
at com.vaadin.ui.Button$1.click(Button.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:313)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:202)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:95)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
I made some changes and it works ,
#1 -
txtID = new TextField("Código", "");
Changed to
txtID = new TextField("Código",item.getItemProperty("idUsuario"));
#2 -
try {
PropertysetItem item = new BeanItem<Usuario>(usuario);
FieldGroup binder = new FieldGroup(item);
} catch (Exception e){
e.printStackTrace();
} finally {
binder.bind(txtID, "idUsuario"); // ERROR GOES HERE ;
}
Changed to
BeanFieldGroup<Usuario> binder = new BeanFieldGroup<Usuario>(Usuario.class);
binder.setBuffered(false);
item = new BeanItem<Usuario>(usuario);
binder.setItemDataSource(item);
#3 -
BeanItem<Usuario> item = new BeanItem<Usuario>(usuario);