You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by to...@apache.org on 2014/11/04 16:49:30 UTC

svn commit: r1636616 - /avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBase.java

Author: tomwhite
Date: Tue Nov  4 15:49:30 2014
New Revision: 1636616

URL: http://svn.apache.org/r1636616
Log:
Compatibility fix for AVRO-1502. Contributed by cutting.

Modified:
    avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBase.java

Modified: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBase.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBase.java?rev=1636616&r1=1636615&r2=1636616&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBase.java (original)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBase.java Tue Nov  4 15:49:30 2014
@@ -67,8 +67,17 @@ public abstract class SpecificRecordBase
     return SpecificData.get().toString(this);
   }
 
-  @Override public abstract void writeExternal(ObjectOutput out)
-    throws IOException;
-  @Override public abstract void readExternal(ObjectInput in)
-    throws IOException;
+  @Override
+  public void writeExternal(ObjectOutput out)
+    throws IOException {
+    new SpecificDatumWriter(getSchema())
+      .write(this, SpecificData.getEncoder(out));
+  }
+
+  @Override
+  public void readExternal(ObjectInput in)
+    throws IOException {
+    new SpecificDatumReader(getSchema())
+      .read(this, SpecificData.getDecoder(in));
+  }
 }