Repository: gora Updated Branches: refs/heads/master d1a921204 -> 86d8f8f13
GORA-361 AvroUtils.deepClonePersistent needs to flush BinaryEncoder | patch by Gerhard Gossen Project: http://git-wip-us.apache.org/repos/asf/gora/repo Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/86d8f8f1 Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/86d8f8f1 Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/86d8f8f1 Branch: refs/heads/master Commit: 86d8f8f13afd91536e8063badf3cf61281ae1354 Parents: d1a9212 Author: Henry Saputra <[email protected]> Authored: Tue Jul 29 17:22:37 2014 -0700 Committer: Henry Saputra <[email protected]> Committed: Tue Jul 29 17:22:37 2014 -0700 ---------------------------------------------------------------------- CHANGES.txt | 2 ++ .../java/org/apache/gora/util/AvroUtils.java | 1 + .../org/apache/gora/util/TestAvroUtils.java | 29 ++++++++++++++++++++ 3 files changed, 32 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/gora/blob/86d8f8f1/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index c8bce24..d790e32 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -4,6 +4,8 @@ Current Development 0.5-SNAPSHOT +* GORA-361 AvroUtils.deepClonePersistent needs to flush BinaryEncoder (Gerhard Gossen via hsaputra) + * GORA-351 Multiple Slf4j logging implementations in parent pom.xml (lewismc) * GORA-234 Javadoc and java annotations in gora-core base (abstract) classes needs to be corrected (tpalsulich via lewismc) http://git-wip-us.apache.org/repos/asf/gora/blob/86d8f8f1/gora-core/src/main/java/org/apache/gora/util/AvroUtils.java ---------------------------------------------------------------------- diff --git a/gora-core/src/main/java/org/apache/gora/util/AvroUtils.java b/gora-core/src/main/java/org/apache/gora/util/AvroUtils.java index cb13f57..1fd9a3d 100644 --- a/gora-core/src/main/java/org/apache/gora/util/AvroUtils.java +++ b/gora-core/src/main/java/org/apache/gora/util/AvroUtils.java @@ -107,6 +107,7 @@ public class AvroUtils { persistent.getSchema()); try { writer.write(persistent, enc); + enc.flush(); } catch (IOException e) { throw new RuntimeException( "Unable to serialize avro object to byte buffer - " http://git-wip-us.apache.org/repos/asf/gora/blob/86d8f8f1/gora-core/src/test/java/org/apache/gora/util/TestAvroUtils.java ---------------------------------------------------------------------- diff --git a/gora-core/src/test/java/org/apache/gora/util/TestAvroUtils.java b/gora-core/src/test/java/org/apache/gora/util/TestAvroUtils.java new file mode 100644 index 0000000..dea24d2 --- /dev/null +++ b/gora-core/src/test/java/org/apache/gora/util/TestAvroUtils.java @@ -0,0 +1,29 @@ +package org.apache.gora.util; + +import java.nio.ByteBuffer; + +import org.apache.avro.util.Utf8; +import org.apache.gora.examples.generated.WebPage; +import org.junit.Test; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.assertThat; + +public class TestAvroUtils { + + @Test + public void testDeepClonePersistent() throws Exception { + CharSequence url = new Utf8("http://gora.apache.org/"); + WebPage.Builder builder = WebPage.newBuilder() + .setUrl(url) + .setContent(ByteBuffer.wrap("Gora".getBytes("UTF-8"))); + WebPage webPage = builder.build(); + WebPage clonedWebPage = AvroUtils.deepClonePersistent(webPage); + assertThat(clonedWebPage, is(notNullValue())); + assertThat(clonedWebPage.getUrl(), is(equalTo(url))); + assertThat(clonedWebPage.getContent(), is(notNullValue())); + String clonedWebPageContent = new String(clonedWebPage.getContent().array(), "UTF-8"); + assertThat(clonedWebPageContent, is(equalTo("Gora"))); + } + +}
