private void handleAborted(Receiver receiver, Delivery delivery) { splitContent = null; receiver.advance(); delivery.settle(); if(!receiver.getDrain()) { flow(1, false); } else { processForDrainCompletion(); } }
@Override protected void processDelivery(Delivery delivery) { if( !delivery.isReadable() ) { System.out.println("it was not readable!"); return; } if( current==null ) { current = new ByteArrayOutputStream(); } int count; byte data[] = new byte[1024*4]; while( (count = receiver.recv(data, 0, data.length)) > 0 ) { current.write(data, 0, count); } // Expecting more deliveries.. if( count == 0 ) { return; } receiver.advance(); Buffer buffer = current.toBuffer(); current = null; onMessage(delivery, buffer); }
@Override public void onMessage(Delivery delivery) throws ActiveMQAMQPException { ByteBuf buffer = PooledByteBufAllocator.DEFAULT.heapBuffer(1024); try { synchronized (connection.getLock()) { readDelivery(receiver, buffer); MessageImpl clientMessage = decodeMessageImpl(buffer); // This second method could be better // clientMessage.decode(buffer.nioBuffer()); receiver.advance(); delivery.disposition(Accepted.getInstance()); queues.add(clientMessage); } } finally { buffer.release(); } }
int read = this.receiverLink.recv(buffer, 0, buffer.length); this.receiverLink.advance();
receiver.advance();
this.receiverLink.advance();
throw IOExceptionSupport.create(e); getEndpoint().advance(); } else { LOG.trace("{} has a partial incoming Message(s), deferring.", this);
@Override public void onMessage(Delivery delivery) throws ActiveMQAMQPException { connection.requireInHandler(); Receiver receiver = ((Receiver) delivery.getLink()); if (receiver.current() != delivery) { return; } if (delivery.isAborted()) { // Aborting implicitly remotely settles, so advance // receiver to the next delivery and settle locally. receiver.advance(); delivery.settle(); // Replenish the credit if not doing a drain if (!receiver.getDrain()) { receiver.flow(1); } return; } else if (delivery.isPartial()) { return; } ReadableBuffer data = receiver.recv(); receiver.advance(); Transaction tx = null; if (delivery.getRemoteState() instanceof TransactionalState) { TransactionalState txState = (TransactionalState) delivery.getRemoteState(); tx = this.sessionSPI.getTransaction(txState.getTxnId(), false); } final Transaction txUsed = tx; actualDelivery(delivery, receiver, data, txUsed); }
readDelivery(receiver, buffer); receiver.advance();
byte[] buffer = new byte[size]; int read = receiveLink.recv(buffer, 0, buffer.length); receiveLink.advance();
@Override public void delivery(Delivery delivery) throws Exception { if (!delivery.isReadable()) { LOG.debug("Delivery was not readable!"); return; } if (current == null) { current = new ByteArrayOutputStream(); } int count; while ((count = getEndpoint().recv(recvBuffer, 0, recvBuffer.length)) > 0) { current.write(recvBuffer, 0, count); if (current.size() > session.getMaxFrameSize()) { throw new AmqpProtocolException("Frame size of " + current.size() + " larger than max allowed " + session.getMaxFrameSize()); } } // Expecting more deliveries.. if (count == 0) { return; } try { processDelivery(delivery, current.toBuffer()); } finally { getEndpoint().advance(); current = null; } }
@Override public void delivery(Delivery delivery) throws Exception { if (!delivery.isReadable()) { LOG.debug("Delivery was not readable!"); return; } if (current == null) { current = new ByteArrayOutputStream(); } int count; while ((count = getEndpoint().recv(recvBuffer, 0, recvBuffer.length)) > 0) { current.write(recvBuffer, 0, count); if (current.size() > session.getMaxFrameSize()) { throw new AmqpProtocolException("Frame size of " + current.size() + " larger than max allowed " + session.getMaxFrameSize()); } } // Expecting more deliveries.. if (count == 0) { return; } try { processDelivery(delivery, current.toBuffer()); } finally { getEndpoint().advance(); current = null; } }
byte[] data = new byte[amount]; receiver.recv(data, 0, amount); receiver.advance();
byte[] buffer = new byte[size]; int read = recv.recv(buffer, 0, buffer.length); recv.advance();
getEndpoint().advance();
getEndpoint().advance();
byte[] buffer = new byte[size]; int read = recv.recv(buffer, 0, buffer.length); recv.advance();
msg.decode(data); receiver.advance();