Index: src/org/python/jsr223/PyScriptEngine.java =================================================================== --- src/org/python/jsr223/PyScriptEngine.java (revisão 7125) +++ src/org/python/jsr223/PyScriptEngine.java (cópia de trabalho) @@ -100,7 +100,14 @@ if (method == null) { throw new NoSuchMethodException(name); } - return method.__call__(Py.javas2pys(args)).__tojava__(Object.class); + + PyObject result; + if(args != null) { + result = method.__call__(Py.javas2pys(args)); + } else { + result = method.__call__(); + } + return result.__tojava__(Object.class); } catch (PyException pye) { throw scriptException(pye); } Index: tests/java/org/python/jsr223/ScriptEngineTest.java =================================================================== --- tests/java/org/python/jsr223/ScriptEngineTest.java (revisão 7125) +++ tests/java/org/python/jsr223/ScriptEngineTest.java (cópia de trabalho) @@ -172,12 +172,21 @@ try { invocableEngine.invokeMethod("eggs", "undefined"); + fail("Expected a NoSuchMethodException" ); } catch (NoSuchMethodException e) { - return; + assertEquals("undefined", e.getMessage()); } - assertTrue("Expected a NoSuchMethodException", false); } + public void testInvokeMethodNoSuchArgs() throws ScriptException, NoSuchMethodException { + ScriptEngineManager manager = new ScriptEngineManager(); + ScriptEngine pythonEngine = manager.getEngineByName("python"); + Invocable invocableEngine = (Invocable)pythonEngine; + + Object newStringCapitalize = invocableEngine.invokeMethod("'test'", "capitalize"); + assertEquals(newStringCapitalize, "Test"); + } + public void testGetInterface() throws ScriptException, IOException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine pythonEngine = manager.getEngineByName("python");