You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Serdar Gökay (Jira)" <ji...@apache.org> on 2026/10/18 07:38:00 UTC
[jira] [Commented] (CAMEL-25690) camel-milo - a producer node ID with an unknown namespace URI fails the whole client connection
[ https://issues.apache.org/jira/browse/CAMEL-25690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18128343#comment-18128343 ]
Serdar Gökay commented on CAMEL-25690:
--------------------------------------
PR: https://github.com/apache/camel/pull/28045
The consumer and the producers now share one node lookup. A node whose nsu= URI is not in the namespace table of the server is answered like a node the server does not have: Bad_NodeIdUnknown for a write and for that node of a read or browse, which keep the other nodes, and Bad_NodeIdUnknown or Bad_MethodInvalid for a method call. The connection and its consumers stay up. The change does not touch the producer guards that CAMEL-25694 (#27956) changes. The method call answer reaches the exchange with that change, and its docs and test can follow once it is merged.
_Claude Code on behalf of etzel-mes_
> camel-milo - a producer node ID with an unknown namespace URI fails the whole client connection
> -----------------------------------------------------------------------------------------------
>
> Key: CAMEL-25690
> URL: https://issues.apache.org/jira/browse/CAMEL-25690
> Project: Camel
> Issue Type: Bug
> Components: camel-milo
> Affects Versions: 4.16.0, 4.18.5, 4.22.1
> Reporter: Serdar Gökay
> Assignee: Serdar Gökay
> Priority: Minor
>
> Follow-up of CAMEL-25671 (consumer side, PR https://github.com/apache/camel/pull/27906), asked for in that review.
> The producer operations of {{milo-client}} and {{milo-browse}} (write, method call, read, browse) resolve their node IDs with {{SubscriptionManager.Connected.lookupNamespace}}. A node ID whose namespace URI ({{nsu=}}) is not in the namespace table of the server makes {{NodeIds.toNodeId}} throw a {{NullPointerException}} ({{requireNonNull(namespaceIndex)}}). The exceptional future reaches the {{handleAsync}} block of {{SubscriptionManager.write/call/readValues/browse}}, which calls {{handleConnectionFailure}}: the whole client connection is torn down and rebuilt, including the consumers that share it. {{write}} and {{call}} additionally swallow the error and complete with {{null}}, so the exchange does not see a failure.
> Expected: the exchange fails (or receives a bad status code), the connection and the other users of it are not affected, as the consumer does since CAMEL-25671.
> CAMEL-25671 left this out of scope on purpose. With the producer fixed, the consumer helper {{lookupMonitoredNode}} and {{lookupNamespace}} can share one lookup that handles an unknown namespace URI, as suggested in the review of PR 27906.
> I can send a PR.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)