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.

TUTORIALVaadin lets you build secure, UX-first PWAs entirely in Java.
Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Calling javascript synchronously by Enver Haase, 2 weeks ago
NullPointerException from MultiSelectConverter for TwinColSelect
We have a problem using a JPAContainer in a TwinColSelect. We added a MultiSelectConverter to Convert the values of the TwinColSelect and get the following Exception:
Aug 12, 2015 8:11:17 AM com.vaadin.server.DefaultErrorHandler doDefault
SCHWERWIEGEND:
java.lang.NullPointerException
at com.vaadin.addon.jpacontainer.fieldfactory.MultiSelectConverter.getModelType(MultiSelectConverter.java:220)
at com.vaadin.ui.AbstractField.getModelType(AbstractField.java:771)
at com.vaadin.ui.AbstractField.validate(AbstractField.java:956)
at com.vaadin.ui.AbstractField.validate(AbstractField.java:934)
at com.vaadin.ui.AbstractField.getErrorMessage(AbstractField.java:1043)
at com.vaadin.ui.AbstractComponent.beforeClientResponse(AbstractComponent.java:721)
at com.vaadin.ui.AbstractField.beforeClientResponse(AbstractField.java:1706)
at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:98)
at com.vaadin.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:149)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:98)
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:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:95)
at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at de.vbg.util.LazyHibernateServletFilter.doFilter(LazyHibernateServletFilter.java:30)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
The TwinColSelect:
@PropertyId("beteilfachb")
private TwinColSelect twinBeteilFachb;
twinBeteilFachb = new TwinColSelect(Messages.getString("DetailView.beteilfachb.caption")); //$NON-NLS-1$
twinBeteilFachb.setDescription(Messages.getString("DetailView.beteilfachb.description")); //$NON-NLS-1$
twinBeteilFachb.setContainerDataSource(fachbereichContainer_BeteilFachb);
twinBeteilFachb.setItemCaptionPropertyId("wert"); //$NON-NLS-1$
twinBeteilFachb.setItemCaptionMode(ItemCaptionMode.PROPERTY);
twinBeteilFachb.setRows(fachbereichContainer_BeteilFachb.size());
twinBeteilFachb.setLeftColumnCaption("Fachbereich:"); //$NON-NLS-1$
twinBeteilFachb.setRightColumnCaption("Auswahl:"); //$NON-NLS-1$
twinBeteilFachb[b].setConverter(new MultiSelectConverter(twinBeteilFachb));[/b]
The JPAContainer is filled with KeyValues of Typ Fachbereich :
JPAContainer<Fachbereich> fachbereichContainer_BeteilFachb = dataProvider.getFachbereich();
Fachbereich looks like these:
@Entity
public class Fachbereich implements Serializable {
private static final long serialVersionUID = 4569974101928571427L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
int id;
@Column(length = 50)
private String wert;
@ManyToMany(mappedBy = "beteilfachb")
private final Set<Steckbrief> steckbriefe_beteilfachb = new HashSet<>();
@OneToMany(mappedBy = "fachbereich")
private Set<User> users;
@OneToMany(mappedBy = "fachb")
private final Set<Steckbrief> steckbriefe_fachb = new HashSet<>();
public Fachbereich() {
super();
}
public Fachbereich(String wert) {
super();
this.wert = wert;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getWert() {
return wert;
}
public void setWert(String wert) {
this.wert = wert;
}
public static Object[] getFieldNames() {
return new Object[] { "id", "wert" };
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}
Could anyone help?
PS: The SingleSelectConverter for SingleSelects works fine...but we nedd MultiSelect
Last updated on
You cannot reply to this thread.