You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by to...@apache.org on 2014/10/27 15:11:07 UTC

svn commit: r1634542 - in /avro/trunk: CHANGES.txt lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java

Author: tomwhite
Date: Mon Oct 27 14:11:06 2014
New Revision: 1634542

URL: http://svn.apache.org/r1634542
Log:
AVRO-1489. Java: Avro fails to build with OpenJDK 8. Contributed by Ricardo Arguello.

Modified:
    avro/trunk/CHANGES.txt
    avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java

Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1634542&r1=1634541&r2=1634542&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Mon Oct 27 14:11:06 2014
@@ -52,6 +52,9 @@ Trunk (not yet released)
     AVRO-1591. Java: Fix specific RPC so that proxies implement hashCode(),
     equals() and toString(). (Mark Spadoni via cutting)
 
+    AVRO-1489. Java: Avro fails to build with OpenJDK 8. (Ricardo Arguello via
+    tomwhite)
+
 Avro 1.7.7 (23 July 2014)
 
   NEW FEATURES

Modified: avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java?rev=1634542&r1=1634541&r2=1634542&view=diff
==============================================================================
--- avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java (original)
+++ avro/trunk/lang/java/thrift/src/main/java/org/apache/avro/thrift/ThriftData.java Mon Oct 27 14:11:06 2014
@@ -98,12 +98,14 @@ public class ThriftData extends GenericD
     new ConcurrentHashMap<Schema,TFieldIdEnum[]>();
 
   @Override
+  @SuppressWarnings("unchecked")
   protected Object getRecordState(Object r, Schema s) {
     TFieldIdEnum[] fields = fieldCache.get(s);
     if (fields == null) {                           // cache miss
       fields = new TFieldIdEnum[s.getFields().size()];
       Class c = r.getClass();
-      for (TFieldIdEnum f : FieldMetaData.getStructMetaDataMap(c).keySet())
+      for (TFieldIdEnum f :
+          FieldMetaData.getStructMetaDataMap((Class<? extends TBase>) c).keySet())
         fields[s.getField(f.getFieldName()).pos()] = f;
       fieldCache.put(s, fields);                  // update cache
     }
@@ -166,6 +168,7 @@ public class ThriftData extends GenericD
     = new ConcurrentHashMap<Class,Schema>();
 
   /** Return a record schema given a thrift generated class. */
+  @SuppressWarnings("unchecked")
   public Schema getSchema(Class c) {
     Schema schema = schemaCache.get(c);
 
@@ -181,7 +184,7 @@ public class ThriftData extends GenericD
                                        Throwable.class.isAssignableFrom(c));
           List<Field> fields = new ArrayList<Field>();
           for (FieldMetaData f :
-                 FieldMetaData.getStructMetaDataMap(c).values()) {
+                 FieldMetaData.getStructMetaDataMap((Class<? extends TBase>) c).values()) {
             Schema s = getSchema(f.valueMetaData);
             if (f.requirementType == TFieldRequirementType.OPTIONAL
                 && (s.getType() != Schema.Type.UNION))