https://bugs.internet2.edu/jira/browse/CPPOST-64
authorscantor <scantor@fb386ef7-a10c-0410-8ebf-fd3f8e989ab0>
Thu, 12 May 2011 22:07:19 +0000 (22:07 +0000)
committerscantor <scantor@fb386ef7-a10c-0410-8ebf-fd3f8e989ab0>
Thu, 12 May 2011 22:07:19 +0000 (22:07 +0000)
git-svn-id: https://svn.shibboleth.net/cpp-opensaml/branches/REL_2@634 fb386ef7-a10c-0410-8ebf-fd3f8e989ab0

saml/saml1/core/impl/ProtocolsImpl.cpp

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