ontodev / robot

ROBOT is an OBO Tool
http://robot.obolibrary.org
BSD 3-Clause "New" or "Revised" License
260 stars 74 forks source link

Handle errors properly when saving to OboGraphJsonDocumentFormat #906

Closed jamesaoverton closed 3 years ago

jamesaoverton commented 3 years ago

I think we're missing error handling code for this block:

https://github.com/ontodev/robot/blob/master/robot-core/src/main/java/org/obolibrary/robot/IOHelper.java#L1709

beckyjackson commented 3 years ago

I'm not entirely sure what the error message should be, or what we can suggest to fix it? Do you have any ideas?

It seems that the file is just in a weird format or something (I'm looking at the EDAM file), so my thought on the message is just something along the lines of "unable to convert...", which isn't super helpful.

matentzn commented 3 years ago

Test case:

robot -vvv convert -I https://raw.githubusercontent.com/edamontology/edamontology/main/releases/EDAM.owl -f json -o edam.json

Results in annoying error:

2021-08-31 17:50:32,510 DEBUG org.obolibrary.robot.ExceptionHelper - {} missing exception message.
java.lang.NullPointerException
    at org.geneontology.obographs.owlapi.FromOwl.generateGraph(FromOwl.java:409)
    at org.geneontology.obographs.owlapi.FromOwl.generateGraphDocument(FromOwl.java:63)
    at org.obolibrary.robot.IOHelper.saveOntologyFile(IOHelper.java:1684)
    at org.obolibrary.robot.IOHelper.saveOntology(IOHelper.java:838)
    at org.obolibrary.robot.CommandLineHelper.maybeSaveOutput(CommandLineHelper.java:671)
    at org.obolibrary.robot.ConvertCommand.execute(ConvertCommand.java:141)
    at org.obolibrary.robot.CommandManager.executeCommand(CommandManager.java:248)
    at org.obolibrary.robot.CommandManager.execute(CommandManager.java:192)
    at org.obolibrary.robot.CommandManager.main(CommandManager.java:139)
    at org.obolibrary.robot.CommandLineInterface.main(CommandLineInterface.java:60)
null
java.lang.NullPointerException
    at org.geneontology.obographs.owlapi.FromOwl.generateGraph(FromOwl.java:409)
    at org.geneontology.obographs.owlapi.FromOwl.generateGraphDocument(FromOwl.java:63)
    at org.obolibrary.robot.IOHelper.saveOntologyFile(IOHelper.java:1684)
    at org.obolibrary.robot.IOHelper.saveOntology(IOHelper.java:838)
    at org.obolibrary.robot.CommandLineHelper.maybeSaveOutput(CommandLineHelper.java:671)
    at org.obolibrary.robot.ConvertCommand.execute(ConvertCommand.java:141)
    at org.obolibrary.robot.CommandManager.executeCommand(CommandManager.java:248)
    at org.obolibrary.robot.CommandManager.execute(CommandManager.java:192)
    at org.obolibrary.robot.CommandManager.main(CommandManager.java:139)
    at org.obolibrary.robot.CommandLineInterface.main(CommandLineInterface.java:60)

I guess it could fail more gracefully?

jamesaoverton commented 3 years ago

Thanks @matentzn. We can't do too much here, but we can fix the "{} missing exception message." and maybe point to the https://github.com/geneontology/obographs repo.