From d24965083d60d6fed334f4a6ebadc0a16da0e6a9 Mon Sep 17 00:00:00 2001 From: David Mollitor Date: Wed, 3 Jun 2020 15:46:58 -0400 Subject: [PATCH] AVRO-2780: ProtobufData and ThriftData Can Get Into Endless Loop --- .../src/main/java/org/apache/avro/protobuf/ProtobufData.java | 2 +- .../thrift/src/main/java/org/apache/avro/thrift/ThriftData.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java b/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java index c4c0d9ce4c4..38f2d045fb4 100644 --- a/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java +++ b/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java @@ -138,7 +138,7 @@ public Object newRecord(Object old, Schema schema) { try { Class c = SpecificData.get().getClass(schema); if (c == null) - return newRecord(old, schema); // punt to generic + return super.newRecord(old, schema); // punt to generic if (c.isInstance(old)) return old; // reuse instance return c.getMethod("newBuilder").invoke(null); diff --git a/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java b/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java index eaf11c7c981..0e08318eb9f 100644 --- a/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java +++ b/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java @@ -159,7 +159,7 @@ public Object newRecord(Object old, Schema schema) { try { Class c = ClassUtils.forName(SpecificData.getClassName(schema)); if (c == null) - return newRecord(old, schema); // punt to generic + return super.newRecord(old, schema); // punt to generic if (c.isInstance(old)) return old; // reuse instance return c.newInstance(); // create new instance