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 google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to