Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-1240

SpecificDataumReader.next() can return a GenericData.Record resulting in a ClassCastException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.7.3
    • 1.7.4
    • java
    • None

    Description

      The following reasonable code:

          DatumReader<Test> reader = new SpecificDatumReader<Test>(Test.class); 
          DataFileReader<Test> dataFileReader = new DataFileReader<Test>(file, reader); 
          Test datum = null;
          while(dataFileReader.hasNext()) { 
            datum = dataFileReader.next(datum); 
            System.out.println(datum); 
          }
      

      Can result in a runtime exception:

      $ java -cp avro-1.7.3.jar:$(hadoop classpath) org.apache.hadoop.util.RunJar target/avro-example-1.0-jar-with-dependencies.jar Sample target/test-file 
      Exception in thread "main" java.lang.ClassCastException: org.apache.avro.generic.GenericData$Record cannot be cast to Test
      	at Sample.main(Sample.java:27)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.apache.hadoop.util.RunJar.main(RunJar.java:208)
      

      when the jar containing the specific class (Test in my example) is loaded from a different classloader than the avro jar itself. This occurs when run via the hadoop jar command but could occur in web containers or other locations as well.

      Attachments

        1. AVRO-1240.patch
          3 kB
          Doug Cutting

        Issue Links

          Activity

            People

              cutting Doug Cutting
              brocknoland Brock Noland
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: