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:
Tianhao He
2015-11-09 13:03:09 -08:00
parent 863168c0c4
commit b478073d11

View File

@@ -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)