DirectBinaryDecoder not correctly re-initialized with reuse option
------------------------------------------------------------------

                 Key: AVRO-705
                 URL: https://issues.apache.org/jira/browse/AVRO-705
             Project: Avro
          Issue Type: Bug
          Components: java
    Affects Versions: 1.4.1
            Reporter: Gilles Gaillard


Calling {{DecoderFactory.createBinaryDecoder(InputStream in, BinaryDecoder 
reuse)}}  with {{reuse}} being a non null {{DirectBinaryDecoder}}, this 
{{DirectBinaryDecoder}} is simply reinitialized by a call to 
{{DirectBinaryDecoder.init}} which reinitializes the internal {{InputStream}}.

The problem is that the {{byteReader}} attribute of {{DirectBinaryDecoder}} is 
not reinitialized and still points to the previously assigned 
{{ByteBufferInputStream}}

The following is a proposition of correction at rev 1041110: 
{noformat}
    private ByteReader byteReader;

    DirectBinaryDecoder(InputStream in) {
        super();
        init(in);
    }

    @Override
    public void init(InputStream in) {
        this.in = in;
        byteReader = (in instanceof ByteBufferInputStream)
                ? new ReuseByteReader((ByteBufferInputStream) in)
                : new ByteReader();
    }

{noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to