PrepRequestProcessor (Apache ZooKeeper - Server 3.7.0 API)
Date: 2021-03-17

org.apache.zookeeper.server

## Class PrepRequestProcessor

- java.lang.Object
- - java.lang.Thread
  - - org.apache.zookeeper.server.ZooKeeperThread
    - - org.apache.zookeeper.server.ZooKeeperCriticalThread
      - - org.apache.zookeeper.server.PrepRequestProcessor

- All Implemented Interfaces:
    Runnable, RequestProcessor

      public class PrepRequestProcessor
      extends ZooKeeperCriticalThread
      implements RequestProcessor

  This request processor is generally at the start of a RequestProcessor change. It sets up any transactions associated with requests that change the state of the system. It counts on ZooKeeperServer to update outstandingRequests, so that it can take into account transactions that are in the queue to be applied when generating a transaction.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `PrepRequestProcessor.DigestOpCode`

    - ### Nested classes/interfaces inherited from class java.lang.Thread

      `Thread.State, Thread.UncaughtExceptionHandler`

    - ### Nested classes/interfaces inherited from interface org.apache.zookeeper.server.RequestProcessor

      `RequestProcessor.RequestProcessorException`

  - ### Field Summary

    - ### Fields inherited from class java.lang.Thread

      `MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PrepRequestProcessor(ZooKeeperServer zks, RequestProcessor nextProcessor)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addChangeRecord(org.apache.zookeeper.server.ZooKeeperServer.ChangeRecord c)`
    `static List<ACL>` | `fixupACL(String path, List<Id> authInfo, List<ACL> acls)` This method checks out the acl making sure it isn't null or empty, it has valid schemes and ids, and expanding any relative ids that depend on the requestor's authentication information.
    `protected void` | `pRequest(Request request)` This method will be called inside the ProcessRequestThread, which is a singleton, so there will be a single thread calling this code.
    `protected void` | `pRequest2Txn(int type, long zxid, Request request, Record record, boolean deserialize)` This method will be called inside the ProcessRequestThread, which is a singleton, so there will be a single thread calling this code.
    `void` | `processRequest(Request request)`
    `void` | `run()`
    `static void` | `setFailCreate(boolean b)` method for tests to set failCreate
    `void` | `shutdown()`

    - ### Methods inherited from class org.apache.zookeeper.server.ZooKeeperCriticalThread

      `handleException`

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

      `activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield`

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

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

- - ### Constructor Detail

    - #### PrepRequestProcessor

          public PrepRequestProcessor(ZooKeeperServer zks,
                                      RequestProcessor nextProcessor)

  - ### Method Detail

    - #### setFailCreate

          public static void setFailCreate(boolean b)

      method for tests to set failCreate
      Parameters:
        `b` -

    - #### run

          public void run()

      Specified by:
        `run` in interface `Runnable`
      Overrides:
        `run` in class `Thread`

    - #### addChangeRecord

          protected void addChangeRecord(org.apache.zookeeper.server.ZooKeeperServer.ChangeRecord c)

    - #### pRequest2Txn

          protected void pRequest2Txn(int type,
                                      long zxid,
                                      Request request,
                                      Record record,
                                      boolean deserialize)
                               throws KeeperException,
                                      IOException,
                                      RequestProcessor.RequestProcessorException

      This method will be called inside the ProcessRequestThread, which is a singleton, so there will be a single thread calling this code.
      Parameters:
        `type` -
        `zxid` -
        `request` -
        `record` -
      Throws:
        `KeeperException`
        `IOException`
        `RequestProcessor.RequestProcessorException`

    - #### pRequest

          protected void pRequest(Request request)
                           throws RequestProcessor.RequestProcessorException

      This method will be called inside the ProcessRequestThread, which is a singleton, so there will be a single thread calling this code.
      Parameters:
        `request` -
      Throws:
        `RequestProcessor.RequestProcessorException`

    - #### fixupACL

          public static List<ACL> fixupACL(String path,
                                           List<Id> authInfo,
                                           List<ACL> acls)
                                    throws KeeperException.InvalidACLException

      This method checks out the acl making sure it isn't null or empty, it has valid schemes and ids, and expanding any relative ids that depend on the requestor's authentication information.
      Parameters:
        `authInfo` - list of ACL IDs associated with the client connection
        `acls` - list of ACLs being assigned to the node (create or setACL operation)
      Returns:
        verified and expanded ACLs
      Throws:
        `KeeperException.InvalidACLException`

    - #### processRequest

          public void processRequest(Request request)

      Specified by:
        `processRequest` in interface `RequestProcessor`

    - #### shutdown

          public void shutdown()

      Specified by:
        `shutdown` in interface `RequestProcessor`

Copyright © 2008–2021 The Apache Software Foundation. All rights reserved.