@Override
        public final void writeTo(final Output output, final Pipe pipe) throws IOException
        {
            if (pipe.output == null)
            {
                pipe.output = output;

                // begin message pipe
                final Input input = pipe.begin(this);

                if (input == null)
                {
                    // empty message pipe.
                    pipe.output = null;
                    pipe.end(this, input, true);
                    return;
                }

                pipe.input = input;

                boolean transferComplete = false;
                try
                {
                    transfer(pipe, input, output);
                    transferComplete = true;
                }
                finally
                {
                    pipe.end(this, input, !transferComplete);
                    // pipe.input = null;
                    // pipe.output = null;
                }

                return;
            }

            // nested message.
            pipe.input.mergeObject(pipe, this);
        }
Always returns true since we're just transferring data.
protostuff-api/src/main/java/io/protostuff/Pipe.java