Search in sources :

Example 31 with Error

use of com.yahoo.messagebus.Error in project vespa by vespa-engine.

the class MbusServer method dispatchErrorReply.

private void dispatchErrorReply(final Message msg, final int errCode, final String errMsg) {
    final Reply reply = new EmptyReply();
    reply.swapState(msg);
    reply.addError(new Error(errCode, errMsg));
    session.sendReply(reply);
}
Also used : Error(com.yahoo.messagebus.Error)

Example 32 with Error

use of com.yahoo.messagebus.Error in project vespa by vespa-engine.

the class SharedDestinationSession method handleMessage.

@Override
public void handleMessage(Message msg) {
    MessageHandler msgHandler = this.msgHandler.get();
    if (msgHandler == null) {
        Reply reply = new EmptyReply();
        reply.swapState(msg);
        reply.addError(new Error(ErrorCode.SESSION_BUSY, "Session not fully configured yet."));
        sendReply(reply);
        return;
    }
    msgHandler.handleMessage(msg);
}
Also used : Error(com.yahoo.messagebus.Error)

Example 33 with Error

use of com.yahoo.messagebus.Error in project vespa by vespa-engine.

the class SharedIntermediateSession method handleMessage.

@Override
public void handleMessage(Message msg) {
    MessageHandler msgHandler = this.msgHandler.get();
    if (msgHandler == null) {
        Reply reply = new EmptyReply();
        reply.swapState(msg);
        reply.addError(new Error(ErrorCode.SESSION_BUSY, "Session not fully configured yet."));
        sendReply(reply);
        return;
    }
    msgHandler.handleMessage(msg);
}
Also used : Error(com.yahoo.messagebus.Error)

Example 34 with Error

use of com.yahoo.messagebus.Error in project vespa by vespa-engine.

the class RoutingTestCase method requireThatReplyCanBeReusedOnRetry.

@Test
public void requireThatReplyCanBeReusedOnRetry() {
    SimpleProtocol protocol = new SimpleProtocol();
    protocol.addPolicyFactory("ReuseReply", new SimpleProtocol.PolicyFactory() {

        @Override
        public RoutingPolicy create(String param) {
            return new ReuseReplyPolicy(false, Arrays.asList(ErrorCode.APP_FATAL_ERROR), CustomPolicyFactory.parseRoutes(param));
        }
    });
    protocol.addPolicyFactory("SetReply", new SimpleProtocol.PolicyFactory() {

        @Override
        public RoutingPolicy create(String param) {
            return new SetReplyPolicy(false, Arrays.asList(ErrorCode.APP_FATAL_ERROR), param);
        }
    });
    srcServer.mb.putProtocol(protocol);
    assertTrue(srcSession.send(createMessage("msg"), Route.parse("[ReuseReply:[SetReply:foo],dst/session]")).isAccepted());
    Message msg = ((Receptor) dstSession.getMessageHandler()).getMessage(60);
    assertNotNull(msg);
    Reply reply = new EmptyReply();
    reply.swapState(msg);
    reply.addError(new Error(ErrorCode.APP_TRANSIENT_ERROR, "dst"));
    dstSession.reply(reply);
    assertNotNull(msg = ((Receptor) dstSession.getMessageHandler()).getMessage(60));
    dstSession.acknowledge(msg);
    assertNotNull(reply = ((Receptor) srcSession.getReplyHandler()).getReply(60));
    System.out.println(reply.getTrace());
    assertFalse(reply.hasErrors());
}
Also used : SimpleProtocol(com.yahoo.messagebus.test.SimpleProtocol) SimpleMessage(com.yahoo.messagebus.test.SimpleMessage) Receptor(com.yahoo.messagebus.test.Receptor) Error(com.yahoo.messagebus.Error) Test(org.junit.Test)

Example 35 with Error

use of com.yahoo.messagebus.Error in project vespa by vespa-engine.

the class RoutingTestCase method requireThatPolicyCanDisableReselectOnRetry.

@Test
public void requireThatPolicyCanDisableReselectOnRetry() {
    SimpleProtocol protocol = new SimpleProtocol();
    protocol.addPolicyFactory("Custom", new CustomPolicyFactory(false));
    srcServer.mb.putProtocol(protocol);
    assertTrue(srcSession.send(createMessage("msg"), Route.parse("[Custom:dst/session]")).isAccepted());
    Message msg = ((Receptor) dstSession.getMessageHandler()).getMessage(60);
    assertNotNull(msg);
    Reply reply = new EmptyReply();
    reply.swapState(msg);
    reply.addError(new Error(ErrorCode.APP_TRANSIENT_ERROR, "err"));
    dstSession.reply(reply);
    assertNotNull(msg = ((Receptor) dstSession.getMessageHandler()).getMessage(60));
    dstSession.acknowledge(msg);
    assertNotNull(reply = ((Receptor) srcSession.getReplyHandler()).getReply(60));
    System.out.println(reply.getTrace());
    assertFalse(reply.hasErrors());
    assertTrace(Arrays.asList("Selecting [dst/session].", "[APP_TRANSIENT_ERROR @ localhost]", "-[APP_TRANSIENT_ERROR @ localhost]", "Merged [dst/session].", "-Selecting [dst/session].", "Sending reply", "Merged [dst/session]."), reply.getTrace());
}
Also used : SimpleProtocol(com.yahoo.messagebus.test.SimpleProtocol) SimpleMessage(com.yahoo.messagebus.test.SimpleMessage) Receptor(com.yahoo.messagebus.test.Receptor) Error(com.yahoo.messagebus.Error) CustomPolicyFactory(com.yahoo.messagebus.routing.test.CustomPolicyFactory) Test(org.junit.Test)

Aggregations

Error (com.yahoo.messagebus.Error)51 Test (org.junit.Test)22 SimpleMessage (com.yahoo.messagebus.test.SimpleMessage)10 EmptyReply (com.yahoo.messagebus.EmptyReply)9 Reply (com.yahoo.messagebus.Reply)9 Receptor (com.yahoo.messagebus.test.Receptor)9 SimpleProtocol (com.yahoo.messagebus.test.SimpleProtocol)5 RejectedExecutionException (java.util.concurrent.RejectedExecutionException)5 ParseException (com.yahoo.document.select.parser.ParseException)4 CustomPolicyFactory (com.yahoo.messagebus.routing.test.CustomPolicyFactory)4 BucketId (com.yahoo.document.BucketId)3 Message (com.yahoo.messagebus.Message)3 Version (com.yahoo.component.Version)2 DataValue (com.yahoo.jrt.DataValue)2 Protocol (com.yahoo.messagebus.Protocol)2 Hop (com.yahoo.messagebus.routing.Hop)2 Slime (com.yahoo.slime.Slime)2 Utf8Array (com.yahoo.text.Utf8Array)2 Utf8String (com.yahoo.text.Utf8String)2 IOException (java.io.IOException)2