diff -r 5452b9fbd253 -r a9be982d9b9c vm/src/test/java/org/apidesign/vm4brwsr/ExceptionsTest.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/ExceptionsTest.java Mon Dec 31 12:44:51 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/ExceptionsTest.java Mon Dec 31 17:50:27 2012 +0100 @@ -70,6 +70,30 @@ ); } + @Test public void testThreeCalls() throws Exception { + Object vm = code.invokeFunction("bck2brwsr"); + Object clazz = code.invokeMethod(vm, "loadClass", Exceptions.class.getName()); + + String method = "readCounter__ILjava_lang_String_2"; + + try { + Object ret = code.invokeMethod(clazz, method, "org.apidesign.Unknown"); + fail("We expect an CNFE!"); + } catch (ScriptException scriptException) { + // script exception should be OK + } + { + // 2nd invocation + Object ret = code.invokeMethod(clazz, method, "java.lang.String"); + assertEquals(ret, Double.valueOf(2)); + } + { + // 3rd invocation + Object ret = code.invokeMethod(clazz, method, "java.lang.Integer"); + assertEquals(ret, Double.valueOf(3)); + } + } + private static CharSequence codeSeq; private static Invocable code;