private void resizeFileIfNeeded() { if (file.getSize() < filePosition) { file.setSize(filePosition); } }
private void resizeFileIfNeeded() { if (file.getSize() < filePosition) { file.setSize(filePosition); } }
private void resizeFileIfNeeded() { if (file.getSize() < filePosition) { file.setSize(filePosition); } }
/** * Load implementation for FileCacheKey: must return the metadata of the * requested file. */ private FileMetadata loadIntern(final FileCacheKey key) throws IOException { final String fileName = key.getFileName(); final long fileLength = directory.fileLength(fileName); // We're forcing the buffer size of a to-be-read segment to the full file size: final int bufferSize = (int) Math.min(fileLength, (long)autoChunkSize); final FileMetadata meta = new FileMetadata(bufferSize); meta.setSize(fileLength); return meta; }
/** * Load implementation for FileCacheKey: must return the metadata of the * requested file. */ private FileMetadata loadIntern(final FileCacheKey key) throws IOException { final String fileName = key.getFileName(); final long fileLength = directory.fileLength(fileName); // We're forcing the buffer size of a to-be-read segment to the full file size: final int bufferSize = (int) Math.min(fileLength, (long)autoChunkSize); final FileMetadata meta = new FileMetadata(bufferSize); meta.setSize(fileLength); return meta; }
/** * Load implementation for FileCacheKey: must return the metadata of the * requested file. */ private FileMetadata loadIntern(final FileCacheKey key) throws IOException { final String fileName = key.getFileName(); final long fileModified = directory.fileModified(fileName); final long fileLength = directory.fileLength(fileName); // We're forcing the buffer size of a to-be-read segment to the full file size: final int bufferSize = (int) Math.min(fileLength, (long)autoChunkSize); final FileMetadata meta = new FileMetadata(bufferSize); meta.setLastModified(fileModified); meta.setSize(fileLength); return meta; }
@Test public void roundingTest() { FileMetadata m = new FileMetadata(10); AssertJUnit.assertEquals(0, m.getNumberOfChunks()); m.setSize(10); AssertJUnit.assertEquals(1, m.getNumberOfChunks()); m.setSize(11); AssertJUnit.assertEquals(2, m.getNumberOfChunks()); m = new FileMetadata(11); m.setSize(11); AssertJUnit.assertEquals(1, m.getNumberOfChunks()); m.setSize(22); AssertJUnit.assertEquals(2, m.getNumberOfChunks()); m.setSize(31); m = new FileMetadata(10); m.setSize(31); AssertJUnit.assertEquals(4, m.getNumberOfChunks()); }
fileMetadata.setSize(11); // Make it chunked otherwise no read lock will involved metadata.put(new FileCacheKey("indexName", "fileName", -1), fileMetadata); final LocalLockMergingSegmentReadLocker locker = new LocalLockMergingSegmentReadLocker(locks, chunks, metadata, "indexName", -1);
@Test public void testFileMetaData() { FileMetadata data1 = new FileMetadata(1024); FileMetadata data2 = new FileMetadata(2048); FileMetadata data3 = new FileMetadata(1024); FileMetadata data4 = data1; assert !data1.equals(new FileCacheKey("testIndex", "testFile", -1)); AssertJUnit.assertNotNull(data1); assert data1.equals(data4); assert data1.equals(data3); data3.setSize(2048); assert !data1.equals(data3); assert !data1.equals(data2); AssertJUnit.assertEquals("FileMetadata{ size=" + data1.getSize() + '}', data1.toString()); } }