Refine search
private Rejected createRejected(Symbol amqpError, String message) { Rejected rejected = new Rejected(); ErrorCondition condition = new ErrorCondition(); condition.setCondition(amqpError); condition.setDescription(message); rejected.setError(condition); return rejected; }
public int size() { return _impl.getError() != null ? 1 : 0; } }
/** * Send a "rejected" delivery to the AMQP remote sender * * @param linkName AMQP link name * @param delivery AMQP delivery * @param cause exception related to the rejection cause */ private void rejectedDelivery(String linkName, ProtonDelivery delivery, Throwable cause) { Rejected rejected = new Rejected(); rejected.setError(new ErrorCondition(Symbol.valueOf(AmqpBridge.AMQP_ERROR_SEND_TO_KAFKA), cause.getMessage())); delivery.disposition(rejected, true); log.debug("Delivery sent [rejected] on link {}", linkName); }
@Override public void onResponse(AmqpProtocolConverter converter, Response response) throws IOException { if (!delivery.remotelySettled()) { if (response.isException()) { ExceptionResponse error = (ExceptionResponse) response; Rejected rejected = new Rejected(); ErrorCondition condition = new ErrorCondition(); condition.setCondition(AmqpError.UNAUTHORIZED_ACCESS); } else if (error.getException() instanceof ResourceAllocationException) { condition.setCondition(AmqpError.RESOURCE_LIMIT_EXCEEDED); } else { condition.setCondition(Symbol.valueOf("failed")); condition.setDescription(error.getException().getMessage()); rejected.setError(condition); delivery.disposition(rejected); } else { final DeliveryState remoteState = delivery.getRemoteState(); if (remoteState != null && remoteState instanceof TransactionalState) { TransactionalState txAccepted = new TransactionalState();
@Override public void onMessage(Delivery delivery) throws ActiveMQAMQPException { try { Receiver receiver = ((Receiver) delivery.getLink()); if (delivery.isAborted()) { delivery.settle(); } catch (Exception e) { log.warn(e.getMessage(), e); Rejected rejected = new Rejected(); ErrorCondition condition = new ErrorCondition(); condition.setCondition(AmqpError.UNAUTHORIZED_ACCESS); } else { condition.setCondition(Symbol.valueOf("failed")); condition.setDescription(e.getMessage()); rejected.setError(condition); delivery.disposition(rejected);
Receiver receiver; try { receiver = ((Receiver) delivery.getLink()); if (!delivery.isReadable()) { return; if (delivery.isPartial()) { return; Rejected rejected = new Rejected(); ErrorCondition condition = new ErrorCondition(); condition.setCondition(Symbol.valueOf("failed")); condition.setDescription(e.getMessage()); rejected.setError(condition); delivery.disposition(rejected);
@Override protected void processDelivery(final Delivery delivery, Buffer deliveryBytes) throws Exception { if (!isClosed()) { EncodedMessage em = new EncodedMessage(delivery.getMessageFormat(), deliveryBytes.data, deliveryBytes.offset, deliveryBytes.length); Destination toDestination = message.getJMSDestination(); if (toDestination == null || !(toDestination instanceof ActiveMQDestination)) { Rejected rejected = new Rejected(); ErrorCondition condition = new ErrorCondition(); condition.setCondition(Symbol.valueOf("failed")); condition.setDescription("Missing to field for message sent to an anonymous producer"); rejected.setError(condition); delivery.disposition(rejected); return; message.getMessageId(), getProducerId() + ":" + messageId.getProducerSequenceId()); final DeliveryState remoteState = delivery.getRemoteState(); if (remoteState != null && remoteState instanceof TransactionalState) { TransactionalState txState = (TransactionalState) remoteState;
private void actualDelivery(Delivery delivery, Receiver receiver, ReadableBuffer data, Transaction tx) { try { sessionSPI.serverSend(this, tx, receiver, delivery, address, delivery.getMessageFormat(), data, routingContext); } catch (Exception e) { log.warn(e.getMessage(), e); Rejected rejected = new Rejected(); ErrorCondition condition = new ErrorCondition(); if (e instanceof ActiveMQSecurityException) { condition.setCondition(AmqpError.UNAUTHORIZED_ACCESS); } else { condition.setCondition(Symbol.valueOf("failed")); } connection.runLater(() -> { condition.setDescription(e.getMessage()); rejected.setError(condition); delivery.disposition(rejected); delivery.settle(); flow(); connection.flush(); }); } }
while (deliveries.hasNext()) { Delivery pendingDelivery = deliveries.next(); if (!pendingDelivery.remotelySettled()) { continue; DeliveryState state = pendingDelivery.getRemoteState(); AmqpTransactionId txId = (AmqpTransactionId) pendingDelivery.getContext(); AsyncResult pendingRequest = pendingRequests.get(txId); LOG.debug("Last TX request failed: {}", txId.getTxId()); Rejected rejected = (Rejected) state; Exception cause = AmqpSupport.convertToException(rejected.getError()); JMSException failureCause = null; if (txId.isCommit()) {
SendRequest sr = engineConnection.inProgressOutboundDeliveries.remove(delivery); Exception exception = null; if (delivery.getRemoteState() instanceof Rejected) { final Rejected rejected = (Rejected) delivery.getRemoteState(); final ErrorCondition error = rejected.getError(); if (error == null || error.getDescription() == null) { exception = new Exception("Message was rejected"); } else { exception = new Exception(error.getDescription()); } else if (delivery.getRemoteState() instanceof Released) { exception = new Exception("Message was released"); } else if (delivery.getRemoteState() instanceof Modified) {
@Override public void onResponse(AmqpProtocolConverter converter, Response response) throws IOException { if (response.isException()) { ExceptionResponse er = (ExceptionResponse) response; Rejected rejected = new Rejected(); rejected.setError(new ErrorCondition(Symbol.valueOf("failed"), er.getException().getMessage())); delivery.disposition(rejected); } else { delivery.disposition(Accepted.getInstance()); } LOG.debug("TX: {} settling {}", operation, action); delivery.settle(); session.pumpProtonToSocket(); } });
byte[] deliveryTag = delivery.getTag(); String deliveryTagAsString = StringUtil.convertBytesToString(delivery.getTag()); TRACE_LOGGER.debug("Received a delivery '{}' from '{}'", deliveryTagAsString, this.receivePath); if(deliveryTag == null || deliveryTag.length == 0 || !this.tagsToDeliveriesMap.containsKey(deliveryTagAsString)) ErrorCondition error = rejected.getError(); Exception exception = ExceptionUtil.toException(error); if (ExceptionUtil.isGeneralError(error.getCondition()))
@Override public void onSendComplete(final Delivery delivery) { final DeliveryState outcome = delivery.getRemoteState(); final String deliveryTag = new String(delivery.getTag()); } else if (outcome instanceof Rejected) { final Rejected rejected = (Rejected) outcome; final ErrorCondition error = rejected.getError(); if (ExceptionUtil.isGeneralSendError(error.getCondition())) { synchronized (this.errorConditionLock) { this.lastKnownLinkError = exception;
DeliveryState state = delivery.getRemoteState(); if (state == null) { continue; AsyncResult request = (AsyncResult) delivery.getContext(); Exception deliveryError = null; ErrorCondition remoteError = ((Rejected) outcome).getError(); if (remoteError == null) { remoteError = getEndpoint().getRemoteCondition(); tagGenerator.returnTag(delivery.getTag()); delivery.settle(); toRemove.add(delivery);
DeliveryState remoteState = d.getRemoteState(); ErrorCondition errorCondition = ((Rejected) remoteState).getError(); if (errorCondition != null && errorCondition.getCondition() != null) String errorCode = errorCondition.getCondition().toString(); String errorDescription = ""; if (errorCondition.getDescription() != null) errorDescription = errorCondition.getDescription(); d.free();
@Override public void inspectDeliveryUpdate(Sender sender, Delivery delivery) { DeliveryState state = delivery.getRemoteState(); if (!delivery.remotelySettled()) { markAsInvalid("delivery is not remotely settled"); } if (state instanceof Rejected) { Rejected rejected = (Rejected) state; if (rejected.getError() == null || rejected.getError().getCondition() == null) { markAsInvalid("Delivery should have been Rejected with an error condition"); } else { ErrorCondition error = rejected.getError(); if (!error.getCondition().equals(AmqpError.UNAUTHORIZED_ACCESS)) { markAsInvalid("Should have been tagged with unauthorized access error"); } } } else { markAsInvalid("Delivery should have been Rejected"); } latch.countDown(); } });
ErrorCondition errorCond = rejectedState.getError(); this.errorCondition = errorCond.getCondition(); this.errorDescription = errorCond.getDescription(); this.errorInfo = errorCond.getInfo(); this.amqpResponseVerifier();
final Rejected rejected = (Rejected) deliveryUpdated.getRemoteState(); Tags.HTTP_STATUS.set(currentSpan, HttpURLConnection.HTTP_BAD_REQUEST); if (rejected.getError() == null) { LOG.debug("message [message ID: {}] rejected by peer", messageId); } else { LOG.debug("message [message ID: {}] rejected by peer: {}, {}", messageId, rejected.getError().getCondition(), rejected.getError().getDescription()); events.put(Fields.MESSAGE, String.format("message rejected by peer: %s, %s", rejected.getError().getCondition(), rejected.getError().getDescription()));
public CompletableFuture<Void> deadLetterMessageAsync( byte[] deliveryTag, String deadLetterReason, String deadLetterErrorDescription, Map<String, Object> propertiesToModify, TransactionContext transaction) { Rejected outcome = new Rejected(); ErrorCondition error = new ErrorCondition(ClientConstants.DEADLETTERNAME, null); Map<String, Object> errorInfo = new HashMap<String, Object>(); if(!StringUtil.isNullOrEmpty(deadLetterReason)) { errorInfo.put(ClientConstants.DEADLETTER_REASON_HEADER, deadLetterReason); } if(!StringUtil.isNullOrEmpty(deadLetterErrorDescription)) { errorInfo.put(ClientConstants.DEADLETTER_ERROR_DESCRIPTION_HEADER, deadLetterErrorDescription); } if(propertiesToModify != null) { errorInfo.putAll(propertiesToModify); } error.setInfo(errorInfo); outcome.setError(error); return this.updateMessageStateAsync(deliveryTag, outcome, transaction); }