[appengine-java] java.lang.VerifyError when using Eclipse, locally testing servlets, integrating Wave and Visualization

2010-06-24 Thread Paul Gestwicki
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

2010-04-04 Thread Shyam Visamsetty
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

2010-02-09 Thread Max Ross (Google)
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

2010-02-09 Thread Steve Shrader
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