private void forceLockClearInternal() { final Directory directory = indexManager.getDirectoryProvider().getDirectory(); log.warn("Forcing clear of index lock"); ((DirectoryExtensions) directory).forceUnlock(IndexWriter.WRITE_LOCK_NAME); }
private void verifyUsesInfinispanDirectory(NRTIndexManager nrti, int expectedChunkSize, EmbeddedCacheManager embeddedCacheManager) throws IllegalArgumentException, IllegalAccessException, SecurityException, NoSuchFieldException { DirectoryProvider directoryProvider = nrti.getDirectoryProvider(); Assert.assertTrue(directoryProvider instanceof InfinispanDirectoryProvider); InfinispanDirectoryProvider ispn = (InfinispanDirectoryProvider)directoryProvider; Directory infinispanDirectory = ispn.getDirectory(); DirectoryExtensions extended = (DirectoryExtensions)infinispanDirectory; Assert.assertEquals(expectedChunkSize, extended.getChunkSize()); Assert.assertEquals(extended.getMetadataCache().getName(), "LuceneIndexesMetadataOWR"); Assert.assertEquals(extended.getDataCache().getName(), "LuceneIndexesDataOWR"); //And finally check we're running it in the same CacheManager: Assert.assertTrue(extended.getDataCache().getCacheManager() == embeddedCacheManager); }
@Test public void testRenameFile() throws Exception { Directory dir = null; try { Cache cache = cacheManager.getCache(); String fileName = "testfile.txt"; String newFileName = "newtestfile.txt"; dir = DirectoryBuilder.newDirectoryInstance(cache, cache, cache, "indexName").create(); createFile(fileName, dir); ((DirectoryExtensions) dir).renameFile(fileName, newFileName); List<String> files = Arrays.asList(dir.listAll()); assert !files.contains(fileName); assert files.contains(newFileName); } finally { if (dir != null) dir.close(); } }
private void verifyDir(final Directory dir, final String expectedIndexName) throws IOException { DirectoryExtensions infDir = (DirectoryExtensions) dir; AssertJUnit.assertEquals(expectedIndexName, infDir.getIndexName()); writeTextToIndex(dir, 0, "hi all"); assertTextIsFoundInIds(dir, "hi", 0); writeTextToIndex(dir, 1, "all together"); assertTextIsFoundInIds(dir, "all", 0, 1); } }
/** * Helper for testReadWholeFile test: * creates a file and then verifies it's readability in specific corner cases. * Then reuses the same parameters to verify the file rename capabilities. */ private void verifyOnBuffer(final String fileName, final int fileSize, final int bufferSize, Cache cache, Directory dir, final int readBuffer) throws IOException { createFileWithRepeatableContent(dir, fileName, fileSize); assertReadByteWorkingCorrectly(dir, fileName, fileSize); assertReadBytesWorkingCorrectly(dir, fileName, fileSize, readBuffer); DirectoryIntegrityCheck.verifyDirectoryStructure(cache, INDEXNAME); final String newFileName = fileName+".bak"; ((DirectoryExtensions)dir).renameFile(fileName, newFileName); assertReadByteWorkingCorrectly(dir, newFileName, fileSize); assertReadBytesWorkingCorrectly(dir, newFileName, fileSize, readBuffer); DirectoryIntegrityCheck.verifyDirectoryStructure(cache, INDEXNAME); List<String> fileList = Arrays.asList(dir.listAll()); assert fileList.contains(newFileName); assert !fileList.contains(fileName); }
private void forceLockClearInternal() { final Directory directory = indexManager.getDirectoryProvider().getDirectory(); log.warn("Forcing clear of index lock"); ((DirectoryExtensions) directory).forceUnlock(IndexWriter.WRITE_LOCK_NAME); }
Object ob3 = cache.get(new ChunkCacheKey(INDEXNAME, "World.txt", 1, BUFFER_SIZE, -1)); ((DirectoryExtensions)dir).renameFile("World.txt", "HelloWorld.txt"); assertNull(cache.get(new FileCacheKey(INDEXNAME, "World.txt", -1))); assertNull(cache.get(new ChunkCacheKey(INDEXNAME, "World.txt", 0, BUFFER_SIZE, -1)));
private void clearLockIfNeeded(AffinityIndexManager affinityIndexManager) { List<Address> members = rpcManager.getMembers(); Address lockHolder = affinityIndexManager.getLockHolder(); log.debugf("Current members are %s, lock holder is %s", members, lockHolder); if (lockHolder != null && !members.contains(lockHolder)) { Directory directory = affinityIndexManager.getDirectoryProvider().getDirectory(); log.debugf("Forcing clear of index lock %s", affinityIndexManager.getIndexName()); ((DirectoryExtensions) directory).forceUnlock(IndexWriter.WRITE_LOCK_NAME); } }
private void clearLockIfNeeded(AffinityIndexManager affinityIndexManager) { List<Address> members = rpcManager.getMembers(); Address lockHolder = affinityIndexManager.getLockHolder(); log.debugf("Current members are %s, lock holder is %s", members, lockHolder); if (lockHolder != null && !members.contains(lockHolder)) { Directory directory = affinityIndexManager.getDirectoryProvider().getDirectory(); log.debugf("Forcing clear of index lock %s", affinityIndexManager.getIndexName()); ((DirectoryExtensions) directory).forceUnlock(IndexWriter.WRITE_LOCK_NAME); } }