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

Add IndexedRecord interface to share more logic between specific and generic.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.2.0
    • 1.3.0
    • java
    • None

    Description

      This is a very similar issue to AVRO-382, except this time it happens for uninitialized unions instead of primitive fields. Once again, this makes it very difficult to use avro from the scala console.

      Stacktrace:

      org.apache.avro.AvroRuntimeException: Not in union [{"type":"record","name":"GetRequest","namespace":"edu.berkeley.cs.scads.comm","fields":[{"name":"namespace","type":"string"},{"name":"key","type":"bytes"}]}]: null
      	at org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:339)
      	at org.apache.avro.generic.GenericData.hashCode(GenericData.java:429)
      	at org.apache.avro.specific.SpecificData.hashCode(SpecificData.java:227)
      	at org.apache.avro.generic.GenericData.hashCodeAdd(GenericData.java:439)
      	at org.apache.avro.specific.SpecificData.hashCode(SpecificData.java:223)
      	at org.apache.avro.specific.SpecificRecordBase.hashCode(SpecificRecordBase.java:52)
      	at java.lang.Object.toString(Object.java:219)
      	at scala.runtime.ScalaRunTime$.stringOf(ScalaRunTime.scala:165)
      	at RequestResult$.<init>(<console>:4)
      	at RequestResult$.<clinit>(<console>)
      	at RequestResult$result(<console>)
      	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 scala.tools.nsc.Interpreter$Request.loadAndRun(Interpreter.scala:889)
      	at scala.tools.nsc.Interpreter.interpret(Interpreter.scala:508)
      	at scala.tools.nsc.InterpreterLoop.interpretStartingWith(InterpreterLoop.scala:242)
      	at scala.tools.nsc.InterpreterLoop.command(InterpreterLoop.scala:230)
      	at scala.tools.nsc.InterpreterLoop.repl(InterpreterLoop.scala:142)
      	at scala.tools.nsc.InterpreterLoop.main(InterpreterLoop.scala:298)
      	at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:141)
      	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
      

      Attachments

        1. AVRO-387.patch.txt
          2 kB
          Philip Martin
        2. AVRO-387.patch
          4 kB
          Doug Cutting
        3. AVRO-387.patch
          17 kB
          Doug Cutting

        Activity

          People

            cutting Doug Cutting
            marmbrus Michael Armbrust
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: