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);
}
}
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");
}
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");
}
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"));
}
}
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);
}
Aggregations