You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by di...@apache.org on 2004/07/07 03:49:55 UTC
cvs commit: xml-security/src/org/apache/xml/security/utils IdResolver.java
dims 2004/07/06 18:49:55
Modified: src/org/apache/xml/security/utils IdResolver.java
Log:
Fix for Bug 29595 - Memory retention problem in XMLSecurity 1.1.0 java library
Revision Changes Path
1.17 +8 -3 xml-security/src/org/apache/xml/security/utils/IdResolver.java
Index: IdResolver.java
===================================================================
RCS file: /home/cvs/xml-security/src/org/apache/xml/security/utils/IdResolver.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- IdResolver.java 12 May 2004 12:00:46 -0000 1.16
+++ IdResolver.java 7 Jul 2004 01:49:55 -0000 1.17
@@ -26,6 +26,7 @@
import org.w3c.dom.Element;
import java.util.WeakHashMap;
+import java.lang.ref.WeakReference;
/**
@@ -73,7 +74,7 @@
elementMap = new WeakHashMap();
docMap.put(doc, elementMap);
}
- elementMap.put(idValue, element);
+ elementMap.put(idValue, new WeakReference(element));
}
/**
@@ -208,7 +209,11 @@
log.debug("getElementByIdType() Search for ID " + id);
WeakHashMap elementMap = (WeakHashMap) docMap.get(doc);
if (elementMap != null) {
- return (Element)elementMap.get(id);
+ WeakReference weakReference = (WeakReference) elementMap.get(id);
+ if (weakReference != null)
+ {
+ return (Element) weakReference.get();
+ }
}
return null;
}