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

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to