https://issues.shibboleth.net/jira/browse/CPPOST-64
authorScott Cantor <cantor.2@osu.edu>
Thu, 12 May 2011 22:07:19 +0000 (22:07 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 12 May 2011 22:07:19 +0000 (22:07 +0000)
saml/saml1/core/impl/ProtocolsImpl.cpp

index d765e13..28a5fe1 100644 (file)
@@ -66,7 +66,7 @@ namespace opensaml {
             public AbstractXMLObjectMarshaller,
             public AbstractXMLObjectUnmarshaller
         {
             public AbstractXMLObjectMarshaller,
             public AbstractXMLObjectUnmarshaller
         {
-            xmltooling::QName* m_qname;
+            mutable xmltooling::QName* m_qname;
         public:
             virtual ~RespondWithImpl() {
                 delete m_qname;
         public:
             virtual ~RespondWithImpl() {
                 delete m_qname;
@@ -82,6 +82,9 @@ namespace opensaml {
             }
 
             xmltooling::QName* getQName() const {
             }
 
             xmltooling::QName* getQName() const {
+                if (!m_qname && getDOM() && getDOM()->getTextContent()) {
+                    m_qname = XMLHelper::getNodeValueAsQName(getDOM());
+                }
                 return m_qname;
             }
 
                 return m_qname;
             }
 
@@ -91,8 +94,9 @@ namespace opensaml {
                     auto_ptr_XMLCh temp(m_qname->toString().c_str());
                     setTextContent(temp.get());
                 }
                     auto_ptr_XMLCh temp(m_qname->toString().c_str());
                     setTextContent(temp.get());
                 }
-                else
+                else {
                     setTextContent(nullptr);
                     setTextContent(nullptr);
+                }
             }
 
             IMPL_XMLOBJECT_CLONE(RespondWith);
             }
 
             IMPL_XMLOBJECT_CLONE(RespondWith);