Index: src/java/org/apache/lucene/index/TermInfosReader.java =================================================================== --- src/java/org/apache/lucene/index/TermInfosReader.java (revision 488854) +++ src/java/org/apache/lucene/index/TermInfosReader.java (working copy) @@ -55,15 +55,6 @@ fieldInfos, true); } - protected void finalize() throws Throwable { - try { - // patch for pre-1.4.2 JVMs, whose ThreadLocals leak - enumerators.set(null); - } finally { - super.finalize(); - } - } - public int getSkipInterval() { return origEnum.skipInterval; } @@ -73,6 +64,7 @@ origEnum.close(); if (indexEnum != null) indexEnum.close(); + enumerators.remove(); } /** Returns the number of term/value pairs in the set. */ Index: src/java/org/apache/lucene/index/SegmentReader.java =================================================================== --- src/java/org/apache/lucene/index/SegmentReader.java (revision 488854) +++ src/java/org/apache/lucene/index/SegmentReader.java (working copy) @@ -187,15 +187,6 @@ } } - protected void finalize() throws Throwable { - try { - // patch for pre-1.4.2 JVMs, whose ThreadLocals leak - termVectorsLocal.set(null); - } finally { - super.finalize(); - } - } - protected void doCommit() throws IOException { if (deletedDocsDirty) { // re-write deleted String oldDelFileName = si.getDelFileName();