Hi,

I am trying to find a bug in my first gwt project. I wrote another little 
project with just 3 classes to show just the behavior I don't understand.
I try to initialize objects in JavaScript (need that to use an existing js 
script in my (new) Java Code).

For my test I simply want to get an Object with a number array and read 
that...but the call of get(i) leads to 'Something other than a double was 
returned from JSNI method'.

Can anybody point me in the right direction please!?

Thanks a lot!! :)

JavaScript:
var TestObj = {};

/* helper function to get such an object
 * not possible to get it directly?!*/
function getMem1(x,y){
return new TestObj.member1([x,y]);
}

TestObj.member1 = function(p){
// should be an array of two floating point values (saved as double in java)
this.p = p;
}

My Java Object:
public class TestObjJava {

private double x;
private double y;
 public TestObjJava(double x, double y) {
this.x = x;
this.y = y;
}

public native TestObjJS getAsJSObj() /*-{
return $wnd.getMem1(this.x, this.y)
}-*/;
}

My JavaScriptObject
public class TestObjJS extends JavaScriptObject {

protected TestObjJS() {}

public final native JsArrayNumber getP() /*-{ return this.p; }-*/;
}

The code that leads to the error:
public void onModuleLoad() {
 TestObjJava jObj = new TestObjJava(12, 23);
TestObjJS jsObj = jObj.getAsJSObj();
 JsArrayNumber p = jsObj.getP();
 System.out.println(p);
 for(int i=0; i<p.length(); i++){
System.out.println(i+": "+p.get(i));
}
}

The full error message:

onModuleLoad() threw an exception
Exception while loading module andymel.tests.gwttests.client.GWTTests. See 
Development Mode for details.


java.lang.reflect.InvocationTargetException
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.ModuleSpace.onLoad(ModuleSpace.java:411)
at 
com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
at 
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)
at 
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Unknown Source)
Caused by: com.google.gwt.dev.shell.HostedModeException: Something other 
than a double was returned from JSNI method 
'@com.google.gwt.core.client.JsArrayNumber::get(I)': JS value of type 
undefined, expected double
at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:112)
at 
com.google.gwt.dev.shell.ModuleSpace.invokeNativeDouble(ModuleSpace.java:238)
at 
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeDouble(JavaScriptHost.java:59)
at com.google.gwt.core.client.JsArrayNumber$.get$(JsArrayNumber.java)
at andymel.tests.gwttests.client.GWTTests.onModuleLoad(GWTTests.java:30)
... 9 more


-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/e3383695-7f7f-46f1-b346-25f2dcc338e3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to