org.apache.solr.update.processor

## Class TolerantUpdateProcessor

- java.lang.Object
- - org.apache.solr.update.processor.UpdateRequestProcessor
  - - org.apache.solr.update.processor.TolerantUpdateProcessor

-     public class TolerantUpdateProcessor
      extends UpdateRequestProcessor

  Suppresses errors for individual add/delete commands within a single request. Instead of failing on the first error, at most `maxErrors` errors (or unlimited if `-1==maxErrors`) are logged and recorded the batch continues. The client will receive a `status==200` response, which includes a list of errors that were tolerated.

  If more then `maxErrors` occur, the first exception recorded will be re-thrown, Solr will respond with `status==5xx` or `status==4xx` (depending on the underlying exceptions) and it won't finish processing any more updates in the request. (ie: subsequent update commands in the request will not be processed even if they are valid).

  NOTE: In cloud based collections, this processor expects to NOT be used on `DistributedUpdateProcessor.DistribPhase.FROMLEADER` requests (because any successes that occur locally on the leader are considered successes even if there is some subsequent error on a replica). `TolerantUpdateProcessorFactory` will short circut it away in those requests.

  See Also:
    `TolerantUpdateProcessorFactory`

- - ### Field Summary

    - ### Fields inherited from class org.apache.solr.update.processor.UpdateRequestProcessor

      `next`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TolerantUpdateProcessor(SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next, int maxErrors, DistributedUpdateProcessor.DistribPhase distribPhase)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `finish()`
    `void` | `processAdd(AddUpdateCommand cmd)`
    `void` | `processCommit(CommitUpdateCommand cmd)`
    `void` | `processDelete(DeleteUpdateCommand cmd)`
    `void` | `processMergeIndexes(MergeIndexesCommand cmd)`
    `void` | `processRollback(RollbackUpdateCommand cmd)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TolerantUpdateProcessor

          public TolerantUpdateProcessor(SolrQueryRequest req,
                                         SolrQueryResponse rsp,
                                         UpdateRequestProcessor next,
                                         int maxErrors,
                                         DistributedUpdateProcessor.DistribPhase distribPhase)

  - ### Method Detail

    - #### processAdd

          public void processAdd(AddUpdateCommand cmd)
                          throws IOException

      Overrides:
        `processAdd` in class `UpdateRequestProcessor`
      Throws:
        `IOException`

    - #### processDelete

          public void processDelete(DeleteUpdateCommand cmd)
                             throws IOException

      Overrides:
        `processDelete` in class `UpdateRequestProcessor`
      Throws:
        `IOException`

    - #### processMergeIndexes

          public void processMergeIndexes(MergeIndexesCommand cmd)
                                   throws IOException

      Overrides:
        `processMergeIndexes` in class `UpdateRequestProcessor`
      Throws:
        `IOException`

    - #### processCommit

          public void processCommit(CommitUpdateCommand cmd)
                             throws IOException

      Overrides:
        `processCommit` in class `UpdateRequestProcessor`
      Throws:
        `IOException`

    - #### processRollback

          public void processRollback(RollbackUpdateCommand cmd)
                               throws IOException

      Overrides:
        `processRollback` in class `UpdateRequestProcessor`
      Throws:
        `IOException`

    - #### finish

          public void finish()
                      throws IOException

      Overrides:
        `finish` in class `UpdateRequestProcessor`
      Throws:
        `IOException`

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.