Search in sources :

Example 11 with Error

use of com.swiftmq.amqp.v100.generated.transport.definitions.Error in project swiftmq-client by iitsoftware.

the class EndFrame method decode.

private void decode() throws Exception {
    List l = body.getValue();
    AMQPType t = null;
    int idx = 0;
    // Factory  : ./.
    if (idx >= l.size())
        return;
    t = (AMQPType) l.get(idx++);
    try {
        if (t.getCode() != AMQPTypeDecoder.NULL)
            error = new Error(((AMQPList) t).getValue());
    } catch (ClassCastException e) {
        throw new Exception("Invalid type of field 'error' in 'End' frame: " + e);
    }
}
Also used : Error(com.swiftmq.amqp.v100.generated.transport.definitions.Error) List(java.util.List) ArrayList(java.util.ArrayList) IOException(java.io.IOException)

Example 12 with Error

use of com.swiftmq.amqp.v100.generated.transport.definitions.Error in project swiftmq-client by iitsoftware.

the class ConnectionDispatcher method visit.

public void visit(POSendClose po) {
    if (pTracer.isEnabled())
        pTracer.trace(toString(), ", visit, po=" + po + " ...");
    if (po.getSemaphore() != null)
        closePO = po;
    try {
        CloseFrame closeFrame = new CloseFrame(0);
        if (po.getCondition() != null) {
            com.swiftmq.amqp.v100.generated.transport.definitions.Error error = new com.swiftmq.amqp.v100.generated.transport.definitions.Error();
            error.setCondition(ErrorConditionFactory.create(po.getCondition()));
            if (po.getDescription() != null)
                error.setDescription(po.getDescription());
            closeFrame.setError(error);
        }
        Semaphore sem = new Semaphore();
        closeFrame.setSemaphore(sem);
        outboundHandler.send(closeFrame);
        sem.waitHere();
    } catch (Exception e) {
        if (po.getSemaphore() != null) {
            po.setException(e.toString());
            po.setSuccess(false);
            po.getSemaphore().notifySingleWaiter();
        }
    }
    if (pTracer.isEnabled())
        pTracer.trace(toString(), ", visit, po=" + po + " done");
}
Also used : ConnectionError(com.swiftmq.amqp.v100.generated.transport.definitions.ConnectionError) Semaphore(com.swiftmq.tools.concurrent.Semaphore) SaslException(javax.security.sasl.SaslException) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException)

Example 13 with Error

use of com.swiftmq.amqp.v100.generated.transport.definitions.Error in project swiftmq-client by iitsoftware.

the class SessionDispatcher method visit.

public void visit(POSendEnd po) {
    if (pTracer.isEnabled())
        pTracer.trace(toString(), ", visit, po=" + po + " ...");
    endPO = po;
    try {
        EndFrame endFrame = new EndFrame(mySession.getChannel());
        if (po.getCondition() != null) {
            com.swiftmq.amqp.v100.generated.transport.definitions.Error error = new com.swiftmq.amqp.v100.generated.transport.definitions.Error();
            error.setCondition(ErrorConditionFactory.create(new AMQPSymbol(po.getCondition())));
            endFrame.setError(error);
        }
        outboundHandler.send(endFrame);
        checkBothSidesEnd();
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (pTracer.isEnabled())
        pTracer.trace(toString(), ", visit, po=" + po + " done");
}
Also used : Error(com.swiftmq.amqp.v100.generated.transport.definitions.Error) Error(com.swiftmq.amqp.v100.generated.transport.definitions.Error) com.swiftmq.amqp.v100.generated.transport.definitions(com.swiftmq.amqp.v100.generated.transport.definitions) IOException(java.io.IOException)

Example 14 with Error

use of com.swiftmq.amqp.v100.generated.transport.definitions.Error in project swiftmq-client by iitsoftware.

the class TransactionController method discharge.

private synchronized void discharge(TxnIdIF txnId, boolean fail) throws AMQPException {
    AMQPMessage msg = new AMQPMessage();
    Discharge discharge = new Discharge();
    discharge.setTxnId(txnId);
    discharge.setFail(new AMQPBoolean(fail));
    msg.setAmqpValue(new AmqpValue(discharge));
    DeliveryStateIF deliveryState = producer.send(msg);
    if (deliveryState instanceof Rejected) {
        Rejected rejected = (Rejected) deliveryState;
        com.swiftmq.amqp.v100.generated.transport.definitions.Error error = rejected.getError();
        if (error != null)
            throw new AMQPException(error.getValueString());
        else
            throw new AMQPException(("Unknown transactiom error"));
    }
}
Also used : DeliveryStateIF(com.swiftmq.amqp.v100.generated.messaging.delivery_state.DeliveryStateIF) Rejected(com.swiftmq.amqp.v100.generated.messaging.delivery_state.Rejected) AMQPBoolean(com.swiftmq.amqp.v100.types.AMQPBoolean) AMQPMessage(com.swiftmq.amqp.v100.messaging.AMQPMessage) AmqpValue(com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpValue)

Example 15 with Error

use of com.swiftmq.amqp.v100.generated.transport.definitions.Error in project swiftmq-client by iitsoftware.

the class Link method remoteDetach.

protected void remoteDetach(Error error) {
    this.error = error;
    mySession.detach(this);
    cancel();
    POCloseLink po = new POCloseLink(null, this);
    mySession.getSessionDispatcher().dispatch(po);
}
Also used : POCloseLink(com.swiftmq.amqp.v100.client.po.POCloseLink)

Aggregations

IOException (java.io.IOException)9 Error (com.swiftmq.amqp.v100.generated.transport.definitions.Error)8 AMQPMessage (com.swiftmq.amqp.v100.messaging.AMQPMessage)4 ArrayList (java.util.ArrayList)4 List (java.util.List)4 Semaphore (com.swiftmq.tools.concurrent.Semaphore)3 StreamException (com.rabbitmq.stream.StreamException)2 POCloseLink (com.swiftmq.amqp.v100.client.po.POCloseLink)2 AmqpValue (com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpValue)2 com.swiftmq.amqp.v100.generated.transport.definitions (com.swiftmq.amqp.v100.generated.transport.definitions)2 ConnectionError (com.swiftmq.amqp.v100.generated.transport.definitions.ConnectionError)2 com.rabbitmq.stream.amqp (com.rabbitmq.stream.amqp)1 POSendMessage (com.swiftmq.amqp.v100.client.po.POSendMessage)1 Accepted (com.swiftmq.amqp.v100.generated.messaging.delivery_state.Accepted)1 DeliveryStateIF (com.swiftmq.amqp.v100.generated.messaging.delivery_state.DeliveryStateIF)1 Rejected (com.swiftmq.amqp.v100.generated.messaging.delivery_state.Rejected)1 com.swiftmq.amqp.v100.generated.messaging.message_format (com.swiftmq.amqp.v100.generated.messaging.message_format)1 AddressString (com.swiftmq.amqp.v100.generated.messaging.message_format.AddressString)1 Header (com.swiftmq.amqp.v100.generated.messaging.message_format.Header)1 MessageIdString (com.swiftmq.amqp.v100.generated.messaging.message_format.MessageIdString)1