Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-2943

ICU collator thread-safety issues

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.1, 4.0-ALPHA
    • Component/s: modules/analysis
    • Labels:
      None
    • Lucene Fields:
      New, Patch Available

      Description

      The ICU Collators (unlike the JDK ones) aren't thread safe: http://userguide.icu-project.org/collation/architecture , a little non-obvious since its not mentioned
      in the javadocs, and its not clear if the docs apply to only the C code, but i looked
      at the source and there is all kinds of internal state.

      So in my opinion, we should clone the icu collators (which are passed in from the outside)
      when creating a new TokenStream/AttributeImpl to prevent problems. This shouldn't be a big
      deal since everything uses reusableTokenStream anyway.

        Attachments

        1. LUCENE-2943.patch
          9 kB
          Robert Muir
        2. LUCENE-2943.patch
          3 kB
          Robert Muir
        3. LUCENE-2943.patch
          2 kB
          Robert Muir

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              rcmuir Robert Muir

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment