@Override
    public void mergeFrom(Input input, final Object message) throws IOException
    {
        final Schema<Object> schema = lastSchema;

        // merge using this input.
        schema.mergeFrom(this, message);
        if (!schema.isInitialized(message))
            throw new UninitializedMessageException(message, schema);

        // restore
        lastSchema = schema;
    }
A ByteArrayInput w/c can handle cyclic dependencies when deserializing objects with graph transformations.

@author David Yu
@created Dec 10, 2010
protostuff-core/src/main/java/io/protostuff/GraphByteArrayInput.java