Java Code Examples for java.io.ByteArrayInputStream#mark()
The following examples show how to use
java.io.ByteArrayInputStream#mark() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AttributeClass.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
/** * Returns array of int values. */ public int[] getArrayOfIntValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { //ArrayList valList = new ArrayList(); ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); int[] valueArray = new int[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); if (valLength != 4) { // invalid data return null; } byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); valueArray[i] = convertToInt(bufBytes); } return valueArray; } return null; }
Example 2
Source File: AttributeClass.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
/** * Returns array of int values. */ public int[] getArrayOfIntValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { //ArrayList valList = new ArrayList(); ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); int[] valueArray = new int[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); if (valLength != 4) { // invalid data return null; } byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); valueArray[i] = convertToInt(bufBytes); } return valueArray; } return null; }
Example 3
Source File: Protobuf3.java From PacketProxy with Apache License 2.0 | 5 votes |
public static boolean validateVar(ByteArrayInputStream input) { byte[] raw = new byte[input.available()]; input.mark(input.available()); input.read(raw, 0, input.available()); boolean ret = validateVar(raw); input.reset(); return ret; }
Example 4
Source File: AttributeClass.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
/** * Returns array of int values. */ public int[] getArrayOfIntValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { //ArrayList valList = new ArrayList(); ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); int[] valueArray = new int[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); if (valLength != 4) { // invalid data return null; } byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); valueArray[i] = convertToInt(bufBytes); } return valueArray; } return null; }
Example 5
Source File: AttributeClass.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
/** * Returns array of String values. */ public String[] getArrayOfStringValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); String[] valueArray = new String[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); try { valueArray[i] = new String(bufBytes, "UTF-8"); } catch (java.io.UnsupportedEncodingException uee) { } } return valueArray; } return null; }
Example 6
Source File: TestJAXBVersionedProcessGroupSerializer.java From nifi-registry with Apache License 2.0 | 5 votes |
@Test public void testSerializeDeserializeFlowSnapshot() throws SerializationException { final VersionedSerializer<VersionedProcessGroup> serializer = new JAXBVersionedProcessGroupSerializer(); final VersionedProcessGroup processGroup1 = new VersionedProcessGroup(); processGroup1.setIdentifier("pg1"); processGroup1.setName("My Process Group"); final VersionedProcessor processor1 = new VersionedProcessor(); processor1.setIdentifier("processor1"); processor1.setName("My Processor 1"); // make sure nested objects are serialized/deserialized processGroup1.getProcessors().add(processor1); final ByteArrayOutputStream out = new ByteArrayOutputStream(); serializer.serialize(1, processGroup1, out); final String snapshotStr = new String(out.toByteArray(), StandardCharsets.UTF_8); //System.out.println(snapshotStr); final ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); in.mark(1024); final int version = serializer.readDataModelVersion(in); Assert.assertEquals(1, version); in.reset(); final VersionedProcessGroup deserializedProcessGroup1 = serializer.deserialize(in); Assert.assertEquals(processGroup1.getIdentifier(), deserializedProcessGroup1.getIdentifier()); Assert.assertEquals(processGroup1.getName(), deserializedProcessGroup1.getName()); Assert.assertEquals(1, deserializedProcessGroup1.getProcessors().size()); final VersionedProcessor deserializedProcessor1 = deserializedProcessGroup1.getProcessors().iterator().next(); Assert.assertEquals(processor1.getIdentifier(), deserializedProcessor1.getIdentifier()); Assert.assertEquals(processor1.getName(), deserializedProcessor1.getName()); }
Example 7
Source File: AttributeClass.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
/** * Returns array of String values. */ public String[] getArrayOfStringValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); String[] valueArray = new String[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); try { valueArray[i] = new String(bufBytes, "UTF-8"); } catch (java.io.UnsupportedEncodingException uee) { } } return valueArray; } return null; }
Example 8
Source File: AttributeClass.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
/** * Returns array of String values. */ public String[] getArrayOfStringValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); String[] valueArray = new String[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); try { valueArray[i] = new String(bufBytes, "UTF-8"); } catch (java.io.UnsupportedEncodingException uee) { } } return valueArray; } return null; }
Example 9
Source File: AttributeClass.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
/** * Returns array of int values. */ public int[] getArrayOfIntValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { //ArrayList valList = new ArrayList(); ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); int[] valueArray = new int[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); if (valLength != 4) { // invalid data return null; } byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); valueArray[i] = convertToInt(bufBytes); } return valueArray; } return null; }
Example 10
Source File: AttributeClass.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
/** * Returns array of String values. */ public String[] getArrayOfStringValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); String[] valueArray = new String[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); try { valueArray[i] = new String(bufBytes, "UTF-8"); } catch (java.io.UnsupportedEncodingException uee) { } } return valueArray; } return null; }
Example 11
Source File: AttributeClass.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
/** * Returns array of int values. */ public int[] getArrayOfIntValues() { byte[] bufArray = (byte[])myValue; if (bufArray != null) { //ArrayList valList = new ArrayList(); ByteArrayInputStream bufStream = new ByteArrayInputStream(bufArray); int available = bufStream.available(); // total number of values is at the end of the stream bufStream.mark(available); bufStream.skip(available-1); int length = bufStream.read(); bufStream.reset(); int[] valueArray = new int[length]; for (int i = 0; i < length; i++) { // read length int valLength = bufStream.read(); if (valLength != 4) { // invalid data return null; } byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); valueArray[i] = convertToInt(bufBytes); } return valueArray; } return null; }
Example 12
Source File: ThriftCodecTest.java From dubbo-2.6.5 with Apache License 2.0 | 4 votes |
@Test public void testEncodeReplyResponse() throws Exception { URL url = URL.valueOf(ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.Iface.class.getName()); Channel channel = new MockedChannel(url); Request request = createRequest(); RpcResult rpcResult = new RpcResult(); rpcResult.setResult("Hello, World!"); Response response = new Response(); response.setResult(rpcResult); response.setId(request.getId()); ChannelBuffer bos = ChannelBuffers.dynamicBuffer(1024); ThriftCodec.RequestData rd = ThriftCodec.RequestData.create( ThriftCodec.getSeqId(), Demo.Iface.class.getName(), "echoString"); ThriftCodec.cachedRequest.putIfAbsent(request.getId(), rd); codec.encode(channel, bos, response); byte[] buf = new byte[bos.writerIndex() - 4]; System.arraycopy(bos.array(), 4, buf, 0, bos.writerIndex() - 4); ByteArrayInputStream bis = new ByteArrayInputStream(buf); if (bis.markSupported()) { bis.mark(0); } TIOStreamTransport transport = new TIOStreamTransport(bis); TBinaryProtocol protocol = new TBinaryProtocol(transport); Assert.assertEquals(ThriftCodec.MAGIC, protocol.readI16()); Assert.assertEquals(protocol.readI32() + 4, bos.writerIndex()); int headerLength = protocol.readI16(); Assert.assertEquals(ThriftCodec.VERSION, protocol.readByte()); Assert.assertEquals(Demo.Iface.class.getName(), protocol.readString()); Assert.assertEquals(request.getId(), protocol.readI64()); if (bis.markSupported()) { bis.reset(); bis.skip(headerLength); } TMessage message = protocol.readMessageBegin(); Assert.assertEquals("echoString", message.name); Assert.assertEquals(TMessageType.REPLY, message.type); Assert.assertEquals(ThriftCodec.getSeqId(), message.seqid); Demo.echoString_result result = new Demo.echoString_result(); result.read(protocol); protocol.readMessageEnd(); Assert.assertEquals(rpcResult.getValue(), result.getSuccess()); }
Example 13
Source File: ThriftCodecTest.java From dubbox-hystrix with Apache License 2.0 | 4 votes |
@Test public void testEncodeExceptionResponse() throws Exception { URL url = URL.valueOf( ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.Iface.class.getName() ); Channel channel = new MockedChannel( url ); Request request = createRequest(); RpcResult rpcResult = new RpcResult(); String exceptionMessage = "failed"; rpcResult.setException( new RuntimeException( exceptionMessage ) ); Response response = new Response(); response.setResult( rpcResult ); response.setId( request.getId() ); ChannelBuffer bos = ChannelBuffers.dynamicBuffer(1024); ThriftCodec.RequestData rd = ThriftCodec.RequestData.create( ThriftCodec.getSeqId(), Demo.Iface.class.getName(), "echoString" ); ThriftCodec.cachedRequest.put( request.getId(), rd ); codec.encode( channel, bos, response ); byte[] buf = new byte[bos.writerIndex() - 4]; System.arraycopy( bos.array(), 4, buf, 0, bos.writerIndex() - 4 ); ByteArrayInputStream bis = new ByteArrayInputStream( buf); if ( bis.markSupported() ) { bis.mark( 0 ); } TIOStreamTransport transport = new TIOStreamTransport( bis ); TBinaryProtocol protocol = new TBinaryProtocol( transport ); Assert.assertEquals( ThriftCodec.MAGIC, protocol.readI16() ); Assert.assertEquals( protocol.readI32() + 4, bos.writerIndex() ); int headerLength = protocol.readI16(); Assert.assertEquals( ThriftCodec.VERSION, protocol.readByte() ); Assert.assertEquals( Demo.Iface.class.getName(), protocol.readString() ); Assert.assertEquals( request.getId(), protocol.readI64() ); if ( bis.markSupported() ) { bis.reset(); bis.skip( headerLength ); } TMessage message = protocol.readMessageBegin(); Assert.assertEquals( "echoString", message.name ); Assert.assertEquals( TMessageType.EXCEPTION, message.type ); Assert.assertEquals( ThriftCodec.getSeqId(), message.seqid ); TApplicationException exception = TApplicationException.read( protocol ); protocol.readMessageEnd(); Assert.assertEquals( exceptionMessage, exception.getMessage() ); }
Example 14
Source File: BungeeCordImpl.java From helper with MIT License | 4 votes |
@Override public void onPluginMessageReceived(String channel, Player player, byte[] data) { if (!channel.equals(CHANNEL)) { return; } // create an input stream from the recieved data ByteArrayInputStream byteIn = new ByteArrayInputStream(data); // create a data input instance ByteArrayDataInput in = ByteStreams.newDataInput(byteIn); // read the subchannel & mark the beginning of the stream at this point, so we can reset to this position later String subChannel = in.readUTF(); byteIn.mark(/* ignored */ 0); // pass the incoming message to all registered listeners this.lock.lock(); try { Iterator<MessageCallback> it = this.listeners.iterator(); while (it.hasNext()) { MessageCallback e = it.next(); // check if the subchannel is valid if (!e.getSubChannel().equals(subChannel)) { continue; } // reset the inputstream to the start position byteIn.reset(); // test if the data should be "passed" to the callback boolean accepted = e.testResponse(player, in); if (!accepted) { continue; } // reset again byteIn.reset(); // pass the data to the callback boolean shouldRemove = e.acceptResponse(player, in); if (shouldRemove) { it.remove(); } } } finally { this.lock.unlock(); } }
Example 15
Source File: ThriftCodecTest.java From dubbox with Apache License 2.0 | 4 votes |
@Test public void testEncodeExceptionResponse() throws Exception { URL url = URL.valueOf( ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.Iface.class.getName() ); Channel channel = new MockedChannel( url ); Request request = createRequest(); RpcResult rpcResult = new RpcResult(); String exceptionMessage = "failed"; rpcResult.setException( new RuntimeException( exceptionMessage ) ); Response response = new Response(); response.setResult( rpcResult ); response.setId( request.getId() ); ChannelBuffer bos = ChannelBuffers.dynamicBuffer(1024); ThriftCodec.RequestData rd = ThriftCodec.RequestData.create( ThriftCodec.getSeqId(), Demo.Iface.class.getName(), "echoString" ); ThriftCodec.cachedRequest.put( request.getId(), rd ); codec.encode( channel, bos, response ); byte[] buf = new byte[bos.writerIndex() - 4]; System.arraycopy( bos.array(), 4, buf, 0, bos.writerIndex() - 4 ); ByteArrayInputStream bis = new ByteArrayInputStream( buf); if ( bis.markSupported() ) { bis.mark( 0 ); } TIOStreamTransport transport = new TIOStreamTransport( bis ); TBinaryProtocol protocol = new TBinaryProtocol( transport ); Assert.assertEquals( ThriftCodec.MAGIC, protocol.readI16() ); Assert.assertEquals( protocol.readI32() + 4, bos.writerIndex() ); int headerLength = protocol.readI16(); Assert.assertEquals( ThriftCodec.VERSION, protocol.readByte() ); Assert.assertEquals( Demo.Iface.class.getName(), protocol.readString() ); Assert.assertEquals( request.getId(), protocol.readI64() ); if ( bis.markSupported() ) { bis.reset(); bis.skip( headerLength ); } TMessage message = protocol.readMessageBegin(); Assert.assertEquals( "echoString", message.name ); Assert.assertEquals( TMessageType.EXCEPTION, message.type ); Assert.assertEquals( ThriftCodec.getSeqId(), message.seqid ); TApplicationException exception = TApplicationException.read( protocol ); protocol.readMessageEnd(); Assert.assertEquals( exceptionMessage, exception.getMessage() ); }
Example 16
Source File: ThriftCodecTest.java From dubbox with Apache License 2.0 | 4 votes |
@Test public void testEncodeReplyResponse() throws Exception { URL url = URL.valueOf( ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.Iface.class.getName() ); Channel channel = new MockedChannel( url ); Request request = createRequest(); RpcResult rpcResult = new RpcResult(); rpcResult.setResult( "Hello, World!" ); Response response = new Response(); response.setResult( rpcResult ); response.setId( request.getId() ); ChannelBuffer bos = ChannelBuffers.dynamicBuffer(1024); ThriftCodec.RequestData rd = ThriftCodec.RequestData.create( ThriftCodec.getSeqId(), Demo.Iface.class.getName(), "echoString" ); ThriftCodec.cachedRequest.putIfAbsent( request.getId(), rd ); codec.encode( channel, bos, response ); byte[] buf = new byte[bos.writerIndex() - 4]; System.arraycopy( bos.array(), 4, buf, 0, bos.writerIndex() - 4 ); ByteArrayInputStream bis = new ByteArrayInputStream( buf ); if ( bis.markSupported() ) { bis.mark( 0 ); } TIOStreamTransport transport = new TIOStreamTransport( bis ); TBinaryProtocol protocol = new TBinaryProtocol( transport ); Assert.assertEquals( ThriftCodec.MAGIC, protocol.readI16() ); Assert.assertEquals( protocol.readI32() + 4, bos.writerIndex() ); int headerLength = protocol.readI16(); Assert.assertEquals( ThriftCodec.VERSION, protocol.readByte() ); Assert.assertEquals( Demo.Iface.class.getName(), protocol.readString() ); Assert.assertEquals( request.getId(), protocol.readI64() ); if ( bis.markSupported() ) { bis.reset(); bis.skip( headerLength ); } TMessage message = protocol.readMessageBegin(); Assert.assertEquals( "echoString", message.name ); Assert.assertEquals( TMessageType.REPLY, message.type ); Assert.assertEquals( ThriftCodec.getSeqId(), message.seqid ); Demo.echoString_result result = new Demo.echoString_result(); result.read( protocol ); protocol.readMessageEnd(); Assert.assertEquals( rpcResult.getValue(), result.getSuccess() ); }
Example 17
Source File: RestartableInputStream.java From bce-sdk-java with Apache License 2.0 | 4 votes |
public static RestartableInputStream wrap(byte[] b) { ByteArrayInputStream input = new ByteArrayInputStream(b); input.mark(b.length); return new RestartableResettableInputStream(input); }
Example 18
Source File: ThriftCodecTest.java From dubbox with Apache License 2.0 | 4 votes |
@Test public void testEncodeReplyResponse() throws Exception { URL url = URL.valueOf( ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.Iface.class.getName() ); Channel channel = new MockedChannel( url ); Request request = createRequest(); RpcResult rpcResult = new RpcResult(); rpcResult.setResult( "Hello, World!" ); Response response = new Response(); response.setResult( rpcResult ); response.setId( request.getId() ); ChannelBuffer bos = ChannelBuffers.dynamicBuffer(1024); ThriftCodec.RequestData rd = ThriftCodec.RequestData.create( ThriftCodec.getSeqId(), Demo.Iface.class.getName(), "echoString" ); ThriftCodec.cachedRequest.putIfAbsent( request.getId(), rd ); codec.encode( channel, bos, response ); byte[] buf = new byte[bos.writerIndex() - 4]; System.arraycopy( bos.array(), 4, buf, 0, bos.writerIndex() - 4 ); ByteArrayInputStream bis = new ByteArrayInputStream( buf ); if ( bis.markSupported() ) { bis.mark( 0 ); } TIOStreamTransport transport = new TIOStreamTransport( bis ); TBinaryProtocol protocol = new TBinaryProtocol( transport ); Assert.assertEquals( ThriftCodec.MAGIC, protocol.readI16() ); Assert.assertEquals( protocol.readI32() + 4, bos.writerIndex() ); int headerLength = protocol.readI16(); Assert.assertEquals( ThriftCodec.VERSION, protocol.readByte() ); Assert.assertEquals( Demo.Iface.class.getName(), protocol.readString() ); Assert.assertEquals( request.getId(), protocol.readI64() ); if ( bis.markSupported() ) { bis.reset(); bis.skip( headerLength ); } TMessage message = protocol.readMessageBegin(); Assert.assertEquals( "echoString", message.name ); Assert.assertEquals( TMessageType.REPLY, message.type ); Assert.assertEquals( ThriftCodec.getSeqId(), message.seqid ); Demo.echoString_result result = new Demo.echoString_result(); result.read( protocol ); protocol.readMessageEnd(); Assert.assertEquals( rpcResult.getValue(), result.getSuccess() ); }
Example 19
Source File: ThriftCodecTest.java From dubbo-2.6.5 with Apache License 2.0 | 4 votes |
@Test public void testEncodeExceptionResponse() throws Exception { URL url = URL.valueOf(ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.Iface.class.getName()); Channel channel = new MockedChannel(url); Request request = createRequest(); RpcResult rpcResult = new RpcResult(); String exceptionMessage = "failed"; rpcResult.setException(new RuntimeException(exceptionMessage)); Response response = new Response(); response.setResult(rpcResult); response.setId(request.getId()); ChannelBuffer bos = ChannelBuffers.dynamicBuffer(1024); ThriftCodec.RequestData rd = ThriftCodec.RequestData.create( ThriftCodec.getSeqId(), Demo.Iface.class.getName(), "echoString"); ThriftCodec.cachedRequest.put(request.getId(), rd); codec.encode(channel, bos, response); byte[] buf = new byte[bos.writerIndex() - 4]; System.arraycopy(bos.array(), 4, buf, 0, bos.writerIndex() - 4); ByteArrayInputStream bis = new ByteArrayInputStream(buf); if (bis.markSupported()) { bis.mark(0); } TIOStreamTransport transport = new TIOStreamTransport(bis); TBinaryProtocol protocol = new TBinaryProtocol(transport); Assert.assertEquals(ThriftCodec.MAGIC, protocol.readI16()); Assert.assertEquals(protocol.readI32() + 4, bos.writerIndex()); int headerLength = protocol.readI16(); Assert.assertEquals(ThriftCodec.VERSION, protocol.readByte()); Assert.assertEquals(Demo.Iface.class.getName(), protocol.readString()); Assert.assertEquals(request.getId(), protocol.readI64()); if (bis.markSupported()) { bis.reset(); bis.skip(headerLength); } TMessage message = protocol.readMessageBegin(); Assert.assertEquals("echoString", message.name); Assert.assertEquals(TMessageType.EXCEPTION, message.type); Assert.assertEquals(ThriftCodec.getSeqId(), message.seqid); TApplicationException exception = TApplicationException.read(protocol); protocol.readMessageEnd(); Assert.assertEquals(exceptionMessage, exception.getMessage()); }
Example 20
Source File: ThriftCodecTest.java From dubbox with Apache License 2.0 | 2 votes |
@Test public void testEncodeRequest() throws Exception { Request request = createRequest(); ChannelBuffer output = ChannelBuffers.dynamicBuffer(1024); codec.encode( channel, output, request ); byte[] bytes = new byte[output.readableBytes()]; output.readBytes(bytes); ByteArrayInputStream bis = new ByteArrayInputStream( bytes ); TTransport transport = new TIOStreamTransport( bis ); TBinaryProtocol protocol = new TBinaryProtocol( transport ); // frame byte[] length = new byte[4]; transport.read( length, 0, 4 ); if ( bis.markSupported() ) { bis.mark( 0 ); } // magic Assert.assertEquals( ThriftCodec.MAGIC, protocol.readI16() ); // message length int messageLength = protocol.readI32(); Assert.assertEquals( messageLength + 4, bytes.length ); // header length short headerLength = protocol.readI16(); // version Assert.assertEquals( ThriftCodec.VERSION, protocol.readByte() ); // service name Assert.assertEquals( Demo.Iface.class.getName(), protocol.readString() ); // dubbo request id Assert.assertEquals( request.getId(), protocol.readI64() ); // test message header length if ( bis.markSupported() ) { bis.reset(); bis.skip( headerLength ); } TMessage message = protocol.readMessageBegin(); Demo.echoString_args args = new Demo.echoString_args(); args.read( protocol ); protocol.readMessageEnd(); Assert.assertEquals( "echoString", message.name ); Assert.assertEquals( TMessageType.CALL, message.type ); Assert.assertEquals( "Hello, World!", args.getArg() ); }