conversion error on Google visualization java

77 views
Skip to first unread message

P G

unread,
Oct 13, 2011, 5:28:18 AM10/13/11
to Google Visualization API
Hi,

I am new to this google visualization api. I am trying to create
datatable from java backend and javascript will create chart for me
using google visualization javascript API.
Java code -
while (itr.hasNext()) {
DatamartPrice priceObj = (DatamartPrice) itr.next();
TableRow row = new TableRow();
row.addCell(priceObj.getValueDate().toString());
row.addCell(priceObj.getValue());
chartDataTable.addRow(row);
}

Jar files in classpath are - visualization-datasource-1.1.1.jar and
google-collections-1.0-rc4.jar

Exception is thorwn on line chartDataTable.addRow(row);

java.lang.NoSuchMethodError:
com.google.common.collect.ImmutableList.copyOf(Ljava/util/
Collection;)Lcom/google/common/collect/ImmutableList;
at
com.google.visualization.datasource.datatable.TableRow.getCells(Unknown
Source)
at
com.google.visualization.datasource.datatable.DataTable.addRow(Unknown
Source)
at
com.jpmorgan.research.cfp.datamart.DatamartUtil.getDatamartPriceDataForGraph(DatamartUtil.java:
49)
at
com.jpmorgan.research.cfp.servlets.PerformanceChartServlet.doGet(PerformanceChartServlet.java:
57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
291)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
859)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
489)
at java.lang.Thread.run(Thread.java:619)


Can someone help me to resolve this issue?

Thanks,
PG

Riccardo Govoni ☢

unread,
Oct 13, 2011, 11:43:56 AM10/13/11
to google-visua...@googlegroups.com
My best guess is that the version of google collections you are using (google-collections-1.0-rc4.jar) is old and did not yet include the method (com.google.common.collect.ImmutableList.copyOf(Ljava/util/Collection;) )  that TableRow.getCells() tries to invoke (as you can see from the stack trace).

Upgrading your collections library (see http://code.google.com/p/guava-libraries/ , which supersedes google-collections) should fix it. 

If you can't do so, you may try recompiling the google-visualization-java sources against you're current google-collections jar. This might fail for other reasons (the visualization library depending on other classes/methods not present in your jar), but the specific exception you mention should go away because the overloaded use ImmutableList.copyOf() should resolve against ImmutableList.copyOf(Ljava/lang/Iterable;), which exists in your google-collections jar.

-- R.


--
You received this message because you are subscribed to the Google Groups "Google Visualization API" group.
To post to this group, send email to google-visua...@googlegroups.com.
To unsubscribe from this group, send email to google-visualizati...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-visualization-api?hl=en.


Mukesh Joshi

unread,
Aug 19, 2013, 11:00:39 AM8/19/13
to google-visua...@googlegroups.com
I am also new to google visualization api and appengine. My issue is that I have a working chart page in the local environment but when I deploy it to appengine I am getting this error:

java.lang.NoSuchMethodError: com.google.common.collect.ImmutableList.copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;

I had the same error before copying the guava and guava JWT jar to the .../eclipse/plugins/com.google.appengine.eclipse.sdkbundle_1.8.3/appengine-java-sdk-1.8.3/lib/impl

How can I include the guava jars on the appengine ?

Thanks in advance for your help.

Mukesh Joshi

unread,
Aug 19, 2013, 11:11:03 AM8/19/13
to google-visua...@googlegroups.com
Also, wanted to share that I am using Cloud SQL with Appengine and GWT.

The error stack from the appengine logs:

Error for /oldv2reports/getData
java.lang.NoSuchMethodError: com.google.common.collect.ImmutableList.copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;
	at com.google.visualization.datasource.query.QuerySelection.getColumns(Unknown Source)
	at com.google.visualization.datasource.query.Query.validate(Unknown Source)
	at com.google.visualization.datasource.query.parser.QueryBuilder.parseQuery(Unknown Source)
	at com.google.visualization.datasource.DataSourceHelper.parseQuery(Unknown Source)
	at com.google.visualization.datasource.DataSourceHelper.parseQuery(Unknown Source)
	at com.google.visualization.datasource.DataSourceRequest.createQueryFromRequest(Unknown Source)
	at com.google.visualization.datasource.DataSourceRequest.<init>(Unknown Source)
	at com.google.visualization.datasource.DataSourceHelper.executeDataSourceServletFlow(Unknown Source)
	at com.google.visualization.datasource.DataSourceServlet.doGet(Unknown Source)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
	at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
	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 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.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
	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 com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:439)
	at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:435)
	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
	at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
	at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
	at java.lang.Thread.run(Thread.java:722)
Reply all
Reply to author
Forward
0 new messages