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
|
## Get current default ns
|
||||||
def GetCurrDefNS(self):
|
def GetCurrDefNS(self):
|
||||||
namespaces = self.nsMap.get(None)
|
return self._GetNamespaceFromPrefix()
|
||||||
if namespaces:
|
|
||||||
ns = namespaces[-1]
|
|
||||||
else:
|
|
||||||
ns = ""
|
|
||||||
return ns
|
|
||||||
|
|
||||||
## Get namespace and wsdl name from tag
|
## Get namespace and wsdl name from tag
|
||||||
def GetNSAndWsdlname(self, tag):
|
def GetNSAndWsdlname(self, tag):
|
||||||
@@ -521,9 +516,17 @@ class ExpatDeserializerNSHandlers:
|
|||||||
else:
|
else:
|
||||||
prefix, name = None, tag
|
prefix, name = None, tag
|
||||||
# Map prefix to ns
|
# Map prefix to ns
|
||||||
ns = self.nsMap[prefix][-1]
|
ns = self._GetNamespaceFromPrefix(prefix)
|
||||||
return ns, name
|
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
|
## Handle namespace begin
|
||||||
def StartNamespaceDeclHandler(self, prefix, uri):
|
def StartNamespaceDeclHandler(self, prefix, uri):
|
||||||
namespaces = self.nsMap.get(prefix)
|
namespaces = self.nsMap.get(prefix)
|
||||||
|
|||||||
Reference in New Issue
Block a user