test_class.declarator: executor = Executors.newSingleThreadScheduledExecutor()
test_class.modifier: private
test_class.original_string: private ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
test_class.type: ScheduledExecutorService
test_class.var_name: executor
test_class.declarator: statsProvider =
              new MetricStatisticsProvider(ManagementFactory.getPlatformMBeanServer(),executor)
test_class.modifier: private
test_class.original_string: private MetricStatisticsProvider statsProvider =
              new MetricStatisticsProvider(ManagementFactory.getPlatformMBeanServer(),executor);
test_class.type: MetricStatisticsProvider
test_class.var_name: statsProvider
test_class.file: oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java
test_class.identifier: AsyncIndexUpdateTest
test_case.body: @Test
      public void recoverFromMissingCpRef() throws Exception {
          MemoryNodeStore store = new MemoryNodeStore();
          IndexEditorProvider provider = new PropertyIndexEditorProvider();
  
          NodeBuilder builder = store.getRoot().builder();
          createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                  "rootIndex", true, false, ImmutableSet.of("foo"), null)
                  .setProperty(ASYNC_PROPERTY_NAME, "async");
          builder.child("testRoot").setProperty("foo", "abc");
          store.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
          new AsyncIndexUpdate("async", store, provider).run();
          checkPathExists(store.getRoot(), INDEX_DEFINITIONS_NAME, "rootIndex",
                  INDEX_CONTENT_NODE_NAME, "abc", "testRoot");
  
          builder = store.getRoot().builder();
          // change cp ref to point to a non-existing one
          builder.child(ASYNC).setProperty("async", "faulty");
          builder.child("testAnother").setProperty("foo", "def");
          store.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
  
          new AsyncIndexUpdate("async", store, provider).run();
          checkPathExists(store.getRoot(), INDEX_DEFINITIONS_NAME, "rootIndex",
                  INDEX_CONTENT_NODE_NAME, "def", "testAnother");
      }
test_case.class_method_signature: AsyncIndexUpdateTest.recoverFromMissingCpRef()
test_case.full_signature: @Test public void recoverFromMissingCpRef()
test_case.identifier: recoverFromMissingCpRef
test_case.invocations: builder getRoot setProperty createIndexDefinition child of setProperty child merge run checkPathExists getRoot builder getRoot setProperty child setProperty child merge run checkPathExists getRoot
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void recoverFromMissingCpRef()
focal_class.declarator: PROP_ASYNC_NAME = "oak.async"
focal_class.modifier: public static final
focal_class.original_string: public static final String PROP_ASYNC_NAME = "oak.async";
focal_class.type: String
focal_class.var_name: PROP_ASYNC_NAME
focal_class.declarator: log = LoggerFactory
              .getLogger(AsyncIndexUpdate.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory
              .getLogger(AsyncIndexUpdate.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: ASYNC = ":async"
focal_class.modifier: static final
focal_class.original_string: static final String ASYNC = ":async";
focal_class.type: String
focal_class.var_name: ASYNC
focal_class.declarator: DEFAULT_LIFETIME = TimeUnit.DAYS.toMillis(1000)
focal_class.modifier: private static final
focal_class.original_string: private static final long DEFAULT_LIFETIME = TimeUnit.DAYS.toMillis(1000);
focal_class.type: long
focal_class.var_name: DEFAULT_LIFETIME
focal_class.declarator: INTERRUPTED = new CommitFailedException(
              "Async", 1, "Indexing stopped forcefully")
focal_class.modifier: private static final
focal_class.original_string: private static final CommitFailedException INTERRUPTED = new CommitFailedException(
              "Async", 1, "Indexing stopped forcefully");
focal_class.type: CommitFailedException
focal_class.var_name: INTERRUPTED
focal_class.declarator: DEFAULT_ASYNC_TIMEOUT = TimeUnit.MINUTES.toMillis(
              Integer.getInteger("oak.async.lease.timeout", 15))
focal_class.modifier: private static final
focal_class.original_string: private static final long DEFAULT_ASYNC_TIMEOUT = TimeUnit.MINUTES.toMillis(
              Integer.getInteger("oak.async.lease.timeout", 15));
focal_class.type: long
focal_class.var_name: DEFAULT_ASYNC_TIMEOUT
focal_class.declarator: name
focal_class.modifier: private final
focal_class.original_string: private final String name;
focal_class.type: String
focal_class.var_name: name
focal_class.declarator: store
focal_class.modifier: private final
focal_class.original_string: private final NodeStore store;
focal_class.type: NodeStore
focal_class.var_name: store
focal_class.declarator: provider
focal_class.modifier: private final
focal_class.original_string: private final IndexEditorProvider provider;
focal_class.type: IndexEditorProvider
focal_class.var_name: provider
focal_class.declarator: lastIndexedTo
focal_class.modifier: private final
focal_class.original_string: private final String lastIndexedTo;
focal_class.type: String
focal_class.var_name: lastIndexedTo
focal_class.declarator: lifetime = DEFAULT_LIFETIME
focal_class.modifier: private final
focal_class.original_string: private final long lifetime = DEFAULT_LIFETIME;
focal_class.type: long
focal_class.var_name: lifetime
focal_class.declarator: indexStats
focal_class.modifier: private final
focal_class.original_string: private final AsyncIndexStats indexStats;
focal_class.type: AsyncIndexStats
focal_class.var_name: indexStats
focal_class.declarator: switchOnSync
focal_class.modifier: private final
focal_class.original_string: private final boolean switchOnSync;
focal_class.type: boolean
focal_class.var_name: switchOnSync
focal_class.declarator: reindexedDefinitions = new HashSet<String>()
focal_class.modifier: private final
focal_class.original_string: private final Set<String> reindexedDefinitions = new HashSet<String>();
focal_class.type: Set<String>
focal_class.var_name: reindexedDefinitions
focal_class.declarator: missingStrategy = new DefaultMissingIndexProviderStrategy()
focal_class.modifier: private final
focal_class.original_string: private final MissingIndexProviderStrategy missingStrategy = new DefaultMissingIndexProviderStrategy();
focal_class.type: MissingIndexProviderStrategy
focal_class.var_name: missingStrategy
focal_class.declarator: taskSplitter = new IndexTaskSpliter()
focal_class.modifier: private final
focal_class.original_string: private final IndexTaskSpliter taskSplitter = new IndexTaskSpliter();
focal_class.type: IndexTaskSpliter
focal_class.var_name: taskSplitter
focal_class.declarator: runPermit = new Semaphore(1)
focal_class.modifier: private final
focal_class.original_string: private final Semaphore runPermit = new Semaphore(1);
focal_class.type: Semaphore
focal_class.var_name: runPermit
focal_class.declarator: forcedStopFlag = new AtomicBoolean()
focal_class.modifier: private final
focal_class.original_string: private final AtomicBoolean forcedStopFlag = new AtomicBoolean();
focal_class.type: AtomicBoolean
focal_class.var_name: forcedStopFlag
focal_class.declarator: mbeanRegistration
focal_class.modifier: private
focal_class.original_string: private IndexMBeanRegistration mbeanRegistration;
focal_class.type: IndexMBeanRegistration
focal_class.var_name: mbeanRegistration
focal_class.declarator: leaseTimeOut
focal_class.modifier: private
focal_class.original_string: private long leaseTimeOut;
focal_class.type: long
focal_class.var_name: leaseTimeOut
focal_class.declarator: ERROR_WARN_INTERVAL = TimeUnit.MINUTES.toMillis(Integer
              .getInteger("oak.async.warn.interval", 30))
focal_class.modifier: private static
focal_class.original_string: private static long ERROR_WARN_INTERVAL = TimeUnit.MINUTES.toMillis(Integer
              .getInteger("oak.async.warn.interval", 30));
focal_class.type: long
focal_class.var_name: ERROR_WARN_INTERVAL
focal_class.declarator: softTimeOutSecs = Integer.getInteger("oak.async.softTimeOutSecs", 2 * 60)
focal_class.modifier: private
focal_class.original_string: private int softTimeOutSecs = Integer.getInteger("oak.async.softTimeOutSecs", 2 * 60);
focal_class.type: int
focal_class.var_name: softTimeOutSecs
focal_class.declarator: closed
focal_class.modifier: private
focal_class.original_string: private boolean closed;
focal_class.type: boolean
focal_class.var_name: closed
focal_class.declarator: cleanupIntervalMinutes
              = Integer.getInteger("oak.async.checkpointCleanupIntervalMinutes", 5)
focal_class.modifier: private final
focal_class.original_string: private final int cleanupIntervalMinutes
              = Integer.getInteger("oak.async.checkpointCleanupIntervalMinutes", 5);
focal_class.type: int
focal_class.var_name: cleanupIntervalMinutes
focal_class.declarator: lastCheckpointCleanUpTime
focal_class.modifier: private
focal_class.original_string: private long lastCheckpointCleanUpTime;
focal_class.type: long
focal_class.var_name: lastCheckpointCleanUpTime
focal_class.declarator: validatorProviders = Collections.emptyList()
focal_class.modifier: private
focal_class.original_string: private List<ValidatorProvider> validatorProviders = Collections.emptyList();
focal_class.type: List<ValidatorProvider>
focal_class.var_name: validatorProviders
focal_class.declarator: corruptIndexHandler = new TrackingCorruptIndexHandler()
focal_class.modifier: private
focal_class.original_string: private TrackingCorruptIndexHandler corruptIndexHandler = new TrackingCorruptIndexHandler();
focal_class.type: TrackingCorruptIndexHandler
focal_class.var_name: corruptIndexHandler
focal_class.declarator: statisticsProvider
focal_class.modifier: private final
focal_class.original_string: private final StatisticsProvider statisticsProvider;
focal_class.type: StatisticsProvider
focal_class.var_name: statisticsProvider
focal_class.file: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
focal_class.identifier: AsyncIndexUpdate
focal_class.interfaces: implements Runnable, Closeable
focal_class.class_method_signature: AsyncIndexUpdate.AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider, boolean switchOnSync)
focal_class.full_signature: public  AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider, boolean switchOnSync)
focal_class.identifier: AsyncIndexUpdate
focal_class.modifiers: public
focal_class.parameters: (@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider, boolean switchOnSync)
focal_class.signature:  AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider, boolean switchOnSync)
focal_class.class_method_signature: AsyncIndexUpdate.AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider, StatisticsProvider statsProvider, boolean switchOnSync)
focal_class.full_signature: public  AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider, StatisticsProvider statsProvider, boolean switchOnSync)
focal_class.identifier: AsyncIndexUpdate
focal_class.modifiers: public
focal_class.parameters: (@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider, StatisticsProvider statsProvider, boolean switchOnSync)
focal_class.signature:  AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider, StatisticsProvider statsProvider, boolean switchOnSync)
focal_class.class_method_signature: AsyncIndexUpdate.AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider)
focal_class.full_signature: public  AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider)
focal_class.identifier: AsyncIndexUpdate
focal_class.modifiers: public
focal_class.parameters: (@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider)
focal_class.signature:  AsyncIndexUpdate(@NotNull String name, @NotNull NodeStore store,
                              @NotNull IndexEditorProvider provider)
focal_class.class_method_signature: AsyncIndexUpdate.checkValidName(String asyncName)
focal_class.full_signature: public static String checkValidName(String asyncName)
focal_class.identifier: checkValidName
focal_class.modifiers: public static
focal_class.parameters: (String asyncName)
focal_class.return: String
focal_class.signature: String checkValidName(String asyncName)
focal_class.class_method_signature: AsyncIndexUpdate.isAsyncLaneName(String asyncName)
focal_class.full_signature: public static boolean isAsyncLaneName(String asyncName)
focal_class.identifier: isAsyncLaneName
focal_class.modifiers: public static
focal_class.parameters: (String asyncName)
focal_class.return: boolean
focal_class.signature: boolean isAsyncLaneName(String asyncName)
focal_class.class_method_signature: AsyncIndexUpdate.run()
focal_class.full_signature: @Override public synchronized void run()
focal_class.identifier: run
focal_class.modifiers: @Override public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void run()
focal_class.class_method_signature: AsyncIndexUpdate.close()
focal_class.full_signature: @Override public void close()
focal_class.identifier: close
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: AsyncIndexUpdate.runWhenPermitted()
focal_class.full_signature: private void runWhenPermitted()
focal_class.identifier: runWhenPermitted
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void runWhenPermitted()
focal_class.class_method_signature: AsyncIndexUpdate.markFailingIndexesAsCorrupt(NodeBuilder builder)
focal_class.full_signature: private void markFailingIndexesAsCorrupt(NodeBuilder builder)
focal_class.identifier: markFailingIndexesAsCorrupt
focal_class.modifiers: private
focal_class.parameters: (NodeBuilder builder)
focal_class.return: void
focal_class.signature: void markFailingIndexesAsCorrupt(NodeBuilder builder)
focal_class.class_method_signature: AsyncIndexUpdate.childBuilder(NodeBuilder nb, String path)
focal_class.full_signature: private static NodeBuilder childBuilder(NodeBuilder nb, String path)
focal_class.identifier: childBuilder
focal_class.modifiers: private static
focal_class.parameters: (NodeBuilder nb, String path)
focal_class.return: NodeBuilder
focal_class.signature: NodeBuilder childBuilder(NodeBuilder nb, String path)
focal_class.class_method_signature: AsyncIndexUpdate.maybeCleanUpCheckpoints()
focal_class.full_signature: private void maybeCleanUpCheckpoints()
focal_class.identifier: maybeCleanUpCheckpoints
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void maybeCleanUpCheckpoints()
focal_class.class_method_signature: AsyncIndexUpdate.cleanUpCheckpoints()
focal_class.full_signature:  void cleanUpCheckpoints()
focal_class.identifier: cleanUpCheckpoints
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void cleanUpCheckpoints()
focal_class.class_method_signature: AsyncIndexUpdate.newAsyncUpdateCallback(NodeStore store,
                                                           String name, long leaseTimeOut, String beforeCheckpoint,
                                                           AsyncIndexStats indexStats,
                                                           AtomicBoolean stopFlag)
focal_class.full_signature: protected AsyncUpdateCallback newAsyncUpdateCallback(NodeStore store,
                                                           String name, long leaseTimeOut, String beforeCheckpoint,
                                                           AsyncIndexStats indexStats,
                                                           AtomicBoolean stopFlag)
focal_class.identifier: newAsyncUpdateCallback
focal_class.modifiers: protected
focal_class.parameters: (NodeStore store,
                                                           String name, long leaseTimeOut, String beforeCheckpoint,
                                                           AsyncIndexStats indexStats,
                                                           AtomicBoolean stopFlag)
focal_class.return: AsyncUpdateCallback
focal_class.signature: AsyncUpdateCallback newAsyncUpdateCallback(NodeStore store,
                                                           String name, long leaseTimeOut, String beforeCheckpoint,
                                                           AsyncIndexStats indexStats,
                                                           AtomicBoolean stopFlag)
focal_class.class_method_signature: AsyncIndexUpdate.updateIndex(NodeState before, String beforeCheckpoint,
                                    NodeState after, String afterCheckpoint, String afterTime,
                                    AsyncUpdateCallback callback)
focal_class.full_signature: protected boolean updateIndex(NodeState before, String beforeCheckpoint,
                                    NodeState after, String afterCheckpoint, String afterTime,
                                    AsyncUpdateCallback callback)
focal_class.identifier: updateIndex
focal_class.modifiers: protected
focal_class.parameters: (NodeState before, String beforeCheckpoint,
                                    NodeState after, String afterCheckpoint, String afterTime,
                                    AsyncUpdateCallback callback)
focal_class.return: boolean
focal_class.signature: boolean updateIndex(NodeState before, String beforeCheckpoint,
                                    NodeState after, String afterCheckpoint, String afterTime,
                                    AsyncUpdateCallback callback)
focal_class.class_method_signature: AsyncIndexUpdate.configureRateEstimator(IndexUpdate indexUpdate)
focal_class.full_signature: private void configureRateEstimator(IndexUpdate indexUpdate)
focal_class.identifier: configureRateEstimator
focal_class.modifiers: private
focal_class.parameters: (IndexUpdate indexUpdate)
focal_class.return: void
focal_class.signature: void configureRateEstimator(IndexUpdate indexUpdate)
focal_class.class_method_signature: AsyncIndexUpdate.leasify(String name)
focal_class.full_signature: public static String leasify(String name)
focal_class.identifier: leasify
focal_class.modifiers: public static
focal_class.parameters: (String name)
focal_class.return: String
focal_class.signature: String leasify(String name)
focal_class.class_method_signature: AsyncIndexUpdate.lastIndexedTo(String name)
focal_class.full_signature: static String lastIndexedTo(String name)
focal_class.identifier: lastIndexedTo
focal_class.modifiers: static
focal_class.parameters: (String name)
focal_class.return: String
focal_class.signature: String lastIndexedTo(String name)
focal_class.class_method_signature: AsyncIndexUpdate.getTempCpName(String name)
focal_class.full_signature: private static String getTempCpName(String name)
focal_class.identifier: getTempCpName
focal_class.modifiers: private static
focal_class.parameters: (String name)
focal_class.return: String
focal_class.signature: String getTempCpName(String name)
focal_class.class_method_signature: AsyncIndexUpdate.isLeaseCheckEnabled(long leaseTimeOut)
focal_class.full_signature: private static boolean isLeaseCheckEnabled(long leaseTimeOut)
focal_class.identifier: isLeaseCheckEnabled
focal_class.modifiers: private static
focal_class.parameters: (long leaseTimeOut)
focal_class.return: boolean
focal_class.signature: boolean isLeaseCheckEnabled(long leaseTimeOut)
focal_class.class_method_signature: AsyncIndexUpdate.mergeWithConcurrencyCheck(final NodeStore store, List<ValidatorProvider> validatorProviders,
                                                    NodeBuilder builder, final String checkpoint, final Long lease,
                                                    final String name)
focal_class.full_signature: private static void mergeWithConcurrencyCheck(final NodeStore store, List<ValidatorProvider> validatorProviders,
                                                    NodeBuilder builder, final String checkpoint, final Long lease,
                                                    final String name)
focal_class.identifier: mergeWithConcurrencyCheck
focal_class.modifiers: private static
focal_class.parameters: (final NodeStore store, List<ValidatorProvider> validatorProviders,
                                                    NodeBuilder builder, final String checkpoint, final Long lease,
                                                    final String name)
focal_class.return: void
focal_class.signature: void mergeWithConcurrencyCheck(final NodeStore store, List<ValidatorProvider> validatorProviders,
                                                    NodeBuilder builder, final String checkpoint, final Long lease,
                                                    final String name)
focal_class.class_method_signature: AsyncIndexUpdate.createCommitInfo()
focal_class.full_signature: private static CommitInfo createCommitInfo()
focal_class.identifier: createCommitInfo
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: CommitInfo
focal_class.signature: CommitInfo createCommitInfo()
focal_class.class_method_signature: AsyncIndexUpdate.setLeaseTimeOut(long leaseTimeOut)
focal_class.full_signature: protected AsyncIndexUpdate setLeaseTimeOut(long leaseTimeOut)
focal_class.identifier: setLeaseTimeOut
focal_class.modifiers: protected
focal_class.parameters: (long leaseTimeOut)
focal_class.return: AsyncIndexUpdate
focal_class.signature: AsyncIndexUpdate setLeaseTimeOut(long leaseTimeOut)
focal_class.class_method_signature: AsyncIndexUpdate.getLeaseTimeOut()
focal_class.full_signature: protected long getLeaseTimeOut()
focal_class.identifier: getLeaseTimeOut
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long getLeaseTimeOut()
focal_class.class_method_signature: AsyncIndexUpdate.setCloseTimeOut(int timeOutInSec)
focal_class.full_signature: protected AsyncIndexUpdate setCloseTimeOut(int timeOutInSec)
focal_class.identifier: setCloseTimeOut
focal_class.modifiers: protected
focal_class.parameters: (int timeOutInSec)
focal_class.return: AsyncIndexUpdate
focal_class.signature: AsyncIndexUpdate setCloseTimeOut(int timeOutInSec)
focal_class.class_method_signature: AsyncIndexUpdate.setValidatorProviders(List<ValidatorProvider> validatorProviders)
focal_class.full_signature: public void setValidatorProviders(List<ValidatorProvider> validatorProviders)
focal_class.identifier: setValidatorProviders
focal_class.modifiers: public
focal_class.parameters: (List<ValidatorProvider> validatorProviders)
focal_class.return: void
focal_class.signature: void setValidatorProviders(List<ValidatorProvider> validatorProviders)
focal_class.class_method_signature: AsyncIndexUpdate.setCorruptIndexHandler(TrackingCorruptIndexHandler corruptIndexHandler)
focal_class.full_signature: public void setCorruptIndexHandler(TrackingCorruptIndexHandler corruptIndexHandler)
focal_class.identifier: setCorruptIndexHandler
focal_class.modifiers: public
focal_class.parameters: (TrackingCorruptIndexHandler corruptIndexHandler)
focal_class.return: void
focal_class.signature: void setCorruptIndexHandler(TrackingCorruptIndexHandler corruptIndexHandler)
focal_class.class_method_signature: AsyncIndexUpdate.getCorruptIndexHandler()
focal_class.full_signature:  TrackingCorruptIndexHandler getCorruptIndexHandler()
focal_class.identifier: getCorruptIndexHandler
focal_class.parameters: ()
focal_class.return: TrackingCorruptIndexHandler
focal_class.signature: TrackingCorruptIndexHandler getCorruptIndexHandler()
focal_class.class_method_signature: AsyncIndexUpdate.isClosed()
focal_class.full_signature: public boolean isClosed()
focal_class.identifier: isClosed
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isClosed()
focal_class.class_method_signature: AsyncIndexUpdate.isClosing()
focal_class.full_signature:  boolean isClosing()
focal_class.identifier: isClosing
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isClosing()
focal_class.class_method_signature: AsyncIndexUpdate.preAsyncRunStatsStats(AsyncIndexStats stats)
focal_class.full_signature: private static void preAsyncRunStatsStats(AsyncIndexStats stats)
focal_class.identifier: preAsyncRunStatsStats
focal_class.modifiers: private static
focal_class.parameters: (AsyncIndexStats stats)
focal_class.return: void
focal_class.signature: void preAsyncRunStatsStats(AsyncIndexStats stats)
focal_class.class_method_signature: AsyncIndexUpdate.postAsyncRunStatsStatus(AsyncIndexStats stats)
focal_class.full_signature: private static void postAsyncRunStatsStatus(AsyncIndexStats stats)
focal_class.identifier: postAsyncRunStatsStatus
focal_class.modifiers: private static
focal_class.parameters: (AsyncIndexStats stats)
focal_class.return: void
focal_class.signature: void postAsyncRunStatsStatus(AsyncIndexStats stats)
focal_class.class_method_signature: AsyncIndexUpdate.now()
focal_class.full_signature: private static String now()
focal_class.identifier: now
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String now()
focal_class.class_method_signature: AsyncIndexUpdate.getIndexStats()
focal_class.full_signature: public AsyncIndexStats getIndexStats()
focal_class.identifier: getIndexStats
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: AsyncIndexStats
focal_class.signature: AsyncIndexStats getIndexStats()
focal_class.class_method_signature: AsyncIndexUpdate.isFinished()
focal_class.full_signature: public boolean isFinished()
focal_class.identifier: isFinished
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isFinished()
focal_class.class_method_signature: AsyncIndexUpdate.noVisibleChanges(NodeState before, NodeState after)
focal_class.full_signature: private static boolean noVisibleChanges(NodeState before, NodeState after)
focal_class.identifier: noVisibleChanges
focal_class.modifiers: private static
focal_class.parameters: (NodeState before, NodeState after)
focal_class.return: boolean
focal_class.signature: boolean noVisibleChanges(NodeState before, NodeState after)
focal_class.class_method_signature: AsyncIndexUpdate.isHidden(String name)
focal_class.full_signature: private static boolean isHidden(String name)
focal_class.identifier: isHidden
focal_class.modifiers: private static
focal_class.parameters: (String name)
focal_class.return: boolean
focal_class.signature: boolean isHidden(String name)
focal_class.class_method_signature: AsyncIndexUpdate.isFailing()
focal_class.full_signature: public boolean isFailing()
focal_class.identifier: isFailing
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isFailing()
focal_class.class_method_signature: AsyncIndexUpdate.getStrings(NodeBuilder b, String p)
focal_class.full_signature: private static Iterable<String> getStrings(NodeBuilder b, String p)
focal_class.identifier: getStrings
focal_class.modifiers: private static
focal_class.parameters: (NodeBuilder b, String p)
focal_class.return: Iterable<String>
focal_class.signature: Iterable<String> getStrings(NodeBuilder b, String p)
focal_class.class_method_signature: AsyncIndexUpdate.getTaskSplitter()
focal_class.full_signature:  IndexTaskSpliter getTaskSplitter()
focal_class.identifier: getTaskSplitter
focal_class.parameters: ()
focal_class.return: IndexTaskSpliter
focal_class.signature: IndexTaskSpliter getTaskSplitter()
focal_class.class_method_signature: AsyncIndexUpdate.setIndexMBeanRegistration(IndexMBeanRegistration mbeanRegistration)
focal_class.full_signature: public void setIndexMBeanRegistration(IndexMBeanRegistration mbeanRegistration)
focal_class.identifier: setIndexMBeanRegistration
focal_class.modifiers: public
focal_class.parameters: (IndexMBeanRegistration mbeanRegistration)
focal_class.return: void
focal_class.signature: void setIndexMBeanRegistration(IndexMBeanRegistration mbeanRegistration)
focal_class.class_method_signature: AsyncIndexUpdate.getName()
focal_class.full_signature: public String getName()
focal_class.identifier: getName
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getName()
focal_class.class_method_signature: AsyncIndexUpdate.newConcurrentUpdateException()
focal_class.full_signature: private static CommitFailedException newConcurrentUpdateException()
focal_class.identifier: newConcurrentUpdateException
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: CommitFailedException
focal_class.signature: CommitFailedException newConcurrentUpdateException()
focal_method.body: @Override
      public synchronized void run() {
          boolean permitAcquired = false;
          try{
              if (runPermit.tryAcquire()){
                  permitAcquired = true;
                  runWhenPermitted();
              } else {
                  log.warn("[{}] Could not acquire run permit. Stop flag set to [{}] Skipping the run", name, forcedStopFlag);
              }
          } finally {
              if (permitAcquired){
                  runPermit.release();
              }
          }
      }
focal_method.class_method_signature: AsyncIndexUpdate.run()
focal_method.full_signature: @Override public synchronized void run()
focal_method.identifier: run
focal_method.invocations: tryAcquire runWhenPermitted warn release
focal_method.modifiers: @Override public synchronized
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void run()