It seems that the behaviour of JRuby's splat operator is to call #to_a on an object to splat it out
$ ruby -v
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
$ ruby -e 'class A; def to_a; nil end end; p *A.new'
$ jruby --1.9 -e 'class A; def to_a; nil end end; p *A.new'
TypeError: `to_a' did not return Array
(root) at -e:1
I'm honestly not sure if this is considered a bug in JRuby or MRI, but I'd like to see the behaviour consistent across implementations. It seems related to
JRUBY-4584, if that helps.