|
I don't see anything special about Opcodes. Frustrating. Interfaces that have static final fields in them? I get the same stack overflow with java.sql.ParameterMetaData: $ jruby -w -rjava -e "class Foo; import Java::java.sql.ParameterMetaData; include ParameterMetaData; end; Foo.new" Doesn't appear to be static final fields specifically. A simple test didn't show the same effect. Hmm. Oops, nevermind. I tested against trunk, which is of course fixed. It does appear to be the static final field thing, probably because that causes it to add things to the singleton class, and so the included module inserts some extra fun into the singleton-side hierarchy. Makes sense in my head, anyway. Specs coming. Specs committed in r7678. All done! |
||||||||||||||||||||||||||||||||||||||||||||
This appears to be a glitch in how I set up the append_features method for "interface modules", that causes them to forever recurse. It doesn't happen with all interfaces; I think it may only affect interfaces that extend other interfaces, or something like that. As such, I have a fix but not a test, and we must figure out a test that can work against normal JDK classes.
Fix is committed in r7671. Still open pending tests.
FYI, my case to reproduce it was: