diff options
Diffstat (limited to 'lib/soap/mapping/registry.rb')
-rw-r--r-- | lib/soap/mapping/registry.rb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/soap/mapping/registry.rb b/lib/soap/mapping/registry.rb index e733f5c95f..823e80666d 100644 --- a/lib/soap/mapping/registry.rb +++ b/lib/soap/mapping/registry.rb @@ -49,8 +49,7 @@ class SOAPException; include Marshallable e.set_backtrace(@cause.backtrace) return e end - klass = Mapping.class_from_name( - Mapping.elename2name(@excn_type_name.to_s)) + klass = Mapping.class_from_name(Mapping.elename2name(@excn_type_name.to_s)) if klass.nil? or not klass <= ::Exception return RuntimeError.new(@cause.inspect) end @@ -89,6 +88,10 @@ class Object; include Marshallable @__xmlele.each do |k, v| return v if k == qname end + # fallback + @__xmlele.each do |k, v| + return v if k.name == qname.name + end nil end |