Using XMLScanStreamParser in xmlrpc/parser may result in parse errors
I've tried to use the attached script to test if the XMLScanStreamParser would be a suitable alternative for REXMLParser (which often results in out-of-memory-errors when using large data chunks). Unfortunately, using this parser results in other errors:
/usr/lib/ruby/1.9.1/xmlrpc/parser.rb:747:in `on_stag_end': wrong number of arguments (3 for 1) (ArgumentError)
The code calling on_stag_end in xmlscan/parser.rb is quite simple:
def on_stag_end(name, *a)
@visitor.on_stag_end name, *a
The following should probably fix this (although I've got no idea if this has any side effects):
- def on_stag_end(name); end
- def on_stag_end(name, *a); end
An alternative solution might be to remove the definition of on_stag_end completely, that will result in a call to method_missing, which doesn't do anything either.
Updated by hsbt (Hiroshi SHIBATA) over 4 years ago
- Status changed from Open to Closed
Applied in changeset r53981.
- lib/xmlrpc.rb: Removed broken parser named XMLScanStreamParser. It's not works with current Ruby version. [fix GH-1271][ruby-core:59588][Bug #9369]
- lib/xmlrpc/config.rb: ditto.
- lib/xmlrpc/parser.rb: ditto.