mugathur
unread,Jul 14, 2009, 8:36:36 AM7/14/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Google Web Toolkit
I'm experiencing a strange set of behaviors and was wondering if
anyone had any ideas. I'm using the datastore to write out some user
data. When it's hosted on the actual app engine, everything works
just fine. However, when I run in hosted mode on my local machine,
the first time a query is made, it produces errors. The second time
is fine. So for every new query I make, if the inputs have been
queried before, it's fine, but if it's a new query, the first time,
it'll produce the following errors:
Jul 14, 2009 1:30:43 PM
com.google.appengine.tools.development.ApiProxyLocalImpl log
SEVERE: [1247574643932000] javax.servlet.ServletContext log: Exception
while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method
'public abstract com.hashbangtv.client.UserData
com.hashbangtv.client.UserService.AddUser
(com.hashbangtv.client.UserData)' threw an unexpected exception:
java.lang.NullPointerException: Name is null
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure
(RPC.java:360)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
(RPC.java:546)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
(RemoteServiceServlet.java:166)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1093)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
(DevAppEngineWebAppContext.java:54)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:306)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection$RequestHandler.content
(HttpConnection.java:844)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run
(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run
(BoundedThreadPool.java:442)
Caused by: java.lang.NullPointerException: Name is null
at java.lang.Enum.valueOf(Unknown Source)
at com.google.appengine.api.datastore.dev.CompositeIndexManager
$IndexSource.valueOf(CompositeIndexManager.java:64)
at com.google.appengine.api.datastore.dev.CompositeIndexManager
$1.apply(CompositeIndexManager.java:154)
at com.google.appengine.api.datastore.dev.CompositeIndexManager
$1.apply(CompositeIndexManager.java:152)
at
com.google.appengine.api.datastore.dev.CompositeIndexManager.extractIndices
(CompositeIndexManager.java:459)
at
com.google.appengine.api.datastore.dev.CompositeIndexManager.updateIndexFile
(CompositeIndexManager.java:389)
at
com.google.appengine.api.datastore.dev.CompositeIndexManager.manageIndexFile
(CompositeIndexManager.java:375)
at
com.google.appengine.api.datastore.dev.CompositeIndexManager.processQuery
(CompositeIndexManager.java:205)
at com.google.appengine.api.datastore.dev.LocalDatastoreService$5.run
(LocalDatastoreService.java:687)
at java.security.AccessController.doPrivileged(Native Method)
at
com.google.appengine.api.datastore.dev.LocalDatastoreService.runQuery
(LocalDatastoreService.java:685)
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.google.appengine.tools.development.ApiProxyLocalImpl.makeSyncCall
(ApiProxyLocalImpl.java:97)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:72)
at com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall
(DatastoreApiHelper.java:47)
at com.google.appengine.api.datastore.DatastoreServiceImpl
$PreparedQueryImpl.runQuery(DatastoreServiceImpl.java:310)
at com.google.appengine.api.datastore.DatastoreServiceImpl
$PreparedQueryImpl.access$100(DatastoreServiceImpl.java:240)
at com.google.appengine.api.datastore.DatastoreServiceImpl
$PreparedQueryImpl$1.iterator(DatastoreServiceImpl.java:269)
at
org.datanucleus.store.appengine.query.RuntimeExceptionWrappingIterable.iterator
(RuntimeExceptionWrappingIterable.java:42)
at org.datanucleus.store.appengine.query.StreamingQueryResult.<init>
(StreamingQueryResult.java:71)
at
org.datanucleus.store.appengine.query.DatastoreQuery.newStreamingQueryResultForEntities
(DatastoreQuery.java:268)
at
org.datanucleus.store.appengine.query.DatastoreQuery.fulfillEntityQuery
(DatastoreQuery.java:263)
at org.datanucleus.store.appengine.query.DatastoreQuery.performExecute
(DatastoreQuery.java:227)
at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute
(JDOQLQuery.java:85)
at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute
(JDOQLQuery.java:31)
at org.datanucleus.store.query.Query.executeQuery(Query.java:1466)
at org.datanucleus.store.query.Query.executeWithArray(Query.java:
1340)
at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:240)
at com.hashbangtv.server.UserServiceImpl.AddUser(UserServiceImpl.java:
72)
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.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
(RPC.java:527)
... 25 more
The code I'm running is pretty straight forward:
PersistenceManager persistence_manager =
m_Factory.getPersistenceManager();
try
{
Query q = persistence_manager.newQuery(UserData.class,
"m_DisplayName == user_name");
q.declareParameters("String user_name");
Object result = q.execute(user_data.GetDisplayName());
}
finally
{
persistence_manager.close();
}
Does anyone have any insight on what's going on? It says there's a
null pointer exception very deep in code, but I don't think I have the
source for it. Thanks in advance. The two things that are throwing
me off are:
1. It only happens locally.
2. It only happens the first time for a given set of inputs.
-moo