Added this logic to avoid KeyError fault during Exception deserialization when
SoapAdapter is used at client side. This would happen when prefix doesn't exist in nsMap.
This commit is contained in:
@@ -505,12 +505,7 @@ class ExpatDeserializerNSHandlers:
|
||||
|
||||
## Get current default ns
|
||||
def GetCurrDefNS(self):
|
||||
namespaces = self.nsMap.get(None)
|
||||
if namespaces:
|
||||
ns = namespaces[-1]
|
||||
else:
|
||||
ns = ""
|
||||
return ns
|
||||
return self._GetNamespaceFromPrefix()
|
||||
|
||||
## Get namespace and wsdl name from tag
|
||||
def GetNSAndWsdlname(self, tag):
|
||||
@@ -521,9 +516,17 @@ class ExpatDeserializerNSHandlers:
|
||||
else:
|
||||
prefix, name = None, tag
|
||||
# Map prefix to ns
|
||||
ns = self.nsMap[prefix][-1]
|
||||
ns = self._GetNamespaceFromPrefix(prefix)
|
||||
return ns, name
|
||||
|
||||
def _GetNamespaceFromPrefix(self, prefix = None):
|
||||
namespaces = self.nsMap.get(prefix)
|
||||
if namespaces:
|
||||
ns = namespaces[-1]
|
||||
else:
|
||||
ns = ""
|
||||
return ns
|
||||
|
||||
## Handle namespace begin
|
||||
def StartNamespaceDeclHandler(self, prefix, uri):
|
||||
namespaces = self.nsMap.get(prefix)
|
||||
|
||||
Reference in New Issue
Block a user