Subject: | Subclasses of XMLRPC::Serializer misbehave because of a "ref" call in SOAP::Lite |
I have to monkey-patch XMLRPC::Serializer to make it work right with
utf8, for Bugzilla. ( See
https://bugzilla.mozilla.org/show_bug.cgi?id=415796 )
In doing this, I fixed the bug, but I found that I was getting *SOAP*
arrays returned in my XML responses instead of XML-RPC arrays. The
offending code is here, in SOAP::Serializer:
elsif (UNIVERSAL::isa($object => 'ARRAY')) {
# Added in SOAP::Lite 0.65_6 to fix an XMLRPC bug
return $self->encodingStyle eq ""
|| ref $self eq 'XMLRPC::Serializer'
? $self->encode_array($object, $name, $type, $attr)
: $self->encode_literal_array($object, $name, $type, $attr);
}
That "ref $self" should be "$self->isa" instead.