JRuby

REXML::Document::write is unusable

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Major 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 :
    0

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

Activity

Hide
Hiro Asari added a comment -

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:923
surfboard: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.

Show
Hiro Asari added a comment - 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:923
surfboard: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.
Hide
Charles Oliver Nutter added a comment -

This is a stdlib issue that should be funneled through ruby-core. Since it's already fixed in 1.9 (and in JRuby 1.9 mode) marking as incomplete. If you'd like to see this change in stdlib, you can make a plea for us to patch it ourselves or get ruby-core to backport the patch to 1.8.7.

Show
Charles Oliver Nutter added a comment - This is a stdlib issue that should be funneled through ruby-core. Since it's already fixed in 1.9 (and in JRuby 1.9 mode) marking as incomplete. If you'd like to see this change in stdlib, you can make a plea for us to patch it ourselves or get ruby-core to backport the patch to 1.8.7.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: