You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by hs...@apache.org on 2014/07/30 02:22:43 UTC

git commit: GORA-361 AvroUtils.deepClonePersistent needs to flush BinaryEncoder | patch by Gerhard Gossen

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 <he...@gmail.com>
Authored: Tue Jul 29 17:22:37 2014 -0700
Committer: Henry Saputra <he...@gmail.com>
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")));
+    }
+
+}