[
https://issues.apache.org/jira/browse/LUCENE-1186?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christian Kohlschütter updated LUCENE-1186:
-------------------------------------------
Attachment: LUCENE-1186-SegmentReader.patch
Patch: Adds termVectorsLocal.set(null) to SegmentReader#close()
> [PATCH] Clear ThreadLocal instances in close()
> ----------------------------------------------
>
> Key: LUCENE-1186
> URL: https://issues.apache.org/jira/browse/LUCENE-1186
> Project: Lucene - Java
> Issue Type: Improvement
> Affects Versions: 2.3, 2.3.1, 2.4
> Environment: any
> Reporter: Christian Kohlschütter
> Priority: Minor
> Attachments: LUCENE-1186-SegmentReader.patch
>
>
> As already found out in LUCENE-436, there seems to be a garbage collection
> problem with ThreadLocals at certain constellations, resulting in an
> OutOfMemoryError.
> The resolution there was to remove the reference to the ThreadLocal value
> when calling the close() method of the affected classes (see FieldsReader and
> TermInfosReader).
> For Java < 5.0, this can effectively be done by calling
> threadLocal.set(null); for Java >= 5.0, we would call threadLocal.remove()
> Analogously, this should be done in *any* class which creates ThreadLocal
> values
> Right now, two classes of the core API make use of ThreadLocals, but do not
> properly remove their references to the ThreadLocal value
> 1. org.apache.lucene.index.SegmentReader
> 2. org.apache.lucene.analysis.Analyzer
> For SegmentReader, I have attached a simple patch.
> For Analyzer, there currently is no patch because Analyzer does not provide a
> close() method (future to-do?)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]