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

NullPointerException from Json.ObjectWriter

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 1.8.0
    • Fix Version/s: 1.8.1
    • Component/s: java
    • Labels:
      None
    • Environment:

      avro 1.8.0
      jackson-core-asl 1.9.13
      jackson-mapper-asl 1.9.13
      Java 7
      Mac OS X 10.11.3

      Description

      /* I posted this bug already to the dev-mailinglist [4]. Reporting it here again only to make sure it doesn't get lost and because this is the right place. */

      The complete, slightly more involved code is on [1], especially [2], the JSON schema is at [3], but the relevant parts of the code follow below.

      // parsing the schema
      Schema.Parser parser = new Schema.Parser();
      Schema schema = parser.parse(new File("schema.avsc")) ;
      // setting up the encoder and driver
      Json.ObjectWriter jsonDatumWriter = new Json.ObjectWriter();
      OutputStream output = new FileOutputStream(new File("output.json"));
      Encoder encoder = EncoderFactory.get().jsonEncoder(schema, output, pretty);
      // writing
      System.out.println(payload); // reassuring test the payload is intact
      jsonDatumWriter.write(payload, encoder);
      

      The console will print out a nice JSON string (the payload), followed by the following exception:

      Exception in thread "main" java.lang.NullPointerException
      at org.apache.avro.data.Json.write(Json.java:183)
      at org.apache.avro.data.Json.writeObject(Json.java:272)
      at org.apache.avro.data.Json.access$000(Json.java:48)
      at org.apache.avro.data.Json$ObjectWriter.write(Json.java:122)
      at converTor.WriterObject.append(WriterObject.java:59)
      at converTor.ConverTor.main(ConverTor.java:251)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
      

      My beginners guess is that the source of the problem is a call of asToken() in org.codehaus.jackson.JsonNode, which is abstract.

      [0] https://issues.apache.org/jira/browse/avro/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel
      [1] https://github.com/tomlurge/converTor
      [2] https://github.com/tomlurge/converTor/blob/master/src/converTor/WriterObject.java
      [3] https://github.com/tomlurge/converTor/blob/master/src/converTor/avro/schemata/Torperf.avsc
      [4] https://mail-archives.apache.org/mod_mbox/avro-dev/201603.mbox/ajax/%3C828828B1-8A58-4050-81B4-C3EF0F26041B%40rat.io%3E

        Attachments

        1. AVRO-1807.1.patch
          1 kB
          Ryan Blue

          Issue Links

            Activity

              People

              • Assignee:
                rdblue Ryan Blue
                Reporter:
                thms Thomas Lörtsch
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: