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();

Reply via email to