You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/10/01 15:43:01 UTC
[jira] [Commented] (CAMEL-25170) camel-couchbase: connectTimeout is silently ignored unless queryTimeout is also changed
[ https://issues.apache.org/jira/browse/CAMEL-25170?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18121606#comment-18121606 ]
Claus Ibsen commented on CAMEL-25170:
-------------------------------------
Merged to main via https://github.com/apache/camel/pull/27123
> camel-couchbase: connectTimeout is silently ignored unless queryTimeout is also changed
> ---------------------------------------------------------------------------------------
>
> Key: CAMEL-25170
> URL: https://issues.apache.org/jira/browse/CAMEL-25170
> Project: Camel
> Issue Type: Bug
> Components: camel-couchbase
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Minor
> Fix For: 4.23.0
>
>
> Setting {{?connectTimeout=...}} on a couchbase endpoint has no effect unless {{queryTimeout}} is *also* set to something other than its default. The option is documented, has a default of 30000, and is silently inert on its own.
> h2. The code
> {{CouchbaseEndpoint.createClusterEnvironment()}}:
> {code:java}
> if (queryTimeout != DEFAULT_QUERY_TIMEOUT) {
> cfb.timeoutConfig()
> .connectTimeout(Duration.ofMillis(connectTimeout))
> .queryTimeout(Duration.ofMillis(queryTimeout));
> }
> {code}
> The guard tests {{queryTimeout}}; the body configures both timeouts. So {{connectTimeout}} is only ever applied as a side effect of changing an unrelated option.
> h2. Observed
> Building the environment straight from the endpoint and reading the timeout back:
> * {{connectTimeout=1234}} alone -> {{env.timeoutConfig().connectTimeout()}} is *PT10S*
> * {{connectTimeout=1234}} plus {{queryTimeout=9999}} -> *PT1.234S*
> There is a second consequence worth spelling out: because the block never runs in a default configuration, the component's own documented default of 30000 ms is never applied either. What users actually get is the SDK's own default of 10 s. The catalog says one thing and the runtime does another.
> h2. How it got here
> The guard arrived with the 3.0.5 SDK upgrade (commit {{025549c010e4}}, 2020-06-26), where the body set *only* {{queryTimeout}} - guard and body matched, and it was correct:
> {code:java}
> if (queryTimeout != DEFAULT_QUERY_TIMEOUT) {
> cfb.timeoutConfig().queryTimeout(Duration.ofMillis(queryTimeout));
> }
> {code}
> {{.connectTimeout(...)}} was then added *inside* that existing guard by CAMEL-15792 (commit {{e4c4d0e101f9}}, 2020-11-16) without widening the condition. A second option was folded into a guard written for the first.
> h2. Proposed fix
> Apply each timeout under its own condition, so that setting either option alone works and both documented defaults hold.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)