We'd appreciate helping us figure out problem testing com.smartgwt.client.data.DataSource:
1. Used SmartGWT nightly build 3/26/2012.
2. Code crashes in GWTTestCase, in fetchData():
While code works well when started as regular app - problem is in GWTTestCase only. Similar test that uses ordinary GWT RPC call works well in GWTTestCase.
3. Criteria was
callback was:
module gwt.xml:
web.xml was:
host HTML for GWT JUnit test had defined (after loading .nocache.js):
4. We called recommended new SmartGwtEntryPoint().onModuleLoad():
5. Stack dump was:
6. Full log is in next post, since it was too long.
1. Used SmartGWT nightly build 3/26/2012.
2. Code crashes in GWTTestCase, in fetchData():
Code:
public void getSimpleChartData(Criteria criteria, DSCallback dsCallback) {
DataSource chartDataSource = DataSource.get("simpleChartDataSource");
chartDataSource.fetchData(criteria, dsCallback);
}
3. Criteria was
Code:
Criteria criteria = new Criteria("id", "40889082_A");
Code:
new DSCallback(){
@Override
public void execute(DSResponse response, Object rawData, DSRequest request) {
display.setFieldNames(response.getAttributeAsStringArray("FieldNames"));
display.setData(response.getData());
display.setTitle("Hourly Load Data for device " + id);
}
Code:
<!-- Inherit the core Web Toolkit stuff. --> <inherits name='com.google.gwt.user.User'/> <inherits name="com.smartgwt.SmartGwtNoTheme"/> <!-- Inherit the default GWT style sheet. You can change --> <!-- the theme of your GWT application by uncommenting --> <!-- any one of the following lines. --> <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> --> <inherits name="com.smartclient.theme.enterprise.Enterprise" /> <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> --> <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> --> <!-- Other module inherits --> <inherits name="com.smartgwtee.SmartGwtEE"/> <inherits name="com.smartgwt.Drawing"/> <inherits name="com.smartgwt.Charts"/> <!-- Specify the app entry point class. --> <entry-point class='com.eterra.derms.example.mvp.client.Mvp'/> <!-- Specify the paths for translatable code --> <source path='client'/> <source path='shared'/> <source path='test'/> <servlet path='/sc/DataSourceLoader' class='com.isomorphic.servlet.DataSourceLoader'/> <servlet path='/mvp/sc/IDACall/*' class='com.isomorphic.servlet.IDACall'/>
Code:
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<!-- Servlets -->
<servlet>
<servlet-name>RpcServiceImpl</servlet-name>
<servlet-class>com.eterra.derms.example.mvp.server.RpcServiceImpl</servlet-class>
</servlet>
<!-- Servlet mappings -->
<servlet-mapping>
<servlet-name>RpcServiceImpl</servlet-name>
<url-pattern>/mvp/rpcService</url-pattern>
</servlet-mapping>
<!-- The DataSourceLoader servlet returns Javascript representations of the dataSources whose ID's are passed to it -->
<servlet>
<servlet-name>DataSourceLoader</servlet-name>
<servlet-class>com.isomorphic.servlet.DataSourceLoader</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DataSourceLoader</servlet-name>
<url-pattern>/sc/DataSourceLoader</url-pattern>
</servlet-mapping>
<!-- The IDACall servlet handles all Built-in DataSource operations -->
<servlet>
<servlet-name>IDACall</servlet-name>
<servlet-class>com.isomorphic.servlet.IDACall</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IDACall</servlet-name>
<url-pattern>/mvp/sc/IDACall/*</url-pattern>
</servlet-mapping>
<!-- TODO: Optionally add a <welcome-file-list> tag to display a welcome file. -->
</web-app>
Code:
<script>var isomorphicDir = "derms/sc/"; </script> <script src="sc/DataSourceLoader?dataSource=simpleChartDataSource"></script>
Code:
public void gwtSetUp() {
new SmartGwtEntryPoint().onModuleLoad();
rpcSmartService = GWT.create(SimpleChartRpc.class);
eventBus = new HandlerManager(null);
}
Code:
Invoke native method @com.smartgwt.client.util.JSOHelper::createObject()
this=null
returned JavaScript object(14)
Invoke native method @com.smartgwt.client.util.JSOHelper::setAttribute(Lcom/google/gwt/core/client/JavaScriptObject;Ljava/lang/String;Ljava/lang/String;)
this=null
arg[0]=JavaScript object(14)
arg[1]=string: 'id'
arg[2]=string: '40889082_A'
returned void
Invoke native method @com.smartgwt.client.data.DataSource::getDataSource(Ljava/lang/String;)
this=null
arg[0]=string: 'simpleChartDataSource'
Client invoke of 8257610 (getRef) on null
arg 0 = JavaScript object(15)
Invoke native method @com.smartgwt.client.util.JSOHelper::getAttributeAsObject(Lcom/google/gwt/core/client/JavaScriptObject;Ljava/lang/String;)
this=null
arg[0]=JavaScript object(15)
arg[1]=string: '__ref'
returned null
Client invoke of 9634006 (com.smartgwt.client.data.DataSource) on null
arg 0 = JavaScript object(15)
Invoke native method @com.smartgwt.client.util.JSOHelper::createObject()
this=null
returned JavaScript object(16)
Invoke native method @com.smartgwt.client.util.JSOHelper::getAttribute(Lcom/google/gwt/core/client/JavaScriptObject;Ljava/lang/String;)
this=null
arg[0]=JavaScript object(15)
arg[1]=string: 'ID'
returned string: 'simpleChartDataSource'
returned Java object: com.smartgwt.client.data.DataSource@1200340718
Invoke native method @com.smartgwt.client.data.DataSource::fetchData(Lcom/smartgwt/client/data/Criteria;Lcom/smartgwt/client/data/DSCallback;)
this=Java object: com.smartgwt.client.data.DataSource@1200340718
arg[0]=Java object: com.smartgwt.client.data.Criteria@2079209816
arg[1]=Java object: com.eterra.derms.example.mvp.client.presenter.LoadDataPresenter$2@1425473528
Client invoke of 8257724 (getOrCreateJsObj) on Java object: com.smartgwt.client.data.DataSource@1200340718
Invoke native method @com.smartgwt.client.data.DataSource::isCreated()
this=Java object: com.smartgwt.client.data.DataSource@1200340718
Client invoke of 8257606 (getID) on Java object: com.smartgwt.client.data.DataSource@1200340718
returned bool: true
Invoke native method @com.smartgwt.client.data.DataSource::getJsObj()
this=Java object: com.smartgwt.client.data.DataSource@1200340718
Client invoke of 8257606 (getID) on Java object: com.smartgwt.client.data.DataSource@1200340718
returned JavaScript object(15)
Client invoke of 8454194 (getJsObj) on Java object: com.smartgwt.client.data.Criteria@2079209816
Client invoke of 54 (entry) on JavaScript object(18)
arg 0 = JavaScript object(17)
Invoke native method @com.google.gwt.core.client.impl.Impl::entry(Lcom/google/gwt/core/client/JavaScriptObject;)
this=null
arg[0]=JavaScript object(17)
returned JavaScript object(19)
exception thrown
com.google.gwt.core.client.JavaScriptException: (null): null
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
at com.smartgwt.client.data.DataSource.fetchData(DataSource.java)
at com.eterra.derms.example.mvp.client.rpc.SimpleChartRpc.getSimpleChartData(SimpleChartRpc.java:12)
at com.eterra.derms.example.mvp.client.presenter.LoadDataPresenter.fetchLoadDataUsingSmartGwtRpc(LoadDataPresenter.java:79)
at com.eterra.derms.example.mvp.test.LoadDataTestCase.testTitle(LoadDataTestCase.java:38)
at com.eterra.derms.example.mvp.test.__LoadDataTestCase_unitTestImpl.doRunTest(__LoadDataTestCase_unitTestImpl.java:7)
at junit.framework.TestCase.runTest(TestCase.java:62)
at com.google.gwt.junit.client.GWTTestCase.runBare(GWTTestCase.java:188)
at com.google.gwt.junit.client.GWTTestCase.__doRunTest(GWTTestCase.java:129)
at com.google.gwt.junit.client.impl.GWTRunner.runTest(GWTRunner.java:389)
at com.google.gwt.junit.client.impl.GWTRunner.doRunTest(GWTRunner.java:318)
at com.google.gwt.junit.client.impl.GWTRunner.access$9(GWTRunner.java:312)
at com.google.gwt.junit.client.impl.GWTRunner$TestBlockListener.onSuccess(GWTRunner.java:107)
at com.google.gwt.junit.client.impl.GWTRunner$InitialResponseListener.onSuccess(GWTRunner.java:63)
at com.google.gwt.junit.client.impl.GWTRunner$InitialResponseListener.onSuccess(GWTRunner.java:1)
at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:232)
at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)
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(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:220)
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(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Unknown Source)
Comment