List of usage examples for org.apache.thrift TApplicationException TApplicationException
public TApplicationException()
From source file:com.alibaba.dubbo.rpc.protocol.thrift.ThriftCodecTest.java
License:Open Source License
@Test public void testDecodeExceptionResponse() throws Exception { URL url = URL.valueOf(ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.class.getName()); Channel channel = new MockedChannel(url); RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream(128); Request request = createRequest(); DefaultFuture future = new DefaultFuture(channel, request, 10); TMessage message = new TMessage("echoString", TMessageType.EXCEPTION, ThriftCodec.getSeqId()); TTransport transport = new TIOStreamTransport(bos); TBinaryProtocol protocol = new TBinaryProtocol(transport); TApplicationException exception = new TApplicationException(); int messageLength, headerLength; // prepare//from w ww. j av a2s . com protocol.writeI16(ThriftCodec.MAGIC); protocol.writeI32(Integer.MAX_VALUE); protocol.writeI16(Short.MAX_VALUE); protocol.writeByte(ThriftCodec.VERSION); protocol.writeString(Demo.class.getName()); protocol.writeI64(request.getId()); protocol.getTransport().flush(); headerLength = bos.size(); protocol.writeMessageBegin(message); exception.write(protocol); protocol.writeMessageEnd(); protocol.getTransport().flush(); int oldIndex = messageLength = bos.size(); try { bos.setWriteIndex(ThriftCodec.MESSAGE_LENGTH_INDEX); protocol.writeI32(messageLength); bos.setWriteIndex(ThriftCodec.MESSAGE_HEADER_LENGTH_INDEX); protocol.writeI16((short) (0xffff & headerLength)); } finally { bos.setWriteIndex(oldIndex); } // prepare ByteArrayInputStream bis = new ByteArrayInputStream(encodeFrame(bos.toByteArray())); Object obj = codec.decode((Channel) null, bis); Assert.assertNotNull(obj); Assert.assertTrue(obj instanceof Response); Response response = (Response) obj; Assert.assertTrue(response.getResult() instanceof RpcResult); RpcResult result = (RpcResult) response.getResult(); Assert.assertTrue(result.hasException()); Assert.assertTrue(result.getException() instanceof RpcException); }
From source file:org.apache.accumulo.core.rpc.TServiceClientWrapper.java
License:Apache License
@Override protected void receiveBase(TBase<?, ?> result, String methodName) throws TException { TMessage msg = iprot_.readMessageBegin(); if (msg.type == TMessageType.EXCEPTION) { TApplicationException x = new TApplicationException(); x.read(iprot_);// ww w.j a va 2 s . c o m iprot_.readMessageEnd(); throw x; } if (msg.seqid != seqid_) { throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID, String.format( "%s failed: out of sequence response: expected %d but got %d", methodName, seqid_, msg.seqid)); } result.read(iprot_); iprot_.readMessageEnd(); }
From source file:org.apache.dubbo.rpc.protocol.thrift.ThriftCodecTest.java
License:Apache License
@Test public void testDecodeExceptionResponse() throws Exception { URL url = URL.valueOf(ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.class.getName()); Channel channel = new MockedChannel(url); RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream(128); Request request = createRequest(); DefaultFuture future = new DefaultFuture(channel, request, 10); TMessage message = new TMessage("echoString", TMessageType.EXCEPTION, ThriftCodec.getSeqId()); TTransport transport = new TIOStreamTransport(bos); TBinaryProtocol protocol = new TBinaryProtocol(transport); TApplicationException exception = new TApplicationException(); int messageLength, headerLength; // prepare/*from w w w . j a v a2 s.co m*/ protocol.writeI16(ThriftCodec.MAGIC); protocol.writeI32(Integer.MAX_VALUE); protocol.writeI16(Short.MAX_VALUE); protocol.writeByte(ThriftCodec.VERSION); protocol.writeString(Demo.class.getName()); protocol.writeI64(request.getId()); protocol.getTransport().flush(); headerLength = bos.size(); protocol.writeMessageBegin(message); exception.write(protocol); protocol.writeMessageEnd(); protocol.getTransport().flush(); int oldIndex = messageLength = bos.size(); try { bos.setWriteIndex(ThriftCodec.MESSAGE_LENGTH_INDEX); protocol.writeI32(messageLength); bos.setWriteIndex(ThriftCodec.MESSAGE_HEADER_LENGTH_INDEX); protocol.writeI16((short) (0xffff & headerLength)); } finally { bos.setWriteIndex(oldIndex); } // prepare ChannelBuffer bis = ChannelBuffers.wrappedBuffer(encodeFrame(bos.toByteArray())); Object obj = codec.decode((Channel) null, bis); Assert.assertNotNull(obj); Assert.assertTrue(obj instanceof Response); Response response = (Response) obj; Assert.assertTrue(response.getResult() instanceof RpcResult); RpcResult result = (RpcResult) response.getResult(); Assert.assertTrue(result.hasException()); Assert.assertTrue(result.getException() instanceof RpcException); }
From source file:tech.aroma.application.service.operations.SendMessageOperationTest.java
License:Apache License
@Test public void testProcessWhenAuthenticationFails() throws Exception { when(authenticationService.getTokenInfo(expectedAuthenticationRequest)) .thenThrow(new TApplicationException()); }