This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch copy-shroud
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b828fea682a6adb06b118ed95b5d1045fe50d2d6
Author: Guillaume Nodet <[email protected]>
AuthorDate: Tue Mar 24 08:11:32 2026 +0100

    CAMEL-23236: Code review fixes
    
    - Doctor: drain docker process output to prevent blocking, use import
      for ServerSocket instead of fully-qualified name
    - Init: handle NumberFormatException in interactive picker with better
      error messages
    - Shell: add parentheses to boolean logic in countRouteFiles for clarity
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .superset/config.json                                |  7 +++++++
 .../apache/camel/dsl/jbang/core/commands/Doctor.java |  5 ++++-
 .../apache/camel/dsl/jbang/core/commands/Init.java   | 20 ++++++++++++++++----
 .../apache/camel/dsl/jbang/core/commands/Shell.java  |  6 +++---
 4 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/.superset/config.json b/.superset/config.json
new file mode 100644
index 000000000000..d411f86a050b
--- /dev/null
+++ b/.superset/config.json
@@ -0,0 +1,7 @@
+{
+  "setup": [
+    "git submodule update --init --recursive"
+  ],
+  "teardown": [],
+  "run": []
+}
\ No newline at end of file
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Doctor.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Doctor.java
index 7527f1fc5d53..aa63167585d9 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Doctor.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Doctor.java
@@ -18,6 +18,7 @@ package org.apache.camel.dsl.jbang.core.commands;
 
 import java.io.File;
 import java.net.HttpURLConnection;
+import java.net.ServerSocket;
 import java.net.URI;
 
 import org.apache.camel.catalog.CamelCatalog;
@@ -93,6 +94,8 @@ public class Doctor extends CamelCommand {
             Process p = new ProcessBuilder("docker", "info")
                     .redirectErrorStream(true)
                     .start();
+            // drain output to prevent blocking
+            
p.getInputStream().transferTo(java.io.OutputStream.nullOutputStream());
             int exit = p.waitFor();
             printer().printf("  Docker:      %s%n", exit == 0 ? "running (OK)" 
: "not running");
         } catch (Exception e) {
@@ -118,7 +121,7 @@ public class Doctor extends CamelCommand {
     }
 
     private static boolean isPortInUse(int port) {
-        try (java.net.ServerSocket ss = new java.net.ServerSocket(port)) {
+        try (ServerSocket ss = new ServerSocket(port)) {
             ss.setReuseAddress(true);
             return false;
         } catch (Exception e) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java
index 3d5f57192ab2..68fdd596e5dc 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java
@@ -305,9 +305,15 @@ public class Init extends CamelCommand {
         }
         printer().print("Choice [1]: ");
         String categoryInput = scanner.nextLine().trim();
-        int categoryIdx = categoryInput.isEmpty() ? 0 : 
Integer.parseInt(categoryInput) - 1;
+        int categoryIdx;
+        try {
+            categoryIdx = categoryInput.isEmpty() ? 0 : 
Integer.parseInt(categoryInput) - 1;
+        } catch (NumberFormatException e) {
+            printer().printErr("Invalid choice: " + categoryInput);
+            return 1;
+        }
         if (categoryIdx < 0 || categoryIdx >= categoryNames.size()) {
-            printer().printErr("Invalid choice.");
+            printer().printErr("Invalid choice: must be between 1 and " + 
categoryNames.size());
             return 1;
         }
 
@@ -321,9 +327,15 @@ public class Init extends CamelCommand {
         }
         printer().print("Choice [1]: ");
         String templateInput = scanner.nextLine().trim();
-        int templateIdx = templateInput.isEmpty() ? 0 : 
Integer.parseInt(templateInput) - 1;
+        int templateIdx;
+        try {
+            templateIdx = templateInput.isEmpty() ? 0 : 
Integer.parseInt(templateInput) - 1;
+        } catch (NumberFormatException e) {
+            printer().printErr("Invalid choice: " + templateInput);
+            return 1;
+        }
         if (templateIdx < 0 || templateIdx >= templates.size()) {
-            printer().printErr("Invalid choice.");
+            printer().printErr("Invalid choice: must be between 1 and " + 
templates.size());
             return 1;
         }
 
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Shell.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Shell.java
index c86cbd79b8b1..22252fba122a 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Shell.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Shell.java
@@ -163,9 +163,9 @@ public class Shell extends CamelCommand {
             count = (int) files.filter(Files::isRegularFile)
                     .filter(p -> {
                         String name = p.getFileName().toString();
-                        return name.endsWith(".yaml") && 
!name.endsWith(".kamelet.yaml")
-                                && !name.equals("application.yaml")
-                                || name.endsWith(".xml") && 
!name.equals("pom.xml")
+                        return (name.endsWith(".yaml") && 
!name.endsWith(".kamelet.yaml")
+                                && !name.equals("application.yaml"))
+                                || (name.endsWith(".xml") && 
!name.equals("pom.xml"))
                                 || name.endsWith(".java");
                     })
                     .count();

Reply via email to