@Override public void close() { textConversionTarget.release(); } }
@Override public void close() { textConversionTarget.release(); } }
private static void releaseIfNotNull(final Bytes bytesReference) { // Object is no longer reachable, check that it has not already been released if (bytesReference != null && bytesReference.refCount() > 0) { bytesReference.release(); } }
private static boolean processWireQueue() { Wire wireToRelease; boolean released = false; while ((wireToRelease = WIRES_TO_RELEASE.poll()) != null) { try { released = true; wireToRelease.bytes().release(); } catch (IllegalStateException e) { // ignore this - resource may have already been released by explicit close() operation } catch (Throwable t) { LOGGER.warn("Failed to release wire bytes", t); } } return released; }
@After public void before() { bytes.release(); }
private void close() { // the wire ref count will be released here by setting it to null context.wire(null); Wire w0 = wireForIndex; if (w0 != null) w0.bytes().release(); wireForIndex = null; if (store != null) { queue.release(store); } store = null; }
@After public void after() { outbound.release(); }
err.println("Failed to read " + file + " " + ioe); } finally { buffer.release();
@Override public void writeEOF(@NotNull Wire wire, long timeoutMS) { // just in case we are about to release this if (wire.bytes().tryReserve()) { wire.writeEndOfWire(timeoutMS, TimeUnit.MILLISECONDS, writePosition()); wire.bytes().release(); } else { Jvm.debug().on(getClass(), "Tried to writeEOF to as it was being closed"); } }
@After public void checkRegisteredBytes() { outgoingBytes.release(); BytesUtil.checkRegisteredBytes(); } }
private static void readMessage(final ChronicleQueue queue, final boolean manuallyReleaseResources, final Consumer<ExcerptTailer> refHolder) { final Bytes<ByteBuffer> bytes = Bytes.elasticByteBuffer(); try { final ExcerptTailer tailer = queue.createTailer(); while (bytes.isEmpty()) { tailer.toStart().readBytes(bytes); } refHolder.accept(tailer); assertThat(Math.signum(bytes.readInt()) >= 0, is(true)); if (manuallyReleaseResources) { try { ((SingleChronicleQueueExcerpts.StoreTailer) tailer).releaseResources(); } catch (RuntimeException e) { // ignore } } } finally { bytes.release(); } }
f.get(1, TimeUnit.SECONDS); } finally { bytes.release();
@Test public void testSimpleByteTest() { assumeFalse(Jvm.isArm()); try (final ChronicleQueue chronicle = builder(getTmpDir(), wireType) .rollCycle(TEST2_DAILY) .build()) { final ExcerptAppender appender = chronicle.acquireAppender(); Bytes steve = Bytes.allocateDirect("Steve".getBytes()); appender.writeBytes(steve); Bytes jobs = Bytes.allocateDirect("Jobs".getBytes()); appender.writeBytes(jobs); final ExcerptTailer tailer = chronicle.createTailer(); Bytes bytes = Bytes.elasticByteBuffer(); try { tailer.readBytes(bytes); Assert.assertEquals("Steve", bytes.toString()); bytes.clear(); tailer.readBytes(bytes); Assert.assertEquals("Jobs", bytes.toString()); } finally { steve.release(); jobs.release(); bytes.release(); } } }
bytes.release(); long end = System.nanoTime(); long time2 = end - mid;
public void appendMessage(@NotNull ChronicleQueue queue, long expectedIndex, String msg) { @NotNull ExcerptAppender appender = queue.acquireAppender(); switch (appendMode) { case 1: appender.writeDocument(w -> w.write(() -> "msg").text(msg)); break; case 2: Bytes bytes = Bytes.elasticByteBuffer(); new BinaryWire(bytes).write(() -> "msg").text(msg); appender.writeBytes(bytes); bytes.release(); break; default: try (DocumentContext dc = appender.writingDocument()) { Wire wire = dc.wire(); wire.write(() -> "msg").text(msg); } break; } long index = appender.lastIndexAppended(); assertHexEquals(expectedIndex, index); }
@Test public void testReadingLessBytesThanWritten() { try (final ChronicleQueue queue = builder(getTmpDir(), wireType) .build()) { final ExcerptAppender appender = queue.acquireAppender(); final Bytes<byte[]> expected = Bytes.wrapForRead("some long message".getBytes(ISO_8859_1)); for (int i = 0; i < 10; i++) { appender.writeBytes(expected); } final ExcerptTailer tailer = queue.createTailer(); // Sequential read for (int i = 0; i < 10; i++) { Bytes b = Bytes.allocateDirect(8); tailer.readBytes(b); Assert.assertEquals(expected.readInt(0), b.readInt(0)); b.release(); } } }
@Test//(timeout = 5000) public void testTailerReadingEmptyQueue() { assumeFalse(Jvm.isArm()); final File path = DirectoryUtils.tempDir("testTailerReadingEmptyQueue"); final ChronicleQueue rqueue = SingleChronicleQueueBuilder.fieldlessBinary(path) .testBlockSize() .rollCycle(TEST_DAILY) .build(); final ExcerptTailer tailer = rqueue.createTailer(); final ChronicleQueue wqueue = SingleChronicleQueueBuilder.fieldlessBinary(path) .testBlockSize() .rollCycle(TEST_DAILY) .build(); Bytes bytes = Bytes.elasticByteBuffer(); assertFalse(tailer.readBytes(bytes)); final ExcerptAppender appender = wqueue.acquireAppender(); appender.writeBytes(Bytes.wrapForRead("Hello World".getBytes(ISO_8859_1))); bytes.clear(); assertTrue(tailer.readBytes(bytes)); assertEquals("Hello World", bytes.toString()); bytes.release(); }