I got the same thing. I believe it is because of a conflict between
components packaged with both jython and jruby.
jruby was updated recently. When I deleted ruby-complete-1.7.11.jar from
the jars directory the jython scripts started working again. This is a
hack though because then jruby doesn't work.
> Dear users, I have a "new" error in my python scripts since last update...
> I used to say (mac OS X 10.6.8 Fiji 1.48v Java 1.6.0065 64bits):
>
>
> import os
> os.makedirs("/Users/leon/Desktop/temp/temp", mode=0777)
>
>
> And now it says :
>
>
> Traceback (most recent call last):
> File "<iostream>", line 4, in <module>
> File "/Applications/Fiji.app/jars/jython-2.5.2.jar/Lib/os.py", line 149,
> in makedirs
> File "/Applications/Fiji.app/jars/jython-2.5.2.jar/Lib/posixpath.py",
> line 171, in exists
> File "/Applications/Fiji.app/jars/jython-2.5.2.jar/Lib/posixpath.py",
> line 171, in exists
> java.lang.IncompatibleClassChangeError: Found class
> com.kenai.jffi.InvocationBuffer, but interface was expected
> at
> com.kenai.jaffl.provider.jffi.AsmRuntime.marshal(AsmRuntime.java:167)
> at org.python.posix.LibC$jaffl$0.stat$raw(Unknown Source)
> at org.python.posix.LibC$jaffl$0.stat(Unknown Source)
> at org.python.posix.BaseNativePOSIX.stat(BaseNativePOSIX.java:200)
> at org.python.posix.LazyPOSIX.stat(LazyPOSIX.java:207)
> at
> org.python.modules.posix.PosixModule$StatFunction.__call__(PosixModule.java:966)
> at
> posixpath$py.exists$15(/Applications/Fiji.app/jars/jython-2.5.2.jar/Lib/posixpath.py:174)
> at
> posixpath$py.call_function(/Applications/Fiji.app/jars/jython-2.5.2.jar/Lib/posixpath.py)
> at org.python.core.PyTableCode.call(PyTableCode.java:165)
> at org.python.core.PyBaseCode.call(PyBaseCode.java:134)
> at org.python.core.PyFunction.__call__(PyFunction.java:317)
> at
> os$py.makedirs$2(/Applications/Fiji.app/jars/jython-2.5.2.jar/Lib/os.py:158)
> at
> os$py.call_function(/Applications/Fiji.app/jars/jython-2.5.2.jar/Lib/os.py)
> at org.python.core.PyTableCode.call(PyTableCode.java:165)
> at org.python.core.PyBaseCode.call(PyBaseCode.java:301)
> at
> org.python.core.PyFunction.function___call__(PyFunction.java:376)
> at org.python.core.PyFunction.__call__(PyFunction.java:371)
> at org.python.pycode._pyx9.f$0(<iostream>:4)
> at org.python.pycode._pyx9.call_function(<iostream>)
> at org.python.core.PyTableCode.call(PyTableCode.java:165)
> at org.python.core.PyCode.call(PyCode.java:18)
> at org.python.core.Py.runCode(Py.java:1261)
> at
> org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:235)
> at
> org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:230)
> at
> Jython.Refresh_Jython_Scripts.runScript(Refresh_Jython_Scripts.java:73)
> at common.RefreshScripts.runScript(RefreshScripts.java:328)
> at fiji.scripting.TextEditor$Tab$6.execute(TextEditor.java:1225)
> at fiji.scripting.TextEditor$Executer$1.run(TextEditor.java:1785)
>
> java.lang.IncompatibleClassChangeError:
> java.lang.IncompatibleClassChangeError: Found class
> com.kenai.jffi.InvocationBuffer, but interface was expected
>
>
> thank you for any help... !
>
> All the best, Leon
>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>