This is an automated email from the ASF dual-hosted git repository. afs pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit aed5d6199e403f86e785eaa2b0ef3cc36fb9ff2c Author: Andy Seaborne <[email protected]> AuthorDate: Sun May 10 18:42:59 2026 +0100 GH-3628: riot - exit with 1 only on errors, not warnings --- .../src/main/java/org/apache/jena/cmd/CmdMain.java | 26 +++++++++++++--------- jena-cmds/src/main/java/riotcmd/CmdLangParse.java | 7 ++++-- .../src/main/java/riotcmd/ErrorHandlerCLI.java | 4 ---- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java b/jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java index 6279fbad2d..23f01b35d8 100644 --- a/jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java +++ b/jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java @@ -62,27 +62,31 @@ public abstract class CmdMain extends CmdGeneral /** Run command */ public int mainRun(boolean exitOnSuccess, boolean exitOnFailure) { try { mainMethod(); } - catch (TerminationException ex) { System.exit(ex.getCode()); } - catch (IllegalArgumentException ex) - { + catch (TerminationException ex) { + int rc = ex.getCode(); + if ( exitOnFailure ) + System.exit(rc); + return rc; + } + catch (IllegalArgumentException ex) { ex.printStackTrace(System.err); - if ( exitOnFailure ) System.exit(1); + if ( exitOnFailure ) + System.exit(1); return 1; } - catch (CmdException ex) - { + catch (CmdException ex) { if ( ex.getMessage() != null && ex.getMessage().length() > 0 ) System.err.println(ex.getMessage()); - //ex.printStackTrace(); if ( ex.getCause() != null ) ex.getCause().printStackTrace(System.err); - if ( exitOnFailure ) System.exit(1); + if ( exitOnFailure ) + System.exit(1); return 1; } - catch (Exception ex) - { + catch (Exception ex) { ex.printStackTrace(System.err); - if ( exitOnFailure ) System.exit(2); + if ( exitOnFailure ) + System.exit(2); return 2; } if ( exitOnSuccess ) diff --git a/jena-cmds/src/main/java/riotcmd/CmdLangParse.java b/jena-cmds/src/main/java/riotcmd/CmdLangParse.java index 8147da71b7..55d8d19549 100644 --- a/jena-cmds/src/main/java/riotcmd/CmdLangParse.java +++ b/jena-cmds/src/main/java/riotcmd/CmdLangParse.java @@ -40,6 +40,7 @@ import org.apache.jena.atlas.logging.Log; import org.apache.jena.cmd.ArgDecl; import org.apache.jena.cmd.CmdException; import org.apache.jena.cmd.CmdMain; +import org.apache.jena.cmd.TerminationException; import org.apache.jena.irix.IRIException; import org.apache.jena.irix.IRIs; import org.apache.jena.irix.IRIxResolver; @@ -261,9 +262,11 @@ public abstract class CmdLangParse extends CmdMain { } // exit(1) if there were any errors. + // pr.success is true if the indicates the parser completed it's run + // (no failure-on-error or unexpected exceptions). for ( ParseRecord pr : outcomes ) { - if ( !pr.success || pr.errHandler.hadIssues() ) - throw new CmdException(); + if ( !pr.success || pr.errHandler.hadErrors() ) + throw new TerminationException(1); } } diff --git a/jena-cmds/src/main/java/riotcmd/ErrorHandlerCLI.java b/jena-cmds/src/main/java/riotcmd/ErrorHandlerCLI.java index 311c9115cd..a8e4614b6f 100644 --- a/jena-cmds/src/main/java/riotcmd/ErrorHandlerCLI.java +++ b/jena-cmds/src/main/java/riotcmd/ErrorHandlerCLI.java @@ -99,10 +99,6 @@ class ErrorHandlerCLI implements ErrorHandler { return this.warningCount > 0; } - boolean hadIssues() { - return hadErrors() || hadWarnings(); - } - private void onLogMessage() { if ( onMessage != null ) onMessage.run();
