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

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.1, 4.0-ALPHA
    • modules/analysis
    • None
    • 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

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            rcmuir Robert Muir
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment