You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ga...@apache.org on 2011/08/16 01:43:49 UTC

svn commit: r1158066 - in /pig/trunk: contrib/CHANGES.txt contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/PigAvroDatumWriter.java ivy/libraries.properties

Author: gates
Date: Mon Aug 15 23:43:49 2011
New Revision: 1158066

URL: http://svn.apache.org/viewvc?rev=1158066&view=rev
Log:
PIG 2202 AvroStorage doesn't work with Avro 1.5.1

Modified:
    pig/trunk/contrib/CHANGES.txt
    pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/PigAvroDatumWriter.java
    pig/trunk/ivy/libraries.properties

Modified: pig/trunk/contrib/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/CHANGES.txt?rev=1158066&r1=1158065&r2=1158066&view=diff
==============================================================================
--- pig/trunk/contrib/CHANGES.txt (original)
+++ pig/trunk/contrib/CHANGES.txt Mon Aug 15 23:43:49 2011
@@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES
 
 IMPROVEMENTS
 
+PIG-2202 AvroStorage doesn't work with Avro 1.5.1 (billgraham via gates)
+
 PIG-1959 Penny: a framework for workflow instrumentation (olston, breed via gates)
 
 PIG-1924 CSV Loader/Store that handles newlines in fields, and other Excel CSV

Modified: pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/PigAvroDatumWriter.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/PigAvroDatumWriter.java?rev=1158066&r1=1158065&r2=1158066&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/PigAvroDatumWriter.java (original)
+++ pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/PigAvroDatumWriter.java Mon Aug 15 23:43:49 2011
@@ -315,7 +315,11 @@ public class PigAvroDatumWriter extends 
 
     }
 
-    private NullPointerException npe(NullPointerException e, String s) {
+   /**
+    * As of Avro 1.5.1 this method is now in the superclass so it's no longer
+    * needed here, but leaving here for backward compatibility with Avro 1.4.1.
+    */
+    protected NullPointerException npe(NullPointerException e, String s) {
         NullPointerException result = new NullPointerException(e.getMessage()
                                         + s);
         result.initCause(e.getCause() == null ? e : e.getCause());
@@ -350,10 +354,25 @@ public class PigAvroDatumWriter extends 
     }
 
     /**
+     * Overriding to fetch the field value from the Tuple.
+     */
+    @Override
+    protected void writeRecord(Schema schema, Object datum, Encoder out)
+      throws IOException {
+      for (Field f : schema.getFields()) {
+        Object value = getField(datum, f.name(), f.pos());
+        try {
+          write(f.schema(), value, out);
+        } catch (NullPointerException e) {
+          throw npe(e, " in field "+f.name());
+        }
+      }
+    }
+
+    /**
      * Called by the implementation of {@link #writeRecord} to retrieve
      * a record field value.
      */
-    @Override
     protected Object getField(Object record, String name, int pos) {
         if (record instanceof Tuple) {
             try {

Modified: pig/trunk/ivy/libraries.properties
URL: http://svn.apache.org/viewvc/pig/trunk/ivy/libraries.properties?rev=1158066&r1=1158065&r2=1158066&view=diff
==============================================================================
--- pig/trunk/ivy/libraries.properties (original)
+++ pig/trunk/ivy/libraries.properties Mon Aug 15 23:43:49 2011
@@ -18,7 +18,7 @@ apacheant.version=1.7.1
 antlr.version=2.7.6
 pig.version=0.9.0
 
-avro.version=1.4.1
+avro.version=1.5.1
 commons-beanutils.version=1.7.0
 commons-cli.version=1.0
 commons-el.version=1.0