Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-3733 Remaining TODOs of LUCENE-2858: Finalize AtomicReader/CompositeReader API
  3. LUCENE-3735

Fix PayloadProcessorProvider to no longer use Directory for lookup, instead AtomicReader

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.6, 4.0-ALPHA
    • core/index
    • None
    • New

    Description

      The PayloadProcessorProvider has a broken API, this should be fixed. The current trunk mimics the old behaviour, but not 100%.

      The PayloadProcessorProvider API should return a PayloadProcessor based on the AtomicReader instance that gets merged. As AtomicReader do no longer know the directory they are reside (they could be e.g. FilterIndexReaders, MemoryIndexes,...) a selection by Directory is no longer possible.

      The current code in Lucene trunk mimics the old behavior by doing an instanceof SegmentReader check and then asking for a DirProvider. If something else is merged in, Payload processing is not supported. This should be changed, the old API could be kept backwards compatible by moving the instanceof check in a "convenience class" DirPayloadProcessorProvider, extending PayloadProcessorProvider.

      Attachments

        1. LUCENE-3735.patch
          11 kB
          Uwe Schindler
        2. LUCENE-3735.patch
          9 kB
          Uwe Schindler
        3. LUCENE-3735-3x.patch
          14 kB
          Uwe Schindler

        Activity

          People

            uschindler Uwe Schindler
            uschindler Uwe Schindler
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: