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