Sunday 15 May 2011

java - Vaadin NPE in ServerRpcHandler -



java - Vaadin NPE in ServerRpcHandler -

this week started using vaadin , has made big impression on me ever since. however, came accross problem not able resolve. made web application display contacts (stored in database) , display them in table.

since using hibernate, start off next lines of code:

jpacontainer<contact>contactcontainer = new jpacontainer<contact>(contact.class); cachingmutablelocalentityprovider<contact> entityprovider = new cachingmutablelocalentityprovider<contact>(contact.class, em); contactcontainer.setentityprovider(entityprovider); contactslist = new contactslist(contactcontainer);

as can see, pass container class called contactslist table etc. built:

table = new table(); table.setwidth(100, unit.percentage); table.addstylename(valotheme.table_borderless); table.addstylename(valotheme.table_compact); table.setselectable(true); table.setcolumncollapsingallowed(true); if(container != null) { table.setcontainerdatasource(this.container); table.setsortascending(true); table.setvisiblecolumns("firstname", "lastname", "telephonenr", "gsmnr", "creationdate"); table.setcolumnheaders(springutil.getmessage("label.contacts_firstname", null), springutil.getmessage("label.contacts_lastname", null), springutil.getmessage("label.contacts_telephone_nr", null), springutil.getmessage("label.contacts_gsm_nr", null), springutil.getmessage("label.contacts_creationdate", null)); } table.setmultiselect(true); table.setimmediate(true);

when comment out code, application runs without crashing (ofcourse not showing contacts table) when seek , compile code, while debugging works after table has been built npe thrown in class serverrpchandler on lines:

if (invocation instanceof serverrpcmethodinvocation) { seek { serverrpcmanager.applyinvocation(connector, (serverrpcmethodinvocation) invocation); } grab (rpcinvocationexception e) { manager.handleconnectorrelatedexception(connector, e); } } else {

the total stacktrace shown here:

severe: java.lang.nullpointerexception @ com.vaadin.addon.jpacontainer.provider.localentityprovider.getentitymanager(localentityprovider.java:215) @ com.vaadin.addon.jpacontainer.provider.localentityprovider.dogetentitymanager(localentityprovider.java:226) @ com.vaadin.addon.jpacontainer.provider.localentityprovider.dogetentitycount(localentityprovider.java:510) @ com.vaadin.addon.jpacontainer.provider.cachingsupport$filtercacheentry.getentitycount(cachingsupport.java:157) @ com.vaadin.addon.jpacontainer.provider.cachingsupport.getentitycount(cachingsupport.java:826) @ com.vaadin.addon.jpacontainer.provider.cachingmutablelocalentityprovider.getentitycount(cachingmutablelocalentityprovider.java:130) @ com.vaadin.addon.jpacontainer.jpacontainer.size(jpacontainer.java:912) @ com.vaadin.ui.abstractselect.size(abstractselect.java:762) @ com.vaadin.ui.table.refreshrenderedcells(table.java:1727) @ com.vaadin.ui.table.attach(table.java:4298) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.server.abstractclientconnector.attach(abstractclientconnector.java:590) @ com.vaadin.ui.abstractcomponent.attach(abstractcomponent.java:577) @ com.vaadin.ui.abstractcomponent.setparent(abstractcomponent.java:484) @ com.vaadin.ui.abstractcomponentcontainer.addcomponent(abstractcomponentcontainer.java:210) @ com.vaadin.ui.csslayout.addcomponent(csslayout.java:120) @ com.vaadin.navigator.navigator$componentcontainerviewdisplay.showview(navigator.java:191) @ com.vaadin.navigator.navigator.navigateto(navigator.java:568) @ com.vaadin.navigator.navigator.navigateto(navigator.java:526) @ be.cematech.dashboard.ui.dashboardmenu$valomenuitembutton$1.buttonclick(dashboardmenu.java:167) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ com.vaadin.event.listenermethod.receiveevent(listenermethod.java:508) @ com.vaadin.event.eventrouter.fireevent(eventrouter.java:198) @ com.vaadin.event.eventrouter.fireevent(eventrouter.java:161) @ com.vaadin.server.abstractclientconnector.fireevent(abstractclientconnector.java:977) @ com.vaadin.ui.button.fireclick(button.java:387) @ com.vaadin.ui.button$1.click(button.java:55) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ com.vaadin.server.serverrpcmanager.applyinvocation(serverrpcmanager.java:168) @ com.vaadin.server.serverrpcmanager.applyinvocation(serverrpcmanager.java:118) @ com.vaadin.server.communication.serverrpchandler.handleinvocations(serverrpchandler.java:290) @ com.vaadin.server.communication.serverrpchandler.handlerpc(serverrpchandler.java:183) @ com.vaadin.server.communication.uidlrequesthandler.synchronizedhandlerequest(uidlrequesthandler.java:92) @ com.vaadin.server.synchronizedrequesthandler.handlerequest(synchronizedrequesthandler.java:41) @ com.vaadin.server.vaadinservice.handlerequest(vaadinservice.java:1404) @ com.vaadin.server.vaadinservlet.service(vaadinservlet.java:305) @ javax.servlet.http.httpservlet.service(httpservlet.java:727) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:303) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:208) @ org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:52) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:241) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:208) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:220) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:122) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:503) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:170) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:103) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:950) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:116) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:421) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1070) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:611) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:316) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61) @ java.lang.thread.run(thread.java:745)

update

what might useful know utilize contactlist on different page have exact same lines of code able show table. have of having 2 entitymanagers and/or entityproviders accessing same data??

update2

@persistencecontext protected entitymanager em;

as per update2 saw retrive @ runtime entitymanager annotation "@persistencecontext". works out if using in "cdi bean, ejb, servlet, servlet listener, servlet filter, or jsf managedbean" ( http://tomee.apache.org/examples-trunk/injection-of-entitymanager/readme.html ) guess on "other page" in right context annotation works, while in "this" page not. check , if it's case i'd suggest manually instantiate entitymanager example

jpacontainerfactory.make(contact.class, "persistence_unit_name");

if have/use persistence.xml file in project. otherwise way custom create entitymanagerfactory like

persistence.createentitymanagerfactory( "persistence_unit_name", properties ).createentitymanager()

where properties map of persistence properties

map<string, string> properties = new hashmap<string, string>(); properties.put(jdbc_driver, this.jdbcdriver); properties.put(jdbc_url, this.url); properties.put(jdbc_user, this.username); properties.put(jdbc_password, this.password); // configure logging. fine ensures sql shown properties.put(logging_level, "fine"); homecoming properties;

the perk of entitymanager can have ready whenever in app. cheers.

java nullpointerexception vaadin

No comments:

Post a Comment