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

NullPointerException from Json.ObjectWriter

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 1.8.0
    • 1.8.1
    • java
    • None
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: