Uploaded image for project: 'Apache Jena'
  1. Apache Jena
  2. JENA-1013

Compressed JSON-LD test AbstractNodeTupleInputFormatTests.fail_on_bad_input_02 no longer catches IOException.



    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Jena 3.0.1
    • Fix Version/s: Jena 3.0.1
    • Component/s: Elephas
    • Labels:


      In fixing JENA-1011, specifically, correctly calling the JSON-LD parser with nested start/finish calls to the RDFStream, test AbstractNodeTupleInputFormatTests.fail_on_bad_input_02 now fails on JSON-LD.

      The bad data in the test is from AbstractCompressedWholeFileQuadInputFormatTests.generateMixedTuples is legal data follwed by lines of "junk data".

      The reason is that the test data has junk after the closing } but the JSON-LD parser (for better or worse) actually ignores trailing content and stops parsing when the matching JSON object close-} is seen. The input stream is in an unclear state (caching read-ahead) but the parser does not advance any further so it does not report an error.

      In order to get an IOException, the test would need to continue parsing after the end of the legal top level JSON object - effectively, it needs to restart the parser. jsonld-java has already finished at this point - the call of JsonUtils.fromInputStream does not look beyond the end of top level object.

      This shows up in the piped iterator because the call to RDFStream.finish() closes the iterator neatly. The test was getting an IOException for a different reason.




            • Assignee:
              andy Andy Seaborne
              andy Andy Seaborne
            • Votes:
              0 Vote for this issue
              3 Start watching this issue


              • Created: