Nashorn can show an assertion failure when converting arrays of floats. This worked in 1.8.0_31, fails in 1.8.0_40, 1.8.0_45. function floatTest() { var jsArray = [35250.123456789]; var jFloat = Java.to(jsArray, "float[]"); print(j2jsarray(jFloat)); } function j2jsarray(jArray) { var out = new Array(); // out[0]=1.2; this will avoid the assertion failure. for (var i = 0; i < jArray.length; i++) { out[i] = jArray[i]; } return out; } floatTest(); Exception in thread "main" java.lang.AssertionError at jdk.nashorn.internal.runtime.arrays.IntArrayData.convert(IntArrayData.java:191 ) at jdk.nashorn.internal.runtime.arrays.IntArrayData.set(IntArrayData.java:241) at jdk.nashorn.internal.runtime.ScriptObject.doesNotHave(ScriptObject.java:3166) at jdk.nashorn.internal.runtime.ScriptObject.set(ScriptObject.java:3384) at jdk.nashorn.internal.scripts.Script$Recompilation$2$167A$\^eval\_.j2jsarray(<e val>:12) at jdk.nashorn.internal.scripts.Script$Recompilation$1$22$\^eval\_.floatTest(<eva l>:5) at jdk.nashorn.internal.scripts.Script$\^eval\_.:program(<eval>:17) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java :636) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:229) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:387) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.jav a:437) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.jav a:401) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.jav a:397) at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:14 7) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249) at FloatTestApp.main(FloatTestApp.java:13)
|