@Override public synchronized void saveBuffer(final OutputStream output) throws ActiveMQException { if (streamClosed) { throw ActiveMQClientMessageBundle.BUNDLE.largeMessageLostSession(); } setOutputStream(output); waitCompletion(0); }
@Override public synchronized void saveBuffer(final OutputStream output) throws ActiveMQException { if (streamClosed) { throw ActiveMQClientMessageBundle.BUNDLE.largeMessageLostSession(); } setOutputStream(output); waitCompletion(0); }
@Override public synchronized void saveBuffer(final OutputStream output) throws ActiveMQException { if (streamClosed) { throw ActiveMQClientMessageBundle.BUNDLE.largeMessageLostSession(); } setOutputStream(output); waitCompletion(0); }
@Override public synchronized void saveBuffer(final OutputStream output) throws ActiveMQException { if (streamClosed) { throw ActiveMQClientMessageBundle.BUNDLE.largeMessageLostSession(); } setOutputStream(output); waitCompletion(0); }
@Override public synchronized void saveBuffer(final OutputStream output) throws ActiveMQException { if (streamClosed) { throw ActiveMQClientMessageBundle.BUNDLE.largeMessageLostSession(); } setOutputStream(output); waitCompletion(0); }
@Override public synchronized void saveBuffer(final OutputStream output) throws ActiveMQException { if (streamClosed) { throw ActiveMQClientMessageBundle.BUNDLE.largeMessageLostSession(); } setOutputStream(output); waitCompletion(0); }
@Override public synchronized void saveBuffer(final OutputStream output) throws ActiveMQException { if (streamClosed) { throw ActiveMQClientMessageBundle.BUNDLE.largeMessageLostSession(); } setOutputStream(output); waitCompletion(0); }
@Override public void run() { try { outBuffer.waitCompletion(0); waiting.countDown(); } catch (Exception e) { e.printStackTrace(); errors.incrementAndGet(); } } };
@Test public void testStreamDataWaitCompletionOnInCompleteBuffer() throws Exception { final LargeMessageControllerImpl outBuffer = new LargeMessageControllerImpl(new FakeConsumerInternal(), 5, 1000); class FakeOutputStream extends OutputStream { @Override public void write(int b) throws IOException { } } outBuffer.setOutputStream(new FakeOutputStream()); long time = System.currentTimeMillis(); try { outBuffer.waitCompletion(0); fail("supposed to throw an exception"); } catch (ActiveMQException e) { } assertTrue("It was supposed to wait at least 1 second", System.currentTimeMillis() - time > 1000); }
@Test public void testStreamDataWaitCompletionOnSlowComingBuffer() throws Exception { final LargeMessageControllerImpl outBuffer = new LargeMessageControllerImpl(new FakeConsumerInternal(), 5, 1000); class FakeOutputStream extends OutputStream { @Override public void write(int b) throws IOException { } } outBuffer.setOutputStream(new FakeOutputStream()); Thread sender = new Thread() { @Override public void run() { try { Thread.sleep(100); outBuffer.addPacket(new byte[]{0}, 1, true); Thread.sleep(100); outBuffer.addPacket(new byte[]{0}, 1, true); Thread.sleep(200); outBuffer.addPacket(new byte[]{0}, 1, false); } catch (Exception e) { } } }; sender.start(); assertTrue(outBuffer.waitCompletion(5000)); sender.join(); }