Resolve Memory Leak (#113)

- Cleared the reader before marking it unused

Co-authored-by: Martin Hickson <mhickson@bravurasolutions.com>
diff --git a/src/org/apache/xml/utils/XMLReaderManager.java b/src/org/apache/xml/utils/XMLReaderManager.java
index d05c91b..780cc4b 100644
--- a/src/org/apache/xml/utils/XMLReaderManager.java
+++ b/src/org/apache/xml/utils/XMLReaderManager.java
@@ -152,10 +152,15 @@
      * @param reader The XMLReader that's being released.
      */
     public synchronized void releaseXMLReader(XMLReader reader) {
-        // If the reader that's being released is the cached reader
-        // for this thread, remove it from the m_isUse list.
-        if (m_readers.get() == reader && reader != null) {
-            m_inUse.remove(reader);
+         if (reader == null) {
+            return;
         }
+        // If the reader that's being released is the cached reader
+        // for this thread, mark it as no longer being in use.
+        if (m_readers.get() == reader) {
+           m_readers.set(null);
+           m_inUse.put(reader, Boolean.FALSE);
+        }
+        m_inUse.remove(reader);
     }
 }