You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by rs...@apache.org on 2022/03/10 18:28:59 UTC

[avro] branch branch-1.11 updated: AVRO-3440: Fix bug in Protocol.createMessage (#1586)

This is an automated email from the ASF dual-hosted git repository.

rskraba pushed a commit to branch branch-1.11
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/branch-1.11 by this push:
     new 11e265f  AVRO-3440: Fix bug in Protocol.createMessage (#1586)
11e265f is described below

commit 11e265fccbb31add03d0182f13aa125ff0f3ee30
Author: Oscar Westra van Holthe - Kind <op...@users.noreply.github.com>
AuthorDate: Thu Mar 10 19:27:46 2022 +0100

    AVRO-3440: Fix bug in Protocol.createMessage (#1586)
    
    * AVRO-3440: Fix bug in Protocol.createMessage
    
    * AVRO-3440: Spotless
---
 .../avro/src/main/java/org/apache/avro/Protocol.java    |  2 +-
 .../src/test/java/org/apache/avro/TestProtocol.java     | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/lang/java/avro/src/main/java/org/apache/avro/Protocol.java b/lang/java/avro/src/main/java/org/apache/avro/Protocol.java
index 6987d4c..914beb8 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/Protocol.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/Protocol.java
@@ -332,7 +332,7 @@ public class Protocol extends JsonProperties {
    * {@code props} of {@code m}.
    */
   public Message createMessage(Message m, Schema request) {
-    return new Message(name, doc, m, request);
+    return new Message(m.name, m.doc, m, request);
   }
 
   /** Create a one-way message. */
diff --git a/lang/java/avro/src/test/java/org/apache/avro/TestProtocol.java b/lang/java/avro/src/test/java/org/apache/avro/TestProtocol.java
index 3c63cca..881b929 100644
--- a/lang/java/avro/src/test/java/org/apache/avro/TestProtocol.java
+++ b/lang/java/avro/src/test/java/org/apache/avro/TestProtocol.java
@@ -17,6 +17,10 @@
  */
 package org.apache.avro;
 
+import static java.util.Collections.emptyList;
+import static java.util.Collections.emptyMap;
+import static java.util.Collections.singletonList;
+import static java.util.Collections.singletonMap;
 import static org.junit.Assert.*;
 
 import org.junit.Test;
@@ -48,4 +52,17 @@ public class TestProtocol {
     assertNotNull(parsedArrayOfStringProtocol);
     assertEquals(parsedStringProtocol.toString(), parsedArrayOfStringProtocol.toString());
   }
+
+  @Test
+  public void testCopyMessage() {
+    Protocol p = new Protocol("P", "protocol", "foo");
+    Schema req1 = SchemaBuilder.record("foo.req1").fields().endRecord();
+    Protocol.Message m1 = p.createMessage("M", "message", singletonMap("foo", "bar"), req1);
+    Schema req2 = SchemaBuilder.record("foo.req2").fields().name("test").type().booleanType().noDefault().endRecord();
+
+    Protocol.Message m2 = p.createMessage(m1, req2);
+    assertEquals(m1.getName(), m2.getName());
+    assertEquals(m1.getDoc(), m2.getDoc());
+    assertEquals(m1.getProp("foo"), m2.getProp("foo"));
+  }
 }