[java-opensaml COMMIT] in /trunk/opensaml-core/src: main/java/org/opensaml/core/xml/AbstractXMLObject.java main/java/...

noreply at shibboleth.net noreply at shibboleth.net
Tue Oct 11 19:41:23 EDT 2016


Author: putmanb
Date: Tue Oct 11 19:41:23 2016
New Revision: 4530

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4530&view=rev
Log:
In support of OSJ-168, add supporting code to track source byte[] of an object.

Also update AbstractXMLObject impl so that this object metadata is cleared on the
same conditions as DOM release (which is typically on object mutation).

Added:
    trunk/opensaml-core/src/main/java/org/opensaml/core/xml/persist/AbstractXMLObjectTest.java   (with props)
    trunk/opensaml-core/src/main/java/org/opensaml/core/xml/util/XMLObjectSource.java   (with props)
    trunk/opensaml-core/src/test/java/org/opensaml/core/xml/util/XMLObjectSourceTest.java   (with props)
Modified:
    trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java

Modified: trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java?rev=4530&r1=4529&r2=4530&view=diff
==============================================================================
--- trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java	(original)
+++ trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java	Tue Oct 11 19:41:23 2016
@@ -25,18 +25,19 @@
 import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
+import org.opensaml.core.xml.schema.XSBooleanValue;
+import org.opensaml.core.xml.util.IDIndex;
+import org.opensaml.core.xml.util.XMLObjectSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Element;
+
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.collection.LockableClassToInstanceMultiMap;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.QNameSupport;
 import net.shibboleth.utilities.java.support.xml.XMLConstants;
-
-import org.opensaml.core.xml.schema.XSBooleanValue;
-import org.opensaml.core.xml.util.IDIndex;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Element;
 
 /**
  * An abstract implementation of XMLObject.
@@ -408,6 +409,10 @@
     public void releaseDOM() {
         log.trace("Releasing cached DOM reprsentation for {}", getElementQName());
         setDOM(null);
+        if (getObjectMetadata().containsKey(XMLObjectSource.class)) {
+            log.trace("Releasing cached XMLObjectSource for {}", getElementQName());
+            getObjectMetadata().remove(XMLObjectSource.class);
+        }
     }
 
     /** {@inheritDoc} */



More information about the commits mailing list