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 } },
};
}
}