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 2013/02/05 15:47:17 UTC
svn commit: r1442612 - in /avro/trunk: ./
lang/java/avro/src/main/java/org/apache/avro/generic/
lang/java/avro/src/main/java/org/apache/avro/reflect/
lang/java/avro/src/main/java/org/apache/avro/specific/
Author: cutting
Date: Tue Feb 5 14:47:17 2013
New Revision: 1442612
URL: http://svn.apache.org/viewvc?rev=1442612&view=rev
Log:
AVRO-1240. Java: Fix SpecificDatumReader(Class) constructor to use correct ClassLoader.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericDatumReader.java
avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectDatumReader.java
avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1442612&r1=1442611&r2=1442612&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Tue Feb 5 14:47:17 2013
@@ -43,6 +43,9 @@ Trunk (not yet released)
AVRO-1228. Java: Fix Trevni to use default values for missing Avro fields.
(cutting)
+ AVRO-1240. Java: Fix SpecificDatumReader(Class) constructor to use
+ correct ClassLoader. (cutting)
+
Avro 1.7.3 (6 December 2012)
NEW FEATURES
Modified: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericDatumReader.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericDatumReader.java?rev=1442612&r1=1442611&r2=1442612&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericDatumReader.java (original)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericDatumReader.java Tue Feb 5 14:47:17 2013
@@ -57,8 +57,12 @@ public class GenericDatumReader<D> imple
}
protected GenericDatumReader(Schema writer, Schema reader, GenericData data) {
+ this(data);
this.actual = writer;
this.expected = reader;
+ }
+
+ protected GenericDatumReader(GenericData data) {
this.data = data;
this.creator = Thread.currentThread();
}
Modified: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectDatumReader.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectDatumReader.java?rev=1442612&r1=1442611&r2=1442612&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectDatumReader.java (original)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectDatumReader.java Tue Feb 5 14:47:17 2013
@@ -38,8 +38,10 @@ public class ReflectDatumReader<T> exten
this(null, null, ReflectData.get());
}
+ /** Construct for reading instances of a class. */
public ReflectDatumReader(Class<T> c) {
- this(ReflectData.get().getSchema(c));
+ this(new ReflectData(c.getClassLoader()));
+ setSchema(getSpecificData().getSchema(c));
}
/** Construct where the writer's and reader's schemas are the same. */
@@ -57,6 +59,11 @@ public class ReflectDatumReader<T> exten
super(writer, reader, data);
}
+ /** Construct given a {@link ReflectData}. */
+ public ReflectDatumReader(ReflectData data) {
+ super(data);
+ }
+
@Override
@SuppressWarnings(value="unchecked")
protected Object newArray(Object old, int size, Schema schema) {
Modified: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java?rev=1442612&r1=1442611&r2=1442612&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java (original)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java Tue Feb 5 14:47:17 2013
@@ -26,8 +26,10 @@ public class SpecificDatumReader<T> exte
this(null, null, SpecificData.get());
}
+ /** Construct for reading instances of a class. */
public SpecificDatumReader(Class<T> c) {
- this(SpecificData.get().getSchema(c));
+ this(new SpecificData(c.getClassLoader()));
+ setSchema(getSpecificData().getSchema(c));
}
/** Construct where the writer's and reader's schemas are the same. */
@@ -47,6 +49,11 @@ public class SpecificDatumReader<T> exte
super(writer, reader, data);
}
+ /** Construct given a {@link SpecificData}. */
+ public SpecificDatumReader(SpecificData data) {
+ super(data);
+ }
+
/** Return the contained {@link SpecificData}. */
public SpecificData getSpecificData() { return (SpecificData)getData(); }