You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2009/05/22 23:31:32 UTC

svn commit: r777718 - in /hadoop/avro/trunk: CHANGES.txt src/java/org/apache/avro/Schema.java src/test/java/org/apache/avro/TestDataFile.java src/test/java/org/apache/avro/TestSchema.java

Author: cutting
Date: Fri May 22 21:31:32 2009
New Revision: 777718

URL: http://svn.apache.org/viewvc?rev=777718&view=rev
Log:
AVRO-22.  When parsing schemas in Java, do not permit anonymous.

Modified:
    hadoop/avro/trunk/CHANGES.txt
    hadoop/avro/trunk/src/java/org/apache/avro/Schema.java
    hadoop/avro/trunk/src/test/java/org/apache/avro/TestDataFile.java
    hadoop/avro/trunk/src/test/java/org/apache/avro/TestSchema.java

Modified: hadoop/avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=777718&r1=777717&r2=777718&view=diff
==============================================================================
--- hadoop/avro/trunk/CHANGES.txt (original)
+++ hadoop/avro/trunk/CHANGES.txt Fri May 22 21:31:32 2009
@@ -63,3 +63,6 @@
 
     AVRO-12. Fix recursive schemas in Java so that equals() and
     hashCode() do not cause a stack overflow.  (cutting)
+
+    AVRO-22. When parsing schemas in Java, do not permit anonymous.
+    (cutting)

Modified: hadoop/avro/trunk/src/java/org/apache/avro/Schema.java
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/src/java/org/apache/avro/Schema.java?rev=777718&r1=777717&r2=777718&view=diff
==============================================================================
--- hadoop/avro/trunk/src/java/org/apache/avro/Schema.java (original)
+++ hadoop/avro/trunk/src/java/org/apache/avro/Schema.java Fri May 22 21:31:32 2009
@@ -626,6 +626,8 @@
         name = nameNode != null ? nameNode.getTextValue() : null;
         JsonNode spaceNode = schema.get("namespace");
         space = spaceNode!=null?spaceNode.getTextValue():names.space();
+        if (name == null)
+          throw new SchemaParseException("No name in schema: "+schema);
       }
       if (type.equals("record") || type.equals("error")) { // record
         LinkedHashMap<String,Field> fields = new LinkedHashMap<String,Field>();

Modified: hadoop/avro/trunk/src/test/java/org/apache/avro/TestDataFile.java
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/src/test/java/org/apache/avro/TestDataFile.java?rev=777718&r1=777717&r2=777718&view=diff
==============================================================================
--- hadoop/avro/trunk/src/test/java/org/apache/avro/TestDataFile.java (original)
+++ hadoop/avro/trunk/src/test/java/org/apache/avro/TestDataFile.java Fri May 22 21:31:32 2009
@@ -46,7 +46,7 @@
   private static final long SEED = System.currentTimeMillis();
 
   private static final String SCHEMA_JSON =
-    "{\"type\": \"record\", \"fields\": ["
+    "{\"type\": \"record\", \"name\": \"Test\", \"fields\": ["
     +"{\"name\":\"stringField\", \"type\":\"string\"},"
     +"{\"name\":\"longField\", \"type\":\"long\"}]}";
   private static final Schema SCHEMA = Schema.parse(SCHEMA_JSON);

Modified: hadoop/avro/trunk/src/test/java/org/apache/avro/TestSchema.java
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/src/test/java/org/apache/avro/TestSchema.java?rev=777718&r1=777717&r2=777718&view=diff
==============================================================================
--- hadoop/avro/trunk/src/test/java/org/apache/avro/TestSchema.java (original)
+++ hadoop/avro/trunk/src/test/java/org/apache/avro/TestSchema.java Fri May 22 21:31:32 2009
@@ -99,24 +99,25 @@
 
   @Test
   public void testRecord() throws Exception {
-    String recordJson = 
-      "{\"type\":\"record\",\"fields\":[{\"name\":\"f\", \"type\":\"long\"}]}";
+    String recordJson = "{\"type\":\"record\", \"name\":\"Test\", \"fields\":"
+      +"[{\"name\":\"f\", \"type\":\"long\"}]}";
     Schema schema = Schema.parse(recordJson);
     GenericData.Record record = new GenericData.Record(schema);
     record.put("f", 11L);
-    check(recordJson, "{\"f\":11}", record);
+    check(recordJson, "{\"f\":11}", record, false);
   }
 
   @Test
   public void testEnum() throws Exception {
-    check("{\"type\": \"enum\", \"symbols\": [\"A\", \"B\"]}", "\"B\"", "B",
+    check("{\"type\":\"enum\", \"name\":\"Test\","
+          +"\"symbols\": [\"A\", \"B\"]}", "\"B\"", "B",
           false);
   }
 
   @Test
   public void testFixed() throws Exception {
-    check("{\"type\": \"fixed\", \"size\": 1}", "\"a\"",
-          new GenericData.Fixed(new byte[]{(byte)'a'}));
+    check("{\"type\": \"fixed\", \"name\":\"Test\", \"size\": 1}", "\"a\"",
+          new GenericData.Fixed(new byte[]{(byte)'a'}), false);
   }
 
   @Test
@@ -210,12 +211,13 @@
   }
 
   private static final Schema ACTUAL =            // an empty record schema
-    Schema.createRecord(new LinkedHashMap<String,Field>());
+    Schema.parse("{\"type\":\"record\", \"name\":\"Foo\", \"fields\":[]}");
 
   @SuppressWarnings(value="unchecked")
   private static void checkDefault(String schemaJson, String defaultJson,
                                    Object defaultValue) throws Exception {
-    String recordJson = "{\"type\":\"record\",\"fields\":[{\"name\":\"f\", "
+    String recordJson =
+      "{\"type\":\"record\", \"name\":\"Foo\", \"fields\":[{\"name\":\"f\", "
     +"\"type\":"+schemaJson+", "
     +"\"default\":"+defaultJson+"}]}";
     Schema expected = Schema.parse(recordJson);