You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2026/05/24 19:11:25 UTC

(cayenne) 06/06: a more reliable MCP handshake read

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

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit bdaf2e9e5885b812f854cdc2ba4702862cc74667
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Sun May 24 15:10:43 2026 -0400

    a more reliable MCP handshake read
---
 .../apache/cayenne/mcp/tools/openproject/HandshakeWatcher.java    | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/cayenne-mcp-server/src/main/java/org/apache/cayenne/mcp/tools/openproject/HandshakeWatcher.java b/cayenne-mcp-server/src/main/java/org/apache/cayenne/mcp/tools/openproject/HandshakeWatcher.java
index 358987f4b..842589db6 100644
--- a/cayenne-mcp-server/src/main/java/org/apache/cayenne/mcp/tools/openproject/HandshakeWatcher.java
+++ b/cayenne-mcp-server/src/main/java/org/apache/cayenne/mcp/tools/openproject/HandshakeWatcher.java
@@ -107,6 +107,14 @@ class HandshakeWatcher {
     }
 
     private static HandshakeData readHandshake(Preferences node) {
+        try {
+            // Force a backing-store reload so keys written by the Modeler process are
+            // visible here — nodeExists() can return true before the reader's cache is
+            // refreshed on macOS CFPreferences.
+            node.sync();
+        } catch (BackingStoreException e) {
+            LOGGER.debug("sync before handshake read failed, proceeding with cached values: {}", e.toString());
+        }
         long pid = node.getLong("pid", -1L);
         String startedAt = node.get("startedAt", null);
         String resolvedProjectPath = node.get("projectPath", null);