Repository: gora Updated Branches: refs/heads/master 0f11da5cb -> 3796843b0
adding fix for GORA-401 Project: http://git-wip-us.apache.org/repos/asf/gora/repo Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/ac6c42b3 Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/ac6c42b3 Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/ac6c42b3 Branch: refs/heads/master Commit: ac6c42b37385fd05fa9776e53d6de41320a202c4 Parents: 882fac9 Author: Kevin <djkevi...@yahoo.com> Authored: Sun Sep 18 22:01:12 2016 +0530 Committer: Kevin <djkevi...@yahoo.com> Committed: Sun Sep 18 22:01:12 2016 +0530 ---------------------------------------------------------------------- .../java/org/apache/gora/mapreduce/PersistentDeserializer.java | 6 +++++- .../java/org/apache/gora/mapreduce/PersistentSerializer.java | 2 +- gora-core/src/test/java/org/apache/gora/util/TestIOUtils.java | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/gora/blob/ac6c42b3/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentDeserializer.java ---------------------------------------------------------------------- diff --git a/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentDeserializer.java b/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentDeserializer.java index 79eee42..8a957b9 100644 --- a/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentDeserializer.java +++ b/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentDeserializer.java @@ -68,6 +68,10 @@ public class PersistentDeserializer @Override public PersistentBase deserialize(PersistentBase persistent) throws IOException { - return datumReader.read(reuseObjects ? persistent : null, decoder); + persistent = datumReader.read(reuseObjects ? persistent : null, decoder); + byte[] __g__dirty = new byte[persistent.getFieldsCount()]; + decoder.readFixed(__g__dirty); + persistent.setDirtyBytes(java.nio.ByteBuffer.wrap(__g__dirty)); + return persistent; } } http://git-wip-us.apache.org/repos/asf/gora/blob/ac6c42b3/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentSerializer.java ---------------------------------------------------------------------- diff --git a/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentSerializer.java b/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentSerializer.java index b75d1dd..1851ff5 100644 --- a/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentSerializer.java +++ b/gora-core/src/main/java/org/apache/gora/mapreduce/PersistentSerializer.java @@ -63,7 +63,7 @@ public class PersistentSerializer implements Serializer<PersistentBase> { @Override public void serialize(PersistentBase persistent) throws IOException { datumWriter.setSchema(persistent.getSchema()); - datumWriter.write(persistent, encoder); + encoder.writeFixed(persistent.getDirtyBytes().array()); } } http://git-wip-us.apache.org/repos/asf/gora/blob/ac6c42b3/gora-core/src/test/java/org/apache/gora/util/TestIOUtils.java ---------------------------------------------------------------------- diff --git a/gora-core/src/test/java/org/apache/gora/util/TestIOUtils.java b/gora-core/src/test/java/org/apache/gora/util/TestIOUtils.java index d0f3e1c..ec2a791 100644 --- a/gora-core/src/test/java/org/apache/gora/util/TestIOUtils.java +++ b/gora-core/src/test/java/org/apache/gora/util/TestIOUtils.java @@ -30,6 +30,7 @@ import java.util.Arrays; import org.apache.avro.util.ByteBufferInputStream; import org.apache.avro.util.ByteBufferOutputStream; import org.apache.gora.mapreduce.GoraMapReduceUtils; +import org.apache.gora.persistency.impl.PersistentBase; import org.apache.gora.util.IOUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.DataInputBuffer; @@ -135,6 +136,10 @@ public class TestIOUtils { log.info("After : " + before); } assertEquals(before, after); + if ((before instanceof PersistentBase) && (after instanceof PersistentBase)) { + assertEquals(Arrays.equals(((PersistentBase) before).getDirtyBytes().array(), + ((PersistentBase) after).getDirtyBytes().array()), true); + } } //assert that the end of input is reached