test_class.declarator: corruptIndexHandler = new TrackingCorruptIndexHandler()
test_class.modifier: private
test_class.original_string: private TrackingCorruptIndexHandler corruptIndexHandler = new TrackingCorruptIndexHandler();
test_class.type: TrackingCorruptIndexHandler
test_class.var_name: corruptIndexHandler
test_class.declarator: hook
test_class.modifier: private
test_class.original_string: private EditorHook hook;
test_class.type: EditorHook
test_class.var_name: hook
test_class.declarator: root = INITIAL_CONTENT
test_class.modifier: private
test_class.original_string: private NodeState root = INITIAL_CONTENT;
test_class.type: NodeState
test_class.var_name: root
test_class.declarator: builder = root.builder()
test_class.modifier: private
test_class.original_string: private NodeBuilder builder = root.builder();
test_class.type: NodeBuilder
test_class.var_name: builder
test_class.declarator: tracker = new IndexTracker()
test_class.modifier: private
test_class.original_string: private IndexTracker tracker = new IndexTracker();
test_class.type: IndexTracker
test_class.var_name: tracker
test_class.file: oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTrackerTest.java
test_class.identifier: IndexTrackerTest
test_case.body: @Test
      public void notifyFailedIndexing() throws Exception{
          createIndex("foo");
  
          //1. Create and populate index
          NodeState before = builder.getNodeState();
          builder.setProperty("foo", "bar");
          NodeState after = builder.getNodeState();
  
          NodeState indexed = hook.processCommit(before, after, CommitInfo.EMPTY);
          tracker.update(indexed);
  
          builder = indexed.builder();
          indexed = corruptIndex("/oak:index/foo");
  
          builder = indexed.builder();
          builder.setProperty("foo", "bar2");
          after = builder.getNodeState();
  
          try {
              hook.processCommit(before, after, CommitInfo.EMPTY);
              fail("Indexing should have failed");
          } catch (CommitFailedException ignore){
  
          }
  
          assertTrue(corruptIndexHandler.getFailingIndexData("async").containsKey("/oak:index/foo"));
      }
test_case.class_method_signature: IndexTrackerTest.notifyFailedIndexing()
test_case.full_signature: @Test public void notifyFailedIndexing()
test_case.identifier: notifyFailedIndexing
test_case.invocations: createIndex getNodeState setProperty getNodeState processCommit update builder corruptIndex builder setProperty getNodeState processCommit fail assertTrue containsKey getFailingIndexData
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void notifyFailedIndexing()
focal_class.declarator: log = LoggerFactory.getLogger(IndexTracker.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(IndexTracker.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: PERF_LOGGER =
              new PerfLogger(LoggerFactory.getLogger(IndexTracker.class.getName() + ".perf"))
focal_class.modifier: private static final
focal_class.original_string: private static final PerfLogger PERF_LOGGER =
              new PerfLogger(LoggerFactory.getLogger(IndexTracker.class.getName() + ".perf"));
focal_class.type: PerfLogger
focal_class.var_name: PERF_LOGGER
focal_class.declarator: readerFactory
focal_class.modifier: private final
focal_class.original_string: private final LuceneIndexReaderFactory readerFactory;
focal_class.type: LuceneIndexReaderFactory
focal_class.var_name: readerFactory
focal_class.declarator: nrtFactory
focal_class.modifier: private final
focal_class.original_string: private final NRTIndexFactory nrtFactory;
focal_class.type: NRTIndexFactory
focal_class.var_name: nrtFactory
focal_class.declarator: badIndexTracker = new BadIndexTracker()
focal_class.modifier: private final
focal_class.original_string: private final BadIndexTracker badIndexTracker = new BadIndexTracker();
focal_class.type: BadIndexTracker
focal_class.var_name: badIndexTracker
focal_class.declarator: root = EMPTY_NODE
focal_class.modifier: private
focal_class.original_string: private NodeState root = EMPTY_NODE;
focal_class.type: NodeState
focal_class.var_name: root
focal_class.declarator: asyncIndexInfoService
focal_class.modifier: private
focal_class.original_string: private AsyncIndexInfoService asyncIndexInfoService;
focal_class.type: AsyncIndexInfoService
focal_class.var_name: asyncIndexInfoService
focal_class.declarator: indices = emptyMap()
focal_class.modifier: private volatile
focal_class.original_string: private volatile Map<String, LuceneIndexNodeManager> indices = emptyMap();
focal_class.type: Map<String, LuceneIndexNodeManager>
focal_class.var_name: indices
focal_class.declarator: refresh
focal_class.modifier: private volatile
focal_class.original_string: private volatile boolean refresh;
focal_class.type: boolean
focal_class.var_name: refresh
focal_class.file: oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTracker.java
focal_class.identifier: IndexTracker
focal_class.class_method_signature: IndexTracker.IndexTracker()
focal_class.full_signature: public  IndexTracker()
focal_class.identifier: IndexTracker
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  IndexTracker()
focal_class.class_method_signature: IndexTracker.IndexTracker(IndexCopier cloner)
focal_class.full_signature: public  IndexTracker(IndexCopier cloner)
focal_class.identifier: IndexTracker
focal_class.modifiers: public
focal_class.parameters: (IndexCopier cloner)
focal_class.signature:  IndexTracker(IndexCopier cloner)
focal_class.class_method_signature: IndexTracker.IndexTracker(LuceneIndexReaderFactory readerFactory)
focal_class.full_signature: public  IndexTracker(LuceneIndexReaderFactory readerFactory)
focal_class.identifier: IndexTracker
focal_class.modifiers: public
focal_class.parameters: (LuceneIndexReaderFactory readerFactory)
focal_class.signature:  IndexTracker(LuceneIndexReaderFactory readerFactory)
focal_class.class_method_signature: IndexTracker.IndexTracker(LuceneIndexReaderFactory readerFactory, @Nullable NRTIndexFactory nrtFactory)
focal_class.full_signature: public  IndexTracker(LuceneIndexReaderFactory readerFactory, @Nullable NRTIndexFactory nrtFactory)
focal_class.identifier: IndexTracker
focal_class.modifiers: public
focal_class.parameters: (LuceneIndexReaderFactory readerFactory, @Nullable NRTIndexFactory nrtFactory)
focal_class.signature:  IndexTracker(LuceneIndexReaderFactory readerFactory, @Nullable NRTIndexFactory nrtFactory)
focal_class.class_method_signature: IndexTracker.getMountInfoProvider()
focal_class.full_signature: public MountInfoProvider getMountInfoProvider()
focal_class.identifier: getMountInfoProvider
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: MountInfoProvider
focal_class.signature: MountInfoProvider getMountInfoProvider()
focal_class.class_method_signature: IndexTracker.close()
focal_class.full_signature: public synchronized void close()
focal_class.identifier: close
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: IndexTracker.update(final NodeState root)
focal_class.full_signature: public synchronized void update(final NodeState root)
focal_class.identifier: update
focal_class.modifiers: public synchronized
focal_class.parameters: (final NodeState root)
focal_class.return: void
focal_class.signature: void update(final NodeState root)
focal_class.class_method_signature: IndexTracker.setAsyncIndexInfoService(AsyncIndexInfoService asyncIndexInfoService)
focal_class.full_signature: public void setAsyncIndexInfoService(AsyncIndexInfoService asyncIndexInfoService)
focal_class.identifier: setAsyncIndexInfoService
focal_class.modifiers: public
focal_class.parameters: (AsyncIndexInfoService asyncIndexInfoService)
focal_class.return: void
focal_class.signature: void setAsyncIndexInfoService(AsyncIndexInfoService asyncIndexInfoService)
focal_class.class_method_signature: IndexTracker.getAsyncIndexInfoService()
focal_class.full_signature: public AsyncIndexInfoService getAsyncIndexInfoService()
focal_class.identifier: getAsyncIndexInfoService
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: AsyncIndexInfoService
focal_class.signature: AsyncIndexInfoService getAsyncIndexInfoService()
focal_class.class_method_signature: IndexTracker.diffAndUpdate(final NodeState root)
focal_class.full_signature: private synchronized void diffAndUpdate(final NodeState root)
focal_class.identifier: diffAndUpdate
focal_class.modifiers: private synchronized
focal_class.parameters: (final NodeState root)
focal_class.return: void
focal_class.signature: void diffAndUpdate(final NodeState root)
focal_class.class_method_signature: IndexTracker.refresh()
focal_class.full_signature: public void refresh()
focal_class.identifier: refresh
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void refresh()
focal_class.class_method_signature: IndexTracker.acquireIndexNode(String path)
focal_class.full_signature: @Nullable public LuceneIndexNode acquireIndexNode(String path)
focal_class.identifier: acquireIndexNode
focal_class.modifiers: @Nullable public
focal_class.parameters: (String path)
focal_class.return: LuceneIndexNode
focal_class.signature: LuceneIndexNode acquireIndexNode(String path)
focal_class.class_method_signature: IndexTracker.findIndexNode(String path)
focal_class.full_signature: @Nullable private synchronized LuceneIndexNode findIndexNode(String path)
focal_class.identifier: findIndexNode
focal_class.modifiers: @Nullable private synchronized
focal_class.parameters: (String path)
focal_class.return: LuceneIndexNode
focal_class.signature: LuceneIndexNode findIndexNode(String path)
focal_class.class_method_signature: IndexTracker.getIndexDefinition(String indexPath)
focal_class.full_signature: @Nullable public LuceneIndexDefinition getIndexDefinition(String indexPath)
focal_class.identifier: getIndexDefinition
focal_class.modifiers: @Nullable public
focal_class.parameters: (String indexPath)
focal_class.return: LuceneIndexDefinition
focal_class.signature: LuceneIndexDefinition getIndexDefinition(String indexPath)
focal_class.class_method_signature: IndexTracker.getIndexNodePaths()
focal_class.full_signature: public Set<String> getIndexNodePaths()
focal_class.identifier: getIndexNodePaths
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Set<String>
focal_class.signature: Set<String> getIndexNodePaths()
focal_class.class_method_signature: IndexTracker.getBadIndexTracker()
focal_class.full_signature: public BadIndexTracker getBadIndexTracker()
focal_class.identifier: getBadIndexTracker
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: BadIndexTracker
focal_class.signature: BadIndexTracker getBadIndexTracker()
focal_class.class_method_signature: IndexTracker.getRoot()
focal_class.full_signature: public NodeState getRoot()
focal_class.identifier: getRoot
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: NodeState
focal_class.signature: NodeState getRoot()
focal_class.class_method_signature: IndexTracker.isStatusChanged(NodeState before, NodeState after)
focal_class.full_signature: private static boolean isStatusChanged(NodeState before, NodeState after)
focal_class.identifier: isStatusChanged
focal_class.modifiers: private static
focal_class.parameters: (NodeState before, NodeState after)
focal_class.return: boolean
focal_class.signature: boolean isStatusChanged(NodeState before, NodeState after)
focal_class.class_method_signature: IndexTracker.isIndexDefinitionChanged(NodeState before, NodeState after)
focal_class.full_signature: private static boolean isIndexDefinitionChanged(NodeState before, NodeState after)
focal_class.identifier: isIndexDefinitionChanged
focal_class.modifiers: private static
focal_class.parameters: (NodeState before, NodeState after)
focal_class.return: boolean
focal_class.signature: boolean isIndexDefinitionChanged(NodeState before, NodeState after)
focal_method.body: public synchronized void update(final NodeState root) {
          if (refresh) {
              this.root = root;
              close();
              refresh = false;
              log.info("Refreshed the opened indexes");
          } else {
              diffAndUpdate(root);
          }
      }
focal_method.class_method_signature: IndexTracker.update(final NodeState root)
focal_method.full_signature: public synchronized void update(final NodeState root)
focal_method.identifier: update
focal_method.invocations: close info diffAndUpdate
focal_method.modifiers: public synchronized
focal_method.parameters: (final NodeState root)
focal_method.return: void
focal_method.signature: void update(final NodeState root)