> On 15 Jan 2015, at 10:56, Maruan Sahyoun <sahy...@fileaffairs.de> wrote: >> >> so if I understand an summarize correctly we'd change >> >> - the usage() for all to return 1 > > Except when the user has asked for the usage via -h, because that’s a > success, not a failure. >
as there is no -h at the moment … >> - print messages on exceptions to System.err >> - rethrow the exception so java can handle it if it will terminate >> afterwards anyway > > Yes, I think we mostly do that… if not in all cases, then we should be doing > that, at least for IOException. > not for the ones which haven't been touched for a while >> - use something above 2 and below 126 as an error code for System.exit() if >> rethrowing doesn't make sense > > 1 is fine, as I’d expect you’ll be dealing with exceptions due to invalid > passwords, encryption, etc. which are everyday problems. > ok - let's use 1 I'll open an issue for that and set it to 2.1 - code cleanup can be done as part of PDFBOX-2576. >> OK? >> >> Maruan >> >> >> Am 15.01.2015 um 19:03 schrieb John Hewson <j...@jahewson.com>: >> >>> If the usage was printed due to invalid command line parameters, then the >>> convention on Unix is to return exit code 1. We should be doing that too. >>> >>> Note than if Java throws an exception which causes main() to exit and there >>> is no catch clause, then java will return a non-zero code of its own >>> accord. If we’re catching fatal exceptions in main, then we should >>> System.exit(1) afterwards. >>> >>> -- John >>> >>>> On 15 Jan 2015, at 09:13, Maruan Sahyoun <sahy...@fileaffairs.de> wrote: >>>> >>>> Yes, >>>> >>>> current behavior within the tools >>>> usage(): some tools have a System.exit, some don't and for the ones they >>>> have the exit code is not always the same. >>>> -main() there is no System.exit for the ones I looked at in case of an >>>> error. Only an error message is written to System.err >>>> >>>> You'd rather expect System.exit > 0 in case there is an issue in main >>>> processing and then System.exit as part of usage makes sense. If there is >>>> none on main there shouldn't be one on usage(). >>>> >>>> So I'd remove it on usage() too. >>>> >>>> WDYT? >>>> >>>> Maruan >>>> >>>> Am 15.01.2015 um 18:00 schrieb Andreas Lehmkuehler <andr...@lehmi.de>: >>>> >>>>> Hi, >>>>> >>>>> Am 15.01.2015 um 17:20 schrieb John Hewson: >>>>>> Only if there's a non-zero number used as the argument. >>>>> Yes, but IMO such a value is only useful if there is any processing >>>>> issue. Maruans question targets those calls within the usage message >>>>> which is shown only if there is any issue with the given commandline >>>>> parameters. >>>>> >>>>> I'd remove such calls. >>>>> >>>>>> -- John >>>>>> >>>>>>> On 15 Jan 2015, at 06:06, Maruan Sahyoun <sahy...@fileaffairs.de> wrote: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> do we need System.exit() in our command line tools usage messages? >>>>>>> Opinions? Don't see a benefit of having them. >>>>>>> >>>>>>> BR >>>>>>> Maruan >>>>> >>>>> BR >>>>> Andreas LEhmkühler >>>> >>> >> >