You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by th...@apache.org on 2010/02/02 06:34:22 UTC
svn commit: r905520 - in /hadoop/avro/trunk: ./
lang/java/src/java/org/apache/avro/io/parsing/
lang/java/src/test/java/org/apache/avro/io/
Author: thiru
Date: Tue Feb 2 05:34:17 2010
New Revision: 905520
URL: http://svn.apache.org/viewvc?rev=905520&view=rev
Log:
AVRO-390. ResolvingDecoder does not handle default values for records 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
hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestValidatingIO.java
Modified: hadoop/avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=905520&r1=905519&r2=905520&view=diff
==============================================================================
--- hadoop/avro/trunk/CHANGES.txt (original)
+++ hadoop/avro/trunk/CHANGES.txt Tue Feb 2 05:34:17 2010
@@ -405,6 +405,8 @@
AVRO-389. ResolvingDecoder does not resolve enum well (thiru)
+ AVRO-390. ResolvingDecoder does not handle default values for records well (thiru)
+
Avro 1.2.0 (14 October 2009)
INCOMPATIBLE CHANGES
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=905520&r1=905519&r2=905520&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:34:17 2010
@@ -266,7 +266,7 @@
Field rf = rfe.getValue();
byte[] bb = getBinary(rf.schema(), rf.defaultValue());
production[--count] = new Symbol.DefaultStartAction(bb);
- production[--count] = super.generate(rf.schema(), seen);
+ production[--count] = generate(rf.schema(), rf.schema(), seen);
production[--count] = Symbol.DEFAULT_END_ACTION;
}
}
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=905520&r1=905519&r2=905520&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:34:17 2010
@@ -86,21 +86,21 @@
new Object[] { 10, "hello" },
"{\"type\":\"record\",\"name\":\"r\",\"fields\":["
+ "{\"name\":\"f2\", \"type\":\"string\" },"
- + "{\"name\":\"f1\", \"type\":\"long\"}]}", "LS10",
+ + "{\"name\":\"f1\", \"type\":\"long\"}]}", "RLS10",
new Object[] { 10L, "hello" } },
// Default values
{ "{\"type\":\"record\",\"name\":\"r\",\"fields\":[]}", "",
new Object[] { },
"{\"type\":\"record\",\"name\":\"r\",\"fields\":["
- + "{\"name\":\"f\", \"type\":\"int\", \"default\": 100}]}", "I",
+ + "{\"name\":\"f\", \"type\":\"int\", \"default\": 100}]}", "RI",
new Object[] { 100 } },
{ "{\"type\":\"record\",\"name\":\"r\",\"fields\":["
+ "{\"name\":\"f2\", \"type\":\"int\"}]}", "I",
new Object[] { 10 },
"{\"type\":\"record\",\"name\":\"r\",\"fields\":["
+ "{\"name\":\"f1\", \"type\":\"int\", \"default\": 101},"
- + "{\"name\":\"f2\", \"type\":\"int\"}]}", "II",
+ + "{\"name\":\"f2\", \"type\":\"int\"}]}", "RII",
new Object[] { 10, 101 } },
{ "{\"type\":\"record\",\"name\":\"outer\",\"fields\":["
+ "{\"name\": \"g1\", " +
@@ -113,8 +113,20 @@
"\"type\":{\"type\":\"record\",\"name\":\"inner\",\"fields\":["
+ "{\"name\":\"f1\", \"type\":\"int\", \"default\": 101},"
+ "{\"name\":\"f2\", \"type\":\"int\"}]}}, "
- + "{\"name\": \"g2\", \"type\": \"long\"}]}}", "IIL",
+ + "{\"name\": \"g2\", \"type\": \"long\"}]}}", "RRIIL",
new Object[] { 10, 101, 11L } },
+ // Default value for a record.
+ { "{\"type\":\"record\",\"name\":\"outer\",\"fields\":["
+ + "{\"name\": \"g2\", \"type\": \"long\"}]}", "L",
+ new Object[] { 11L },
+ "{\"type\":\"record\",\"name\":\"outer\",\"fields\":["
+ + "{\"name\": \"g1\", " +
+ "\"type\":{\"type\":\"record\",\"name\":\"inner\",\"fields\":["
+ + "{\"name\":\"f1\", \"type\":\"int\" },"
+ + "{\"name\":\"f2\", \"type\":\"int\"}] }, "
+ + "\"default\": { \"f1\": 10, \"f2\": 101 } }, "
+ + "{\"name\": \"g2\", \"type\": \"long\"}]}", "RLRII",
+ new Object[] { 11L, 10, 101} },
{ "{\"type\":\"record\",\"name\":\"r\",\"fields\":[]}", "",
new Object[] { },
"{\"type\":\"record\",\"name\":\"r\",\"fields\":["
Modified: hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestValidatingIO.java
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestValidatingIO.java?rev=905520&r1=905519&r2=905520&view=diff
==============================================================================
--- hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestValidatingIO.java (original)
+++ hadoop/avro/trunk/lang/java/src/test/java/org/apache/avro/io/TestValidatingIO.java Tue Feb 2 05:34:17 2010
@@ -460,6 +460,9 @@
assertEquals(idx, vi.readIndex());
continue;
}
+ case 'R':
+ ((ResolvingDecoder) vi).readFieldOrder();
+ continue;
default:
fail();
}