Hi Steve, thanks for bringing this to our attention. We've identified a problem on our end and we're in the process of correcting it. You're of course free to continue using an older version of the SDK, but newer versions are not susceptible to this problem.
Max On Tue, Feb 9, 2010 at 5:56 AM, Steve Shrader <[email protected]>wrote: > I have an application that has been deployed and running for several > months. Yesterday it began throwing the error java.lang.VerifyError. > No new deployments or changes in usage on my side. The code throwing > the error is in this method... > > /** > * Retrieve a list of Expense depending on the Dates and > Vendor passed in. There will be two > * execution paths because Vendor does not need to be passed > in as a filter. > */ > @SuppressWarnings("unchecked") //query is against > Expense.class so it will return List<Expense> > public List<steveshrader.budget.client.dto.Expense> > getExpenses(Date startDate, Date endDate, String vendor) { > List<steveshrader.budget.client.dto.Expense> > dtoExpenses = new ArrayList<steveshrader.budget.client.dto.Expense>(); > String userId = getUserId(); > if(userId != null) { > List<Expense> expenses = null; > > PersistenceManager pm = > PMF.get().getPersistenceManager(); > Query query = pm.newQuery(Expense.class); > query.declareImports("import java.util.Date"); > query.setOrdering("date asc"); > > String queryFilter = "userId == userIdParam && > date >= startDateParam && date <= endDateParam"; > > Map queryParameters = new HashMap(); > queryParameters.put("userIdParam", userId); > queryParameters.put("startDateParam", > startDate); > queryParameters.put("endDateParam", endDate); > > if(vendor != null && vendor.trim().length() > > 0) { //if a vendor passed in > queryFilter = queryFilter + " && > vendor == vendorParam"; > queryParameters.put("vendorParam", > vendor); > } > > query.setFilter(queryFilter); > expenses = (List<Expense>) > query.executeWithMap(queryParameters); > > for(Expense e : expenses) { > dtoExpenses.add(new > steveshrader.budget.client.dto.Expense(e.getId(), e.getDate(), > e.getAmount(), e.getVendor(), e.getExpenseType(), > e.getPaymentType())); > } > > pm.close(); > } > return dtoExpenses; > } > > The complete stack trace is... > > javax.servlet.ServletContext log: Exception while dispatching incoming > RPC call > com.google.gwt.user.server.rpc.UnexpectedException: Service method > 'public abstract java.util.List > > steveshrader.budget.client.BudgetService.getExpenses(java.util.Date,java.util.Date,java.lang.String)' > threw an unexpected exception: java.lang.VerifyError: org/datanucleus/ > store/appengine/query/StreamingQueryResult$1 > 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.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: > 97) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1084) > at > > com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: > 35) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1084) > 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.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: > 238) > 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.headerComplete(HttpConnection.java:830) > at > > com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: > 76) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) > at > > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: > 135) > at > com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: > 235) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:5485) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:5483) > at > > com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: > 24) > at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: > 363) > at com.google.net.rpc.impl.Server$2.run(Server.java:837) > at > com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: > 56) > at > > com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: > 536) > at com.google.net.rpc.impl.Server.startRpc(Server.java:792) > at com.google.net.rpc.impl.Server.processRequest(Server.java:367) > at > > com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: > 448) > at > com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java: > 319) > at > com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java: > 290) > at com.google.net.async.Connection.handleReadEvent(Connection.java: > 474) > at > > com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: > 774) > at > com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: > 205) > at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: > 101) > at > com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java: > 251) > at com.google.apphosting.runtime.JavaRuntime > $RpcRunnable.run(JavaRuntime.java:394) > at java.lang.Thread.run(Unknown Source) > Caused by: java.lang.VerifyError: org/datanucleus/store/appengine/ > query/StreamingQueryResult$1 > at > > org.datanucleus.store.appengine.query.StreamingQueryResult.listIterator(StreamingQueryResult.java: > 128) > at > > org.datanucleus.store.appengine.query.StreamingQueryResult.iterator(StreamingQueryResult.java: > 120) > at > > steveshrader.budget.server.BudgetServiceImpl.getExpenses(BudgetServiceImpl.java: > 189) > 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(Method.java:43) > at > com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java: > 527) > ... 45 more > > Thanks for any help! > Steve > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" 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-appengine-java?hl=en.
