java - Why am I getting an InvalidProtocolBufferException when creating a Message.Builder from byte array but not an InputStream? -


i'm working on servlet , trying log requests. crucial part of code causing error following:

protected void dopost(httpservletrequest request, httpservletresponse response) throws ioexception {     stringwriter writer = new stringwriter();     ioutils.copy(request.getinputstream(), writer);     message.builder builder = of type com.google.protobuf.generatedmessage.builder;     builder.mergefrom(writer.tostring().getbytes()); } 

the final line of code above results in following exception:

com.google.protobuf.invalidprotocolbufferexception: protocol message tag had invalid wire type. 

however, when code switched to:

protected void dopost(httpservletrequest request, httpservletresponse response) throws ioexception {     message.builder builder = of type com.google.protobuf.generatedmessage.builder;     builder.mergefrom(request.getinputstream()); } 

there no error, , works fine. problem be? seem need similar first code snippet because need use input stream second time (once write file, , once process actual request).

how this?

inputstream inputstream = request.getinputstream();  byte[] data = ioutils.tobytearray(inputstream); message.builder builder = of type com.google.protobuf.generatedmessage.builder; builder.mergefrom(data);  // use inputstream else 

Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -