Originally posted in gwt-users. The question here is the same with the previous one.
Is this considered a bug? Should I report it as an issue? and if so where? Thanks. ---------- Forwarded message ---------- From: Vassilis Virvilis <[email protected]> Date: Fri, Feb 24, 2017 at 2:44 PM Subject: jsinterop woes: Part 2: return Double[] To: [email protected] Hi, I am not sure if it is a bug but it kills my beautiful jsinterop mappings. Let's say that I have a native js function (d3.extent) that returns an array of something. It may be dates it may be doubles.. This is mapped nicely with public static native <T, V> V[] extent(T[] data, > AccessorFunction<T, V> accessor); > Where AccessorFunction is @JsFunction > public static interface AccessorFunction<T, V> { > public V get(T d); > } > The above scheme works for Date and other objects but it fails with Double. If I specify another variant of d3.extent that returns double[] it works Here is the javascript exception Uncaught Error: java.lang.ClassCastException > at java_lang_ClassCastException_ClassCastException__V.java_ > lang_Throwable_createError__Ljava_lang_String_2Ljava_lang_Object_2 [as > package_private$java_lang$createError__Ljava_lang_String_2Ljava_lang_Object_2] > (dashboard-0.js:7245) > at java_lang_ClassCastException_ClassCastException__V.java_ > lang_Throwable_initializeBackingError__V [as > private$java_lang_Throwable$initializeBackingError__V] > (dashboard-0.js:7300) > at > java_lang_ClassCastException_ClassCastException__V.java_lang_Throwable_Throwable__V > (dashboard-0.js:7133) > at > java_lang_ClassCastException_ClassCastException__V.java_lang_Exception_Exception__V > (dashboard-0.js:7381) > at java_lang_ClassCastException_ClassCastException__V.java_ > lang_RuntimeException_RuntimeException__V (dashboard-0.js:29760) > at java_lang_ClassCastException_ClassCastException__V > (dashboard-0.js:57310) > at javaemul_internal_InternalPreconditions_checkCriticalType__ZV > (dashboard-0.js:72171) > at javaemul_internal_InternalPreconditions_checkType__ZV > (dashboard-0.js:72378) > at com_google_gwt_lang_Cast_castTo__Ljava_lang_Object_ > 2Lcom_google_gwt_core_client_JavaScriptObject_2Ljava_lang_Object_2 > (dashboard-0.js:647) > It goes here > function com_google_gwt_lang_Cast_castTo__Ljava_lang_Object_ > 2Lcom_google_gwt_core_client_JavaScriptObject_2Ljava_lang_Object_2(src_0, > dstId){ > com_google_gwt_lang_Cast_$clinit__V(); > javaemul_internal_InternalPreconditions_checkType__ZV(com_google_gwt_ > lang_Cast_jsEquals__Ljava_lang_Object_2Ljava_lang_Object_2Z(src_0, null) > || com_google_gwt_lang_Cast_canCast__Ljava_lang_Object_ > 2Lcom_google_gwt_core_client_JavaScriptObject_2Z(src_0, dstId)); > return src_0; > } > Arguments: - src_0: - evaluated: js array of numbers as it should be - dstId: - evaluated: 2396 and then it goes to function com_google_gwt_lang_Cast_canCast__Ljava_lang_Object_ > 2Lcom_google_gwt_core_client_JavaScriptObject_2Z(src_0, dstId){ > com_google_gwt_lang_Cast_$clinit__V(); > if (com_google_gwt_lang_Cast_instanceOfString__Ljava_lang_Object_2Z(src_0)) > { > return !!com_google_gwt_lang_Cast_stringCastMap[dstId]; > } > else if (src_0.java_lang_Object_castableTypeMap) { > return !!src_0.java_lang_Object_castableTypeMap[dstId]; > } > else if > (com_google_gwt_lang_Cast_instanceOfDouble__Ljava_lang_Object_2Z(src_0)) > { > return !!com_google_gwt_lang_Cast_doubleCastMap[dstId]; > } > else if > (com_google_gwt_lang_Cast_instanceOfBoolean__Ljava_lang_Object_2Z(src_0)) > { > return !!com_google_gwt_lang_Cast_booleanCastMap[dstId]; > } > return false; > } > where it fails. Would it be possible to handle transparently also Double[] (and possibly String[])? as double[]? Thank you for reading that far... Vassilis -- Vassilis Virvilis -- Vassilis Virvilis -- 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/CAKbOjEzUf3LAK90Gnq%2B8B5Yzq7akyZPC%3DJ9ch1DFieqoOCJJVA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
