Author: thiru
Date: Tue Feb  2 05:19:08 2010
New Revision: 905518

URL: http://svn.apache.org/viewvc?rev=905518&view=rev
Log:
AVRO-389. ResolvingDecoder does not resolve enum well

Modified:
    hadoop/avro/trunk/CHANGES.txt
    
hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java
    
hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIOResolving.java

Modified: hadoop/avro/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=905518&r1=905517&r2=905518&view=diff
==============================================================================
--- hadoop/avro/trunk/CHANGES.txt (original)
+++ hadoop/avro/trunk/CHANGES.txt Tue Feb  2 05:19:08 2010
@@ -402,6 +402,8 @@
     AVRO-382. Avro hashCode throws a NullPointerException when fields are 
uninitialized (Michael Armbrust via philz)
 
     AVRO-385. Initializing uninizialized BlockingBinaryEncoder fails (thiru)
+    
+    AVRO-389. ResolvingDecoder does not resolve enum well (thiru)
 
 Avro 1.2.0 (14 October 2009)
 

Modified: 
hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java
URL: 
http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java?rev=905518&r1=905517&r2=905518&view=diff
==============================================================================
--- 
hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java
 (original)
+++ 
hadoop/avro/trunk/lang/java/src/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java
 Tue Feb  2 05:19:08 2010
@@ -378,8 +378,8 @@
     }
   }
 
-  private static Symbol mkEnumAdjust(List<String> rsymbols,
-      List<String> wsymbols){
+  private static Symbol mkEnumAdjust(List<String> wsymbols,
+      List<String> rsymbols){
     Object[] adjustments = new Object[wsymbols.size()];
     for (int i = 0; i < adjustments.length; i++) {
       int j = rsymbols.indexOf(wsymbols.get(i));

Modified: 
hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIOResolving.java
URL: 
http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIOResolving.java?rev=905518&r1=905517&r2=905518&view=diff
==============================================================================
--- 
hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIOResolving.java
 (original)
+++ 
hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestResolvingIOResolving.java
 Tue Feb  2 05:19:08 2010
@@ -129,6 +129,30 @@
             + "{\"name\":\"f\", \"type\":\"int\", \"default\": 100}]} }",
             "[c1sI]",
           new Object[] { 100 } },
+        // Enum resolution
+        { "{\"type\":\"enum\",\"name\":\"e\",\"symbols\":[\"x\",\"y\",\"z\"]}",
+            "e2",
+            new Object[] {  },
+            "{\"type\":\"enum\",\"name\":\"e\",\"symbols\":[ \"y\", \"z\" ]}",
+            "e1",
+            new Object[] {  } },
+        { "{\"type\":\"enum\",\"name\":\"e\",\"symbols\":[ \"x\", \"y\" ]}",
+            "e1",
+            new Object[] {  },
+            "{\"type\":\"enum\",\"name\":\"e\",\"symbols\":[ \"y\", \"z\" ]}",
+            "e0",
+            new Object[] {  } },
+
+        // Union
+        { "\"int\"", "I", new Object[] { 100 },
+            "[ \"long\", \"int\"]", "U1I", new Object[] { 100 } },
+        { "[ \"long\", \"int\"]", "U1I", new Object[] { 100 } ,
+            "\"int\"", "I", new Object[] { 100 } },
+        // Union + promotion
+        { "\"int\"", "I", new Object[] { 100 },
+            "[ \"long\", \"string\"]", "U0L", new Object[] { 100L } },
+        { "[ \"int\", \"string\"]", "U0I", new Object[] { 100 },
+            "\"long\"", "L", new Object[] { 100 } },
     };
   }
 }


Reply via email to