Gerhard Gossen created GORA-361:
-----------------------------------
Summary: AvroUtils.deepClonePersistent needs flush BinaryEncoder
Key: GORA-361
URL: https://issues.apache.org/jira/browse/GORA-361
Project: Apache Gora
Issue Type: Bug
Components: gora-core
Affects Versions: 0.4
Reporter: Gerhard Gossen
Calling AvroUtils.deepClonePersistent on a smallish object (e.g. an unfetched
Nutch WebPage) results in the following exception:
{code:java}
java.lang.RuntimeException: Unable to deserialize avro object from byte buffer
- please report this issue to the Gora bugtracker or your administrator.
at
org.apache.gora.util.AvroUtils.deepClonePersistent(AvroUtils.java:125)
{code}
The method clones its argument by writing it to a wrapped byte array and
deserializing it from there. However, the output is buffered in the
BinaryEncoder and doesn't appear in the OutputStream. Adding {{enc.flush()}}
after {{writer.write}} seems to fix the bug.
The attached patch contains a test that demonstrates the bug.
--
This message was sent by Atlassian JIRA
(v6.2#6252)