From: Will Sobel Date: 2008-03-19T06:16:19+09:00 Subject: REXML in patch 1.8.6 patch 111 and 1.9.0 ------=_Part_9815_13311847.1205874987506 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline The version of REXML in 1.8.6 patch 111 and 1.9.0 are broken. in 1.8.6: The write method in rexml/document.rb line 181 has the following problem: def write( output=$stdout, indent=-1, trans=false, ie_hack=false ) if xml_decl.encoding != "UTF-8" && !output.kind_of?(Output) output = Output.new( output, xml_decl.encoding ) end formatter = if indent > -1 if transitive REXML::Formatters::Transitive.new( indent, ie_hack ) else REXML::Formatters::Pretty.new( indent, ie_hack ) end else REXML::Formatters::Default.new( ie_hack ) end formatter.write( self, output ) end The transitive argument is referenced in the body of the method but is trans in the argument list. This made it into the one-click installer. In 1.9.0 we have the opposite problem: def write( output=$stdout, indent=-1, transitive=false, ie_hack=false ) if xml_decl.encoding != "UTF-8" && !output.kind_of?(Output) output = Output.new( output, xml_decl.encoding ) end formatter = if indent > -1 if trans REXML::Formatters::Transitive.new( indent, ie_hack ) else REXML::Formatters::Pretty.new( indent, ie_hack ) end else REXML::Formatters::Default.new( ie_hack ) end formatter.write( self, output ) end We have transitive in the argument list and the body references trans. Hope this helps, - Will Sobel ------=_Part_9815_13311847.1205874987506 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline The version of REXML in 1.8.6 patch 111 and 1.9.0 are broken.

in 1.8.6:

The write method in rexml/document.rb line 181 has the following problem:

def write( output=$stdout, indent=-1, trans=false, ie_hack=false )
     if xml_decl.encoding != "UTF-8" && !output.kind_of?(Output)
       output = Output.new( output, xml_decl.encoding )
     end
     formatter = if indent > -1
         if transitive
           REXML::Formatters::Transitive.new( indent, ie_hack )
         else
           REXML::Formatters::Pretty.new( indent, ie_hack )
         end
       else
         REXML::Formatters::Default.new( ie_hack )
       end
     formatter.write( self, output )
end

The transitive argument is referenced in the body of the method but is trans in the argument list. This made it into the one-click installer.

In 1.9.0 we have the opposite problem:

   def write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
     if xml_decl.encoding != "UTF-8" && !output.kind_of?(Output)
       output = Output.new( output, xml_decl.encoding )
     end
     formatter = if indent > -1
         if trans
           REXML::Formatters::Transitive.new( indent, ie_hack )
         else
           REXML::Formatters::Pretty.new( indent, ie_hack )
         end
       else
         REXML::Formatters::Default.new( ie_hack )
       end
     formatter.write( self, output )
end

We have transitive in the argument list and the body references trans.

Hope this helps,
- Will Sobel
------=_Part_9815_13311847.1205874987506--