public IndexWriterDelegate getIndexWriterDelegate() { IndexWriter indexWriter = getIndexWriter(); //This to respect the existing semantics of returning null on failure of IW opening if ( indexWriter != null ) { return new IndexWriterDelegate( indexWriter ); } else { return null; } }
/** * This essentially kills the backend: needed to release the IndexWriter lock * so that the CheckIndex task can be run. * You'll need to ignore further issues if indexing is attempted, and even shutdown * might not be graceful (the shutdown is not designed to be recoverable). */ private static void stopBackend(DirectoryBasedIndexManager directoryBasedIndexManager) { WorkspaceHolder backendQueueProcessor = (WorkspaceHolder) directoryBasedIndexManager.getWorkspaceHolder(); backendQueueProcessor.getIndexResources().shutdown(); }
public void shutdown() { //need to close them in this specific order: try { asynchExecutor.flushCloseExecutor(); } finally { workspace.shutDownNow(); } }
public void indexMappingChanged() { resources = resources.onTheFlyRebuild(); workProcessor.updateResources( resources ); }
@Override public void onFlush() { synchronized (lock) { if ( openWriterUsers == 0 ) { indexWriterHolder.closeIndexWriter(); } else { lastExitCloses = true; indexWriterHolder.commitIndexWriter(); } } }
@Override public void onChangeSetApplied(boolean someFailureHappened, boolean streaming) { if ( running.get() == false ) { startScheduledExecutor(); } if ( someFailureHappened ) { indexWriterHolder.forceLockRelease(); } }
LuceneBackendQueueTask(Iterable<LuceneWork> workList, LuceneBackendResources resources, IndexingMonitor monitor) { this.workList = workList; this.resources = resources; this.monitor = monitor; this.modificationLock = resources.getParallelModificationLock(); }
private void triggerWorkspaceReconfiguration() { if ( boundSearchIntegrator != null ) { //otherwise it's too early workspaceHolder.indexMappingChanged(); } }
@Override public IndexWriter getIndexWriter() { synchronized (lock) { IndexWriter indexWriter = super.getIndexWriter(); if ( indexWriter != null ) { openWriterUsers++; } return indexWriter; } }
@Override public void onChangeSetApplied(boolean someFailureHappened, boolean streaming) { if ( someFailureHappened ) { indexWriterHolder.forceLockRelease(); } }
public IndexWriterDelegate getIndexWriterDelegate(ErrorContextBuilder errorContextBuilder) { IndexWriter indexWriter = getIndexWriter( errorContextBuilder ); //This to respect the existing semantics of returning null on failure of IW opening if ( indexWriter != null ) { return new IndexWriterDelegate( indexWriter ); } else { return null; } }
public void shutdown() { //need to close them in this specific order: try { asynchExecutor.flushCloseExecutor(); } finally { workspace.shutDownNow(); } }
public void indexMappingChanged() { resources = resources.onTheFlyRebuild(); workProcessor.updateResources( resources ); }
LuceneBackendQueueTask(Iterable<LuceneWork> workList, LuceneBackendResources resources, IndexingMonitor monitor) { this.workList = workList; this.resources = resources; this.monitor = monitor; this.modificationLock = resources.getParallelModificationLock(); }
public IndexWriterDelegate getIndexWriterDelegate() { IndexWriter indexWriter = getIndexWriter(); //This to respect the existing semantics of returning null on failure of IW opening if ( indexWriter != null ) { return new IndexWriterDelegate( indexWriter ); } else { return null; } }
public IndexWriterDelegate getIndexWriterDelegate(ErrorContextBuilder errorContextBuilder) { IndexWriter indexWriter = getIndexWriter( errorContextBuilder ); //This to respect the existing semantics of returning null on failure of IW opening if ( indexWriter != null ) { return new IndexWriterDelegate( indexWriter ); } else { return null; } }