[appengine-java] java.lang.VerifyError when using Eclipse, locally testing servlets, integrating Wave and Visualization
I encountered something very strange, and I cannot find mention of it on this group or elsewhere. Here is the stack trace: java.lang.VerifyError: (class: org/datanucleus/TransactionImpl, method: internalPreRollback signature: ()V) Accessing value from uninitialized register 5 at org.datanucleus.ObjectManagerImpl.(ObjectManagerImpl.java: 283) at org.datanucleus.jdo.JDOPersistenceManager.(JDOPersistenceManager.java: 132) at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager.(DatastoreJDOPersistenceManager.java: 42) at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory.newPM(DatastoreJDOPersistenceManagerFactory.java: 77) at org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManager(JDOPersistenceManagerFactory.java: 578) at org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManager(JDOPersistenceManagerFactory.java: 557) at edu.bsu.wtw.DataTableServlet.generateDataTable(DataTableServlet.java: 144) at com.google.visualization.datasource.DataSourceHelper.executeDataSourceServletFlow(Unknown Source) at edu.bsu.wtw.DataTableServlet.doGet(DataTableServlet.java:103) at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 511) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java: 51) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 43) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java: 122) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: 216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 418) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java: 70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 152) at com.google.appengine.tools.development.JettyContainerService $ApiProxyHandler.handle(JettyContainerService.java:349) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 542) at org.mortbay.jetty.HttpConnection $RequestHandler.headerComplete(HttpConnection.java:923) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java: 409) at org.mortbay.thread.QueuedThreadPool $PoolThread.run(QueuedThreadPool.java:582) Here is my situation: I am developing servlets in Java using the Google Plugin and Eclipse. My specific project involves combining app engine, Google Wave, and Google's visualization tools. I have set up a nice unit testing environment, and since my unit tests kept passing, I worked for quite some time without ever running the app locally and doing any manual testing. My local unit tests are based on the App Engine local unit testing approach documented in the dev guide. When I finally got around to doing some manual testing, I received this strange stack trace. My code is in edu.bsu.wtw, and the specific position in the call to generateDataTable is simply getting the persistence manager in the usual way: PersistenceManager pm = PMF.get().getPersistenceManager(); I can replicate this error by entering my system a different way. If I fake a Wave JSON message to my Wave Robot servlet, I get an almost identical stack trace: java.lang.VerifyError: (class: org/datanucleus/TransactionImpl, method: internalPreRollback signature: ()V) Accessing value from uninitialized register 5 at org.datanucleus.ObjectManagerImpl.(ObjectManagerImpl.java: 283) at org.datanucleus.jdo.JDOPersistenceManager.(JDOPersistenceManager.java: 132) at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager.(DatastoreJDOPersis
[appengine-java] java.lang.VerifyError
Hi, I am getting the following java.lang.VerifyError when loading a GWT Module. I am using GWT 2.0.2 and AppEngine 1.2.1. The stack trace of the error is as follows. 10:58:38.406 [ERROR] [sensormss] Unable to load module entry point class com.sensorms.client.Sensormss (see associated exception for details) java.lang.VerifyError: (class: com/google/gwt/core/client/Scheduler, method: signature: ()V) Illegal constant pool index at com.google.gwt.user.client.ui.LayoutCommand.schedule(LayoutCommand.java: 104) at com.google.gwt.user.client.ui.LayoutPanel.animate(LayoutPanel.java: 141) at com.google.gwt.user.client.ui.LayoutPanel.animate(LayoutPanel.java: 137) at com.google.gwt.user.client.ui.LayoutPanel.insert(LayoutPanel.java:196) at com.google.gwt.user.client.ui.LayoutPanel.add(LayoutPanel.java: 133) at com.google.gwt.user.client.ui.TabLayoutPanel.(TabLayoutPanel.java: 160) at com.sensorms.client.Sensormss.onModuleLoad(Sensormss.java:45) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java:585) at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java: 369) at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java: 185) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java: 380) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java: 222) at java.lang.Thread.run(Thread.java:595) I get this only when I use any of the Layout Panel stuff. This code caused this error to occur. It was taken from the TabLayoutPanel Javadoc example. TabLayoutPanel p = new TabLayoutPanel(1.5, Unit.EM); p.add(new HTML("this"), "[this]"); p.add(new HTML("that"), "[that]"); p.add(new HTML("the other"), "[the other]"); RootLayoutPanel rp = RootLayoutPanel.get(); rp.add(p); Kindly let me know what causes the error. Even the Appengine SDK 1.3.1 causes this error. Any help/suggestions are appreciated. Thanks in Advance. Regards, Shyam Visamsetty. -- 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.
Re: [appengine-java] java.lang.VerifyError
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 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 >public List > getExpenses(Date startDate, Date endDate, String vendor) { >List > dtoExpenses = new ArrayList(); >String userId = getUserId(); >if(userId != null) { >List 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) > 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.
[appengine-java] java.lang.VerifyError
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 public List getExpenses(Date startDate, Date endDate, String vendor) { List dtoExpenses = new ArrayList(); String userId = getUserId(); if(userId != null) { List 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) 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.j