Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 344239

Summary: Creating scripted data source by using Google Analytics API
Product: z_Archived Reporter: piratejackus
Component: BIRTAssignee: Birt-ReportEngine-inbox <Birt-ReportEngine-inbox>
Status: CLOSED FIXED QA Contact:
Severity: blocker    
Priority: P3 CC: jouyang, piratejackus, wyan
Version: 2.6.2   
Target Milestone: 3.7.0   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
org.eclipse.birt.core\src\org\eclipse\birt\core\framework\URLClassLoader.java none

Description piratejackus CLA 2011-04-29 04:17:15 EDT
Hi,

I'm trying to use Google Analytics API to get the data for the scripted data source of my report. I created a Java Project and in it; one domain class and one service class to pull the data from ga API. I can fetch the data in my service. In the same project, i created a new report and chose 'scripted data source' as data  source. 
I also created output columns, in the dataset. I wrote the scripting code for 'open' and 'fetch' by using my service class. In the `preview results` of the data set i can view the data pulled from my applications google analytics. But in the designer 'preview' (and the other output formats under eclipse->run-> View Report) i got the exception below. 

(i didn't quote the class codes, because i can fetch the data successfully until the data set preview results)

i put the necessary libraries in the classpath of my java project but the birt viewer cannot initialize the analytics service so throws NPE and ExceptionInInitializerError. (That's what i see in the stacktrace - below)

classpath: _______________________________>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
        <classpathentry kind="lib" path="lib/activation.jar"/>
        <classpathentry kind="lib" path="lib/gdata-analytics-2.1.jar"/>
        <classpathentry kind="lib" path="lib/gdata-analytics-meta-2.1.jar"/>
        <classpathentry kind="lib" path="lib/gdata-client-1.0.jar"/>
        <classpathentry kind="lib" path="lib/gdata-client-meta-1.0.jar"/>
        <classpathentry kind="lib" path="lib/gdata-core-1.0.jar"/>
        <classpathentry kind="lib" path="lib/gdata-docs-3.0.jar"/>
        <classpathentry kind="lib" path="lib/gdata-docs-meta-3.0.jar"/>
        <classpathentry kind="lib" path="lib/gdata-media-1.0.jar"/>
        <classpathentry kind="lib" path="lib/google-collect-1.0-rc1.jar"/>
        <classpathentry kind="lib" path="lib/jsr305.jar"/>
        <classpathentry kind="lib" path="lib/mail.jar"/>
        <classpathentry kind="lib" path="lib/servlet-api.jar"/>
        <classpathentry kind="output" path="bin"/>
</classpath>



After making a deep search in Google on this issue, i tried to put the libraries under:
- Report Designer -> Property Editor - Report-> Resources -> Jar Files
- Eclipse birt plugin scriptlib (in my case under ~/software/springsource/sts-2.5.2.SR1/plugins/org.eclipse.bi rt.report.viewer_2.6.2.r262_v20110214/birt/scriptlib)
- Eclipse birt plugin WEB-INF/lib directory (in my case~/software/springsource/sts-2.5.2.SR1/plugins/org.eclipse.birt.report.viewer_2.6.2.r262_v20110214/birt/WEB-INF/lib)

None of these worked for me. I don't know the difference between the 'data set - preview results' and 'designer viewer'. 

I created another threads on this issue on birt-exchange forum:
This one includes all my classes : 
http://www.birt-exchange.org/org/forum/index.php/topic/22184-google-analytics-api-as-a-scripted-data-source/page__p__76410&#entry76410
This thread is also related and gave some ideas but not a workaround.:
http://www.eclipse.org/forums/index.php?t=msg&th=200425&S=68ff3f9bf4f04ae6ba19267a0573164f#msg_639706 

ExceptionInInitializerError is thrown on the line:

"...
AnalyticsService analyticsService = new AnalyticsService("GAFetcher");
..."

and for the NPE:
"...
public static Version getVersion()
{
return VersionRegistry.get().getVersion(Service.class);
}
..."

stacktrace:________________________________>

- org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.
 faultActor: 
 faultNode: 
 faultDetail: 
        {http://xml.apache.org/axis/}stackTrace:org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.
        at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1105)
        at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:934)
        at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)
        at org.eclipse.birt.report.service.actionhandler.BirtRunAndRenderActionHandler.__execute(BirtRunAndRenderActionHandler.java:76)
        at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
        at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(EngineFragment.java:318)
        at org.eclipse.birt.report.presentation.aggregation.AbstractBaseFragment.service(AbstractBaseFragment.java:76)
        at org.eclipse.birt.report.servlet.BirtEngineServlet.__doGet(BirtEngineServlet.java:120)
        at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(BaseReportEngineServlet.java:185)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.birt.report.servlet.BaseReportEngineServlet.service(BaseReportEngineServlet.java:116)
        at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
        at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        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:924)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        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)
Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:209)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
        at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:928)
        ... 30 more
Caused by: java.lang.ExceptionInInitializerError
        at gafetcher.AppUserSystemInfo.getVisitorsSystemAndVisitInfo(AppUserSystemInfo.java:43)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
        at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
        at org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:119)
        at org.mozilla.javascript.gen.c5._c1(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;]:5)
        at org.mozilla.javascript.gen.c5.call(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;])
        at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:108)
        at org.mozilla.javascript.gen.c6._c0(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;]:0)
        at org.mozilla.javascript.gen.c6.call(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;])
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
        at org.mozilla.javascript.gen.c6.call(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;])
        at org.mozilla.javascript.gen.c6.exec(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;])
        at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateRawScript(JavascriptEvalUtil.java:95)
        at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateScript(JavascriptEvalUtil.java:134)
        at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:1001)
        at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:138)
        at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:90)
        at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:246)
        at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleOpen(ScriptDataSetScriptExecutor.java:97)
        at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.open(ScriptDataSetRuntime.java:80)
        at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.open(PreparedScriptDSQuery.java:247)
        at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:223)
        at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1103)
        at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)
        at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:173)
        at org.eclipse.birt.report.engine.data.dte.QueryResultSet.&lt;init&gt;(QueryResultSet.java:98)
        at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)
        at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:265)
        at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1890)
        at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
        at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)
        at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
        at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
        at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
        at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90)
        at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:99)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)
        ... 32 more
Caused by: java.lang.NullPointerException
        at com.google.gdata.client.Service.&lt;clinit&gt;(Service.java:97)
        ... 75 more

        {http://xml.apache.org/axis/}hostname:extelia_innovation_699
        {}:org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.
        at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1105)
        at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:934)
        at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)
        at org.eclipse.birt.report.service.actionhandler.BirtRunAndRenderActionHandler.__execute(BirtRunAndRenderActionHandler.java:76)
        at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
        at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(EngineFragment.java:318)
        at org.eclipse.birt.report.presentation.aggregation.AbstractBaseFragment.service(AbstractBaseFragment.java:76)
        at org.eclipse.birt.report.servlet.BirtEngineServlet.__doGet(BirtEngineServlet.java:120)
        at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(BaseReportEngineServlet.java:185)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.birt.report.servlet.BaseReportEngineServlet.service(BaseReportEngineServlet.java:116)
        at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
        at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        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:924)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        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)
Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:209)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
        at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:928)
        ... 30 more
Caused by: java.lang.ExceptionInInitializerError
        at gafetcher.AppUserSystemInfo.getVisitorsSystemAndVisitInfo(AppUserSystemInfo.java:43)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
        at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
        at org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:119)
        at org.mozilla.javascript.gen.c5._c1(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;]:5)
        at org.mozilla.javascript.gen.c5.call(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;])
        at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:108)
        at org.mozilla.javascript.gen.c6._c0(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;]:0)
        at org.mozilla.javascript.gen.c6.call(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;])
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
        at org.mozilla.javascript.gen.c6.call(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;])
        at org.mozilla.javascript.gen.c6.exec(/report/data-sets/script-data-set[@id=&quot;13&quot;]/method[@name=&quot;open&quot;])
        at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateRawScript(JavascriptEvalUtil.java:95)
        at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateScript(JavascriptEvalUtil.java:134)
        at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:1001)
        at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:138)
        at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:90)
        at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:246)
        at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleOpen(ScriptDataSetScriptExecutor.java:97)
        at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.open(ScriptDataSetRuntime.java:80)
        at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.open(PreparedScriptDSQuery.java:247)
        at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:223)
        at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1103)
        at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)
        at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:173)
        at org.eclipse.birt.report.engine.data.dte.QueryResultSet.&lt;init&gt;(QueryResultSet.java:98)
        at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)
        at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:265)
        at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1890)
        at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
        at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)
        at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
        at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
        at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
        at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90)
        at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:99)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)
        ... 32 more
Caused by: java.lang.NullPointerException
        at com.google.gdata.client.Service.&lt;clinit&gt;(Service.java:97)
        ... 75 more


org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.
        at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
        at org.eclipse.birt.report.utility.BirtUtility.makeAxisFault(BirtUtility.java:761)
        at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:94)
        at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(EngineFragment.java:318)
        at org.eclipse.birt.report.presentation.aggregation.AbstractBaseFragment.service(AbstractBaseFragment.java:76)
        at org.eclipse.birt.report.servlet.BirtEngineServlet.__doGet(BirtEngineServlet.java:120)
        at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(BaseReportEngineServlet.java:185)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.birt.report.servlet.BaseReportEngineServlet.service(BaseReportEngineServlet.java:116)
        at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
        at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        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:924)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        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)
Caused by: org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.
        at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1105)
        at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:934)
        at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)
        at org.eclipse.birt.report.service.actionhandler.BirtRunAndRenderActionHandler.__execute(BirtRunAndRenderActionHandler.java:76)
        at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
        ... 27 more
Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:209)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
        at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:928)
        ... 30 more
Caused by: java.lang.ExceptionInInitializerError
        at gafetcher.AppUserSystemInfo.getVisitorsSystemAndVisitInfo(AppUserSystemInfo.java:43)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
        at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
        at org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:119)
        at org.mozilla.javascript.gen.c5._c1(/report/data-sets/script-data-set[@id="13"]/method[@name="open"]:5)
        at org.mozilla.javascript.gen.c5.call(/report/data-sets/script-data-set[@id="13"]/method[@name="open"])
        at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:108)
        at org.mozilla.javascript.gen.c6._c0(/report/data-sets/script-data-set[@id="13"]/method[@name="open"]:0)
        at org.mozilla.javascript.gen.c6.call(/report/data-sets/script-data-set[@id="13"]/method[@name="open"])
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
        at org.mozilla.javascript.gen.c6.call(/report/data-sets/script-data-set[@id="13"]/method[@name="open"])
        at org.mozilla.javascript.gen.c6.exec(/report/data-sets/script-data-set[@id="13"]/method[@name="open"])
        at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateRawScript(JavascriptEvalUtil.java:95)
        at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateScript(JavascriptEvalUtil.java:134)
        at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:1001)
        at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:138)
        at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:90)
        at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:246)
        at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleOpen(ScriptDataSetScriptExecutor.java:97)
        at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.open(ScriptDataSetRuntime.java:80)
        at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.open(PreparedScriptDSQuery.java:247)
        at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:223)
        at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1103)
        at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)
        at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:173)
        at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98)
        at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)
        at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:265)
        at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1890)
        at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
        at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)
        at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
        at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
        at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
        at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90)
        at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:99)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)
        ... 32 more
Caused by: java.lang.NullPointerException
        at com.google.gdata.client.Service.<clinit>(Service.java:97)
        ... 75 more
Comment 1 piratejackus CLA 2011-04-29 04:20:10 EDT
For the system and software information:

OS : Ubuntu 10.04 kernel 2.6.32-30
IDE : SpringSource Tool Suite 2.5.2.SR1
Comment 2 Jun Ouyang CLA 2011-04-29 04:36:47 EDT
Caused by: java.lang.NullPointerException
        at com.google.gdata.client.Service.&lt;clinit&gt;(Service.java:97)
        ... 75 more

Could you check if this exception occurs when the API is used out of BIRT?
Comment 3 piratejackus CLA 2011-04-29 04:54:34 EDT
I created a test class that uses my google analytics service class. I debugged the Service.class and didn't get an exception. I can get the AnalyticService object.

(In reply to comment #2)
> Caused by: java.lang.NullPointerException
>         at com.google.gdata.client.Service.&lt;clinit&gt;(Service.java:97)
>         ... 75 more
> 
> Could you check if this exception occurs when the API is used out of BIRT?
Comment 4 piratejackus CLA 2011-04-29 08:04:41 EDT
Birt's logic for using external jar/class files is basically explained ot its site: http://wiki.eclipse.org/BIRT/FAQ/Scripting:

"If you are using the BIRT Designer, you have to add your classes to the classpath of the BIRT Viewer Plugin: org.eclipse.birt.report.viewer. To do this you have two choices: 
...
2. Package your classes into one or more jar-files and put them into the birt/scriptlib subfolder of the Viewer-plugin. 
...

so, what am i missing or what is special for Google Analytics libraries?
Comment 5 Wei Yan CLA 2011-04-29 12:31:10 EDT
We have checked in a patch to resolve this issue in in 2.6.3 and 2.7. You can get the latest fix from org.eclipse.birt.core/src/org.eclipse.birt.core.framework.URLClassLoader.java.

Just recompile this class and replace the old one in your lib/coreapi.jar and plugins/org.eclipse.birt.core.jar.

Please let us know if it resolve your issue.
Comment 6 piratejackus CLA 2011-04-29 13:14:35 EDT
Hi, 

I just left the office, i will try to reproduce the error and apply your patch  in the weekend on my local PC, otherwise i will let you know on Monday latest when i have access to my development PC, sure. 

Thank you very much for your effort.

(In reply to comment #5)
> We have checked in a patch to resolve this issue in in 2.6.3 and 2.7. You can
> get the latest fix from
> org.eclipse.birt.core/src/org.eclipse.birt.core.framework.URLClassLoader.java.
> 
> Just recompile this class and replace the old one in your lib/coreapi.jar and
> plugins/org.eclipse.birt.core.jar.
> 
> Please let us know if it resolve your issue.
Comment 7 piratejackus CLA 2011-04-29 15:16:35 EDT
This is silly but i can't open the patched class link;
Could you please give it one more time?
Comment 8 Wei Yan CLA 2011-04-29 15:23:08 EDT
Created attachment 194398 [details]
org.eclipse.birt.core\src\org\eclipse\birt\core\framework\URLClassLoader.java
Comment 9 piratejackus CLA 2011-04-30 03:29:16 EDT
I recompiled the patched URLClassLoader.java and placed in org.eclipse.birt.core_VERSION.jar (under eclipse plugins) but didn't modify lib/coreapi.jar (actually i couldn't find it). Your patch worked for me. Now i can preview my report in any format. It resolved my issue.

Thank you very much.

(In reply to comment #5)
> We have checked in a patch to resolve this issue in in 2.6.3 and 2.7. You can
> get the latest fix from
> org.eclipse.birt.core/src/org.eclipse.birt.core.framework.URLClassLoader.java.
> 
> Just recompile this class and replace the old one in your lib/coreapi.jar and
> plugins/org.eclipse.birt.core.jar.
> 
> Please let us know if it resolve your issue.
Comment 10 piratejackus CLA 2011-04-30 03:32:48 EDT
I will explain a bit more the steps.
Recompile the patched (and attached file ın comment #8). Copy all the generated class files under your eclipse plugins (in my case ~/software/springsource/sts-2.5.2.SR1/plugins/org.eclipse.birt.core_2.6.2.r262_v20110209.jar) and int that jar under '/org/eclipse/birt/core/framework/' directory( you will see old versions of these classes).



(In reply to comment #9)
> I recompiled the patched URLClassLoader.java and placed in
> org.eclipse.birt.core_VERSION.jar (under eclipse plugins) but didn't modify
> lib/coreapi.jar (actually i couldn't find it). Your patch worked for me. Now i
> can preview my report in any format. It resolved my issue.
> 
> Thank you very much.
> 
> (In reply to comment #5)
> > We have checked in a patch to resolve this issue in in 2.6.3 and 2.7. You can
> > get the latest fix from
> > org.eclipse.birt.core/src/org.eclipse.birt.core.framework.URLClassLoader.java.
> > 
> > Just recompile this class and replace the old one in your lib/coreapi.jar and
> > plugins/org.eclipse.birt.core.jar.
> > 
> > Please let us know if it resolve your issue.
Comment 11 piratejackus CLA 2011-04-30 03:36:25 EDT
@developers

Can i learn what was the problem with the classloader? just curious.
Comment 12 piratejackus CLA 2011-05-02 08:28:25 EDT
By having the source code, this question is meaningless, ignore it.

(In reply to comment #11)
> @developers
> 
> Can i learn what was the problem with the classloader? just curious.