public DeliveryState getLocalState() { return delivery==null ? null : delivery.getLocalState(); }
public DeliveryState getLocalState() { return delivery.getLocalState(); }
public void apply(Delivery d) { if (d.getLocalState() == null) d.disposition(ACCEPTED); } };
public void apply(Delivery d) { if (d.getLocalState() == null) d.disposition(REJECTED); } };
void slide() { if (_window >= 0) { while (_hwm - _lwm > _window) { if (_deliveries.isEmpty()) { throw new RuntimeException("Inconsistent state, empty delivery queue but lwm=" + _lwm + " and hwm=" + _hwm); } Delivery d = _deliveries.get(0); if (d.getLocalState() == null) { d.disposition(ACCEPTED); } d.settle(); _deliveries.remove(0); _lwm++; } } }
public void apply(Delivery d) { if (d.getLocalState() == null) { d.disposition(d.getRemoteState()); } d.settle(); } };
public void updated() { if (_delivery != null) { if (_delivery.getRemoteState() != null) { _status = _disp2status(_delivery.getRemoteState()); } else if (_delivery.remotelySettled()) { DeliveryState disp = _delivery.getLocalState(); if (disp == null) { _status = Status.SETTLED; } else { _status = _disp2status(_delivery.getLocalState()); } } else { _status = Status.PENDING; } } }
public void updated() { if (_delivery != null) { if (_delivery.getRemoteState() != null) { _status = _disp2status(_delivery.getRemoteState()); } else if (_delivery.remotelySettled()) { DeliveryState disp = _delivery.getLocalState(); if (disp == null) { _status = Status.SETTLED; } else { _status = _disp2status(_delivery.getLocalState()); } } else { _status = Status.PENDING; } } }
private void slideWindow() { if (_window >= 0) { while (_hwm - _lwm > _window) { StoreEntry old = getEntry(_lwm); if (old != null) { _tracked.remove( old.getId() ); Delivery d = old.getDelivery(); if (d != null) { if (d.getLocalState() == null) d.disposition(ACCEPTED); d.settle(); } } _lwm++; } } }
private void slideWindow() { if (_window >= 0) { while (_hwm - _lwm > _window) { StoreEntry old = getEntry(_lwm); if (old != null) { _tracked.remove( old.getId() ); Delivery d = old.getDelivery(); if (d != null) { if (d.getLocalState() == null) d.disposition(ACCEPTED); d.settle(); } } _lwm++; } } }
@Override public void rollbackRedelivery(Transaction txn, MessageReference ref, long timeBase, Map<QueueImpl, LinkedList<MessageReference>> queueMap) throws Exception { ProtonTransactionImpl tx = (ProtonTransactionImpl) txn; if (tx.getDeliveries().containsKey(ref)) { Delivery del = tx.getDeliveries().get(ref).getA(); ServerConsumer consumer = (ServerConsumer) tx.getDeliveries().get(ref).getB().getBrokerConsumer(); // Rollback normally if the delivery is not settled or a forced TX rollback is done (e.g. connection drop). if (del.remotelySettled() || !tx.isDischarged()) { super.rollbackRedelivery(tx, ref, timeBase, queueMap); } else { ref.incrementDeliveryCount(); consumer.backToDelivering(ref); del.disposition(del.getLocalState() == null ? del.getDefaultDeliveryState() : del.getLocalState()); } } else { super.rollbackRedelivery(tx, ref, timeBase, queueMap); } } }
@Override public void rollbackRedelivery(Transaction txn, MessageReference ref, long timeBase, Map<QueueImpl, LinkedList<MessageReference>> queueMap) throws Exception { ProtonTransactionImpl tx = (ProtonTransactionImpl) txn; if (tx.getDeliveries().containsKey(ref)) { Delivery del = tx.getDeliveries().get(ref).getA(); ServerConsumer consumer = (ServerConsumer) tx.getDeliveries().get(ref).getB().getBrokerConsumer(); // Rollback normally if the delivery is not settled or a forced TX rollback is done (e.g. connection drop). if (del.remotelySettled() || !tx.isDischarged()) { super.rollbackRedelivery(tx, ref, timeBase, queueMap); } else { ref.incrementDeliveryCount(); consumer.backToDelivering(ref); del.disposition(del.getLocalState() == null ? del.getDefaultDeliveryState() : del.getLocalState()); } } else { super.rollbackRedelivery(tx, ref, timeBase, queueMap); } } }
Status getStatus(Tracker tracker) { Delivery delivery = getDelivery(tracker); if (delivery != null) { DeliveryState state = delivery.getRemoteState(); if (state != null) { return getStatus(state); } else if (delivery.remotelySettled() || delivery.isSettled()) { return getStatus(delivery.getLocalState()); } else { return Status.PENDING; } } else { return Status.UNKNOWN; } }
if (d != null) if (d.getLocalState() == null)
if (d != null) if (d.getLocalState() == null)
if (!(delivery.getLocalState() instanceof TransactionalState)) { markAsInvalid("Transactionally acquire work no tagged as being in a transaction."); } else { TransactionalState txState = (TransactionalState) delivery.getLocalState(); if (!(txState.getOutcome() instanceof Accepted)) { markAsInvalid("Transaction state lacks any outcome"); TransactionalState localTxState = (TransactionalState) delivery.getLocalState(); TransactionalState remoteTxState = (TransactionalState) delivery.getRemoteState();
if (autoAccept && delivery.getLocalState() == null) { accepted(delImpl, true);