Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Incomplete
-
Affects Version/s: JRuby 1.4
-
Fix Version/s: JRuby 1.3.1
-
Component/s: Core Classes/Modules
-
Labels:None
-
Number of attachments :
Description
# jirb
irb(main):001:0> require "rexml/document"
=> true
irb(main):002:0> require "rexml/formatters/transitive"
=> true
irb(main):003:0> REXML::Document.new("<a><b/></a>").write($stdout, 1, true, true)
ArgumentError: wrong # of arguments(2 for 1)
from /usr/bin/../share/jruby/lib/ruby/1.8/rexml/document.rb:189:in `initialize'
from /usr/bin/../share/jruby/lib/ruby/1.8/rexml/document.rb:189:in `new'
from /usr/bin/../share/jruby/lib/ruby/1.8/rexml/document.rb:189:in `write'
from (irb):4
irb(main):004:0>
This seems to be a regression. Interestingly, this bug has already been fixed in MRI long ago: http://redmine.ruby-lang.org/issues/show/553
The patch mentioned in the MRI ticket above is only applied in the trunk. This is still broken in the 1.8 branch, and JRuby is working fine in 1.9 mode.
surfboard:~$ ruby18 -v; ruby18 -S irb ruby 1.8.8dev (2009-12-07 revision 26034) [i386-darwin10.2.0] irb(main):001:0> require 'rexml/document' => true irb(main):002:0> require 'rexml/formatters/transitive' => true irb(main):003:0> REXML::Document.new("<a><b/></a>").write($stdout, 1, true, true) ArgumentError: wrong number of arguments (2 for 1) from /usr/local/ruby18/lib/ruby/1.8/rexml/document.rb:189:in `initialize' from /usr/local/ruby18/lib/ruby/1.8/rexml/document.rb:189:in `new' from /usr/local/ruby18/lib/ruby/1.8/rexml/document.rb:189:in `write' from (irb):3 from /usr/local/ruby18/lib/ruby/1.8/rexml/element.rb:923surfboard:jruby[git:master]$ jruby --1.9 -S irb irb(main):001:0> require 'rexml/document' => true irb(main):002:0> require 'rexml/formatters/transitive' => true irb(main):003:0> REXML::Document.new("<a><b/></a>").write($stdout, 1, true, true) <a ><b /></a >=> [<?xml ... ?>, <a> ... </>]I suggest taking it up to Redmine for the patch to be backported to 1.8 stream.
surfboard:~$ ruby18 -v; ruby18 -S irb ruby 1.8.8dev (2009-12-07 revision 26034) [i386-darwin10.2.0] irb(main):001:0> require 'rexml/document' => true irb(main):002:0> require 'rexml/formatters/transitive' => true irb(main):003:0> REXML::Document.new("<a><b/></a>").write($stdout, 1, true, true) ArgumentError: wrong number of arguments (2 for 1) from /usr/local/ruby18/lib/ruby/1.8/rexml/document.rb:189:in `initialize' from /usr/local/ruby18/lib/ruby/1.8/rexml/document.rb:189:in `new' from /usr/local/ruby18/lib/ruby/1.8/rexml/document.rb:189:in `write' from (irb):3 from /usr/local/ruby18/lib/ruby/1.8/rexml/element.rb:923surfboard:jruby[git:master]$ jruby --1.9 -S irb irb(main):001:0> require 'rexml/document' => true irb(main):002:0> require 'rexml/formatters/transitive' => true irb(main):003:0> REXML::Document.new("<a><b/></a>").write($stdout, 1, true, true) <a ><b /></a >=> [<?xml ... ?>, <a> ... </>]