When I'm trying to access a property of Scala class which is Set or List, JPype fails with traceback
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 63, in _getClassFor
pyJavaClass = _JavaClass(javaClass)
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 115, in __new__
bases.append( _getClassFor(bjc) )
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 63, in _getClassFor
pyJavaClass = _JavaClass(javaClass)
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 122, in __new__
bases.append( _getClassFor(ic) )
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 63, in _getClassFor
pyJavaClass = _JavaClass(javaClass)
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 122, in __new__
bases.append( _getClassFor(ic) )
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 63, in _getClassFor
pyJavaClass = _JavaClass(javaClass)
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 122, in __new__
bases.append( _getClassFor(ic) )
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 63, in _getClassFor
pyJavaClass = _JavaClass(javaClass)
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 122, in __new__
bases.append( _getClassFor(ic) )
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 63, in _getClassFor
pyJavaClass = _JavaClass(javaClass)
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 122, in __new__
bases.append( _getClassFor(ic) )
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 63, in _getClassFor
pyJavaClass = _JavaClass(javaClass)
File "/Users/andrew/.virtualenvs/jpype/lib/python2.7/site-packages/jpype/_jclass.py", line 180, in __new__
metaclass = type.__new__(type, name+"$$Static", tuple(meta_bases), static_fields)
TypeError: Cannot create a consistent method resolution
order (MRO) for bases scala.collection.GenTraversableLike$$Static, scala.collection.generic.HasNewBuilder$$Static
I doubt it is so much a jpype problem. Given the information at <URL: http://www.python.org/getit/releases/2.3/mro/ >, my guess would be that the Scala has variations in the order in which basic traits are mixed in, causing the Java rewrite to create situations of multiple inheritance that is inconsistent with the Python C3 method resolution order, i.e. introducing an inheritance graph with ambiguous MRO similar to the first example at the above site. So Scala would be the right place to do the fix, only it is not a problem for Scala. In the meantime, arrays seem to work without problems.