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

davsclaus pushed a commit to branch feature/CAMEL-23672-tui-diagram
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b4b1578c45faeeaef6ef19de8b8cffb93b77154b
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jun 3 21:16:31 2026 +0200

    CAMEL-23672: camel-tui - Fix race condition in selectedPid null check
    
    Capture selectedPid in a local variable before the null check to
    prevent NPE when another thread nulls the field between the guard
    and the lambda.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../camel/dsl/jbang/core/commands/tui/MonitorContext.java      | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/MonitorContext.java
 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/MonitorContext.java
index 0a1c1d437d97..f82c9b442c93 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/MonitorContext.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/MonitorContext.java
@@ -59,20 +59,22 @@ class MonitorContext {
     }
 
     IntegrationInfo findSelectedIntegration() {
-        if (selectedPid == null) {
+        String pid = selectedPid;
+        if (pid == null) {
             return null;
         }
         return data.get().stream()
-                .filter(i -> selectedPid.equals(i.pid) && !i.vanishing)
+                .filter(i -> pid.equals(i.pid) && !i.vanishing)
                 .findFirst().orElse(null);
     }
 
     InfraInfo findSelectedInfra() {
-        if (selectedPid == null) {
+        String pid = selectedPid;
+        if (pid == null) {
             return null;
         }
         return infraData.get().stream()
-                .filter(i -> selectedPid.equals(i.pid) && !i.vanishing)
+                .filter(i -> pid.equals(i.pid) && !i.vanishing)
                 .findFirst().orElse(null);
     }
 

Reply via email to