java - Google App Engine Null Pointer Exception when trying to insert -
it seems if method endpoint class not beingness called none of print statements set in debug gave output
relevant code
accessing translogendpoint class
translogendpoint.builder builder = new translogendpoint.builder( androidhttp.newcompatibletransport(), new jacksonfactory(), null); builder = cloudendpointutils.updatebuilder(builder); translogendpoint endpoint = builder.build(); i ended hardcoding object wanted insert
translog t=new translog(); t.setid(33); t.setoperation("ins"); t.settable("hisone"); t.settranstime((long) 299221212); t.setacc("meh"); and tried insert such
try { endpoint.inserttranslog(t).execute(); } grab (ioexception e) { system.out.println("could not insert log"); // todo auto-generated grab block e.printstacktrace(); } this how endpoint method inserting translog looks did not alter of logic
@apimethod(name = "inserttranslog") public translog inserttranslog(translog translog) { system.out.println("i here"); key k=keyfactory.createkey("translog",translog.getid()); translog.setkey(k); entitymanager mgr = getentitymanager(); seek { if(containstranslog(translog)) { throw new entityexistsexception("object exists"); } mgr.persist(translog); } { mgr.close(); } homecoming translog; }
this app engine [web application console]
jun 21, 2014 2:03:15 pm com.google.api.server.spi.systemservice invokeservicemethod info: cause={0} java.lang.nullpointerexception @ org.datanucleus.api.jpa.jpaentitymanager.find(jpaentitymanager.java:318) @ org.datanucleus.api.jpa.jpaentitymanager.find(jpaentitymanager.java:256) @ com.example.agriexpensett.translogendpoint.containstranslog(translogendpoint.java:154) @ com.example.agriexpensett.translogendpoint.inserttranslog(translogendpoint.java:101) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source) @ java.lang.reflect.method.invoke(unknown source) @ com.google.api.server.spi.systemservice.invokeservicemethod(systemservice.java:359) @ com.google.api.server.spi.systemserviceservlet.execute(systemserviceservlet.java:127) @ com.google.api.server.spi.systemserviceservlet.dopost(systemserviceservlet.java:85) @ javax.servlet.http.httpservlet.service(httpservlet.java:637) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.mortbay.jetty.servlet.servletholder.handle(servletholder.java:511) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1166) @ com.google.appengine.api.socket.dev.devsocketfilter.dofilter(devsocketfilter.java:74) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.tools.development.responserewriterfilter.dofilter(responserewriterfilter.java:127) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.tools.development.headerverificationfilter.dofilter(headerverificationfilter.java:34) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.api.blobstore.dev.serveblobfilter.dofilter(serveblobfilter.java:63) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.apphosting.utils.servlet.transactioncleanupfilter.dofilter(transactioncleanupfilter.java:43) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.tools.development.staticfilefilter.dofilter(staticfilefilter.java:125) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.tools.development.devappservermodulesfilter.dodirectrequest(devappservermodulesfilter.java:366) @ com.google.appengine.tools.development.devappservermodulesfilter.dodirectmodulerequest(devappservermodulesfilter.java:349) @ com.google.appengine.tools.development.devappservermodulesfilter.dofilter(devappservermodulesfilter.java:116) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ org.mortbay.jetty.servlet.servlethandler.handle(servlethandler.java:388) @ org.mortbay.jetty.security.securityhandler.handle(securityhandler.java:216) @ org.mortbay.jetty.servlet.sessionhandler.handle(sessionhandler.java:182) @ org.mortbay.jetty.handler.contexthandler.handle(contexthandler.java:765) @ org.mortbay.jetty.webapp.webappcontext.handle(webappcontext.java:418) @ com.google.appengine.tools.development.devappenginewebappcontext.handle(devappenginewebappcontext.java:98) @ org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152) @ com.google.appengine.tools.development.jettycontainerservice$apiproxyhandler.handle(jettycontainerservice.java:491) @ org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152) @ org.mortbay.jetty.server.handle(server.java:326) @ org.mortbay.jetty.httpconnection.handlerequest(httpconnection.java:542) @ org.mortbay.jetty.httpconnection$requesthandler.content(httpconnection.java:938) @ org.mortbay.jetty.httpparser.parsenext(httpparser.java:755) @ org.mortbay.jetty.httpparser.parseavailable(httpparser.java:218) @ org.mortbay.jetty.httpconnection.handle(httpconnection.java:404) @ org.mortbay.io.nio.selectchannelendpoint.run(selectchannelendpoint.java:409) @ org.mortbay.thread.queuedthreadpool$poolthread.run(queuedthreadpool.java:582) and
jun 21, 2014 2:03:15 pm com.google.api.server.spi.systemservice invokeservicemethod severe: null java.lang.nullpointerexception @ org.datanucleus.api.jpa.jpaentitymanager.find(jpaentitymanager.java:318) @ org.datanucleus.api.jpa.jpaentitymanager.find(jpaentitymanager.java:256) @ com.example.agriexpensett.translogendpoint.containstranslog(translogendpoint.java:154) @ com.example.agriexpensett.translogendpoint.inserttranslog(translogendpoint.java:101) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source) @ java.lang.reflect.method.invoke(unknown source) @ com.google.api.server.spi.systemservice.invokeservicemethod(systemservice.java:359) @ com.google.api.server.spi.systemserviceservlet.execute(systemserviceservlet.java:127) @ com.google.api.server.spi.systemserviceservlet.dopost(systemserviceservlet.java:85) @ javax.servlet.http.httpservlet.service(httpservlet.java:637) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.mortbay.jetty.servlet.servletholder.handle(servletholder.java:511) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1166) @ com.google.appengine.api.socket.dev.devsocketfilter.dofilter(devsocketfilter.java:74) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.tools.development.responserewriterfilter.dofilter(responserewriterfilter.java:127) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.tools.development.headerverificationfilter.dofilter(headerverificationfilter.java:34) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.api.blobstore.dev.serveblobfilter.dofilter(serveblobfilter.java:63) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.apphosting.utils.servlet.transactioncleanupfilter.dofilter(transactioncleanupfilter.java:43) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.tools.development.staticfilefilter.dofilter(staticfilefilter.java:125) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ com.google.appengine.tools.development.devappservermodulesfilter.dodirectrequest(devappservermodulesfilter.java:366) @ com.google.appengine.tools.development.devappservermodulesfilter.dodirectmodulerequest(devappservermodulesfilter.java:349) @ com.google.appengine.tools.development.devappservermodulesfilter.dofilter(devappservermodulesfilter.java:116) @ org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1157) @ org.mortbay.jetty.servlet.servlethandler.handle(servlethandler.java:388) @ org.mortbay.jetty.security.securityhandler.handle(securityhandler.java:216) @ org.mortbay.jetty.servlet.sessionhandler.handle(sessionhandler.java:182) @ org.mortbay.jetty.handler.contexthandler.handle(contexthandler.java:765) @ org.mortbay.jetty.webapp.webappcontext.handle(webappcontext.java:418) @ com.google.appengine.tools.development.devappenginewebappcontext.handle(devappenginewebappcontext.java:98) @ org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152) @ com.google.appengine.tools.development.jettycontainerservice$apiproxyhandler.handle(jettycontainerservice.java:491) @ org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152) @ org.mortbay.jetty.server.handle(server.java:326) @ org.mortbay.jetty.httpconnection.handlerequest(httpconnection.java:542) @ org.mortbay.jetty.httpconnection$requesthandler.content(httpconnection.java:938) @ org.mortbay.jetty.httpparser.parsenext(httpparser.java:755) @ org.mortbay.jetty.httpparser.parseavailable(httpparser.java:218) @ org.mortbay.jetty.httpconnection.handle(httpconnection.java:404) @ org.mortbay.io.nio.selectchannelendpoint.run(selectchannelendpoint.java:409) @ org.mortbay.thread.queuedthreadpool$poolthread.run(queuedthreadpool.java:582)
your stacktrace says :
... @ com.example.agriexpensett.translogendpoint.containstranslog(translogendpoint.java:154) maybe issue because keyfactory.createkey homecoming null value, when come phone call containstranslog, method fire npe in containstranslog.
i able prepare kind of issue changing default generated "contains..." method. so, can seek alter containstranslog method take care of npe, adding check on key value :
@apimethod(name = "containstranslog") public boolean containstranslog(translog translog) { if(translog.getkey() ==null) homecoming false; entitymanager mgr = getentitymanager(); //... } you can check if value of "key k" null.
hope helps !
java android google-app-engine localhost google-cloud-endpoints
No comments:
Post a Comment