lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <>
Subject [jira] Commented: (LUCENE-1805) CloseableThreadLocal should allow null Objects
Date Thu, 13 Aug 2009 14:14:14 GMT


Michael McCandless commented on LUCENE-1805:

bq.  If you call ctl.get() w/o setting anything first, it creates a WeakReference and set
the initValue(), which is ... null

I don't think that's right?

It calls initialValue(), and only if that returns a non-null value will it set it.  Else it
doesn't call set?  (So calling get() twice in a row not having called set shouldn't hit an
exception).  I think?

> CloseableThreadLocal should allow null Objects
> ----------------------------------------------
>                 Key: LUCENE-1805
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: contrib/analyzers
>    Affects Versions: 2.4.1
>            Reporter: Shai Erera
>             Fix For: 2.9
>         Attachments: LUCENE-1805.patch
> CloseableThreadLocal does not allow null Objects in its get() method, but does nothing
to prevent them in set(Object). The comment in get() before assert v != null is irrelevant
- the application might have passed null.
> Null is an important value for Analyzers. Since tokenStreams (a ThreadLocal private member
in Analyzer) is not accessible by extending classes, the only way for an Analyzer to reset
the tokenStreams is by calling setPreviousTokenStream(null).
> I will post a patch w/ a test

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:
For additional commands, e-mail:

View raw message