@Override public int calculateBlockStart(final int position) { int alignment = factory.getAlignment(); int pos = (position / alignment + (position % alignment != 0 ? 1 : 0)) * alignment; return pos; }
@Override public int getAlignment() throws Exception { return fileFactory.getAlignment(); }
@Override public int calculateBlockStart(final int position) { int alignment = factory.getAlignment(); int pos = (position / alignment + (position % alignment != 0 ? 1 : 0)) * alignment; return pos; }
@Override public int getAlignment() throws Exception { return fileFactory.getAlignment(); }
@Override protected int getAlignment() { return fileFactory.getAlignment(); }
@Override protected int getAlignment() { return fileFactory.getAlignment(); }
if (fileSize % fileFactory.getAlignment() != 0) { throw new IllegalArgumentException("Invalid journal-file-size " + fileSize + ", It should be multiple of " + fileFactory.getAlignment());
if (fileSize % fileFactory.getAlignment() != 0) { throw new IllegalArgumentException("Invalid journal-file-size " + fileSize + ", It should be multiple of " + fileFactory.getAlignment());
System.out.println("Using " + factory.getClass().getName() + " to calculate sync times, alignment=" + factory.getAlignment());
System.out.println("Using " + factory.getClass().getName() + " to calculate sync times, alignment=" + factory.getAlignment());
@Test public void testBuffer() throws Exception { SequentialFile file = factory.createSequentialFile("filtetmp.log"); file.open(); ByteBuffer buff = factory.newBuffer(10); Assert.assertEquals(factory.getAlignment(), buff.limit()); file.close(); factory.releaseBuffer(buff); }
protected void checkFill(final SequentialFileFactory factory, final SequentialFile file, final int size) throws Exception { file.fill(size); file.close(); file.open(); file.position(0); ByteBuffer bb = factory.newBuffer(size); int bytesRead = file.read(bb); Assert.assertEquals(calculateRecordSize(size, factory.getAlignment()), bytesRead); for (int i = 0; i < size; i++) { // log.debug(" i is " + i); Assert.assertEquals(0, bb.get(i)); } }
long bytesWritten = sf.position() - initialPos; Assert.assertEquals(calculateRecordSize(bytes1.length, factory.getAlignment()), bytesWritten); bytesWritten = sf.position() - initialPos; Assert.assertEquals(calculateRecordSize(bytes2.length, factory.getAlignment()), bytesWritten); bytesWritten = sf.position() - initialPos; Assert.assertEquals(calculateRecordSize(bytes3.length, factory.getAlignment()), bytesWritten); ByteBuffer rb3 = factory.newBuffer(rbytes3.length); sf.position(calculateRecordSize(bytes1.length, factory.getAlignment()) + calculateRecordSize(bytes2.length, factory.getAlignment()));
long bytesWritten = sf.position() - initialPos; Assert.assertEquals(calculateRecordSize(bytes1.length, factory.getAlignment()), bytesWritten); bytesWritten = sf.position() - initialPos; Assert.assertEquals(calculateRecordSize(bytes2.length, factory.getAlignment()), bytesWritten); bytesWritten = sf.position() - initialPos; Assert.assertEquals(calculateRecordSize(bytes3.length, factory.getAlignment()), bytesWritten); Assert.assertEquals(calculateRecordSize(bytes1.length, factory.getAlignment()), bytesRead); Assert.assertEquals(calculateRecordSize(bytes2.length, factory.getAlignment()), bytesRead); for (int i = 0; i < bytes2.length; i++) { Assert.assertEquals(bytes2[i], rb2.get(i)); Assert.assertEquals(calculateRecordSize(bytes3.length, factory.getAlignment()), bytesRead); for (int i = 0; i < bytes3.length; i++) { Assert.assertEquals(bytes3[i], rb3.get(i));
int fileSize = fixJournalFileSize(config.getJournalFileSize(), journalFF.getAlignment()); Journal localMessage = createMessageJournal(config, criticalErrorListener, fileSize);
@Test public void testOpenClose() throws Exception { SequentialFile sf = factory.createSequentialFile("openclose.amq"); sf.open(); sf.fill(512); String s1 = "cheesecake"; byte[] bytes1 = s1.getBytes(StandardCharsets.UTF_8); long initialPos = sf.position(); sf.write(wrapBuffer(bytes1), true); long bytesWritten = sf.position() - initialPos; Assert.assertEquals(calculateRecordSize(bytes1.length, factory.getAlignment()), bytesWritten); sf.close(); try { sf.write(wrapBuffer(bytes1), true); Assert.fail("Should throw exception"); } catch (Exception e) { } sf.open(); sf.write(wrapBuffer(bytes1), true); sf.close(); }