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/03 06:50:00 UTC
[jira] [Assigned] (CAMEL-25281) camel-pubnub - an endpoint without its own PubNub client fails to start unless publishKey, secretKey and authKey are all set ("Parameter specified as non-null is null")
[ https://issues.apache.org/jira/browse/CAMEL-25281?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen reassigned CAMEL-25281:
-----------------------------------
Fix Version/s: 4.23.0
Assignee: shashank
> camel-pubnub - an endpoint without its own PubNub client fails to start unless publishKey, secretKey and authKey are all set ("Parameter specified as non-null is null")
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25281
> URL: https://issues.apache.org/jira/browse/CAMEL-25281
> Project: Camel
> Issue Type: Bug
> Components: camel-pubnub
> Reporter: shashank
> Assignee: shashank
> Priority: Minor
> Fix For: 4.23.0
>
>
> When no PubNub client is given (no {{pubnub}} bean to autowire, no {{pubnub=#bean}}), {{PubNubEndpoint.doStart}} builds one from the endpoint options:
> {code:java}
> PNConfiguration.builder(new UserId(configuration.getUuid()), configuration.getSubscribeKey())
> .publishKey(configuration.getPublishKey())
> .secretKey(configuration.getSecretKey())
> .authKey(configuration.getAuthKey())
> .secure(configuration.isSecure()).build();
> {code}
> The builder of the PubNub Java SDK (Kotlin) rejects {{null}} in these setters, so an endpoint that does not set all three keys fails to start:
> {noformat}
> ResolveEndpointFailed Failed to resolve endpoint: pubnub://xxx?subscribeKey=xxxxxx&uuid=myuuid due to:
> Parameter specified as non-null is null: method com.pubnub.internal.java.v2.PNConfigurationImpl$Builder.publishKey, parameter publishKey
> {noformat}
> But {{publishKey}} is only needed to publish, {{secretKey}} is a server-side key that clients should not have, and {{authKey}} is deprecated (PAM v2). So an endpoint with the options a subscriber needs ({{subscribeKey}} and the required {{uuid}}), or a publisher without the secret key, does not start; only a user who supplies a client bean, or sets all keys (including the server-side {{secretKey}} and the deprecated {{authKey}}), gets a working endpoint. (The examples in the component documentation also leave out the required {{uuid}}, so they fail earlier, on {{new UserId(null)}}, with or without this fix.) The component tests all use a client bean, so they did not notice. The builder code came with the upgrade to the PubNub 10 client (17cdc892ee, Camel 4.9); before, the endpoint used the setters of the old {{PNConfiguration}}.
> h3. Reproduction
> {{PubNubConfigurationTest}}: {{context.getEndpoint("pubnub:xxx?subscribeKey=mysubkey&uuid=myuuid")}} fails with the error above ({{publishKey}}); with {{publishKey}} set it fails on {{secretKey}}. Checked against the SDK (13.4.4) directly: {{publishKey(null)}}, {{secretKey(null)}} and {{authKey(null)}} all throw.
> h3. Proposed fix
> Call the three setters only for the keys that are configured; the builder's defaults apply to the others. New tests in {{PubNubConfigurationTest}}: an endpoint with only {{subscribeKey}} and {{uuid}}, one with a {{publishKey}}, one with all keys (the first two fail on main); the camel-pubnub suite passes (17 tests). No upgrade note: endpoints that failed to start now start.
> Affected: main (PubNub 13.4.4, verified); 4.14.x (PubNub 10.5.8) and 4.18.x (PubNub 12.1.4) have the same builder code since 4.9 (not run against those SDK versions).
> Duplicate check (2026-10-02): JIRA text "pubnub" (17 issues) and "secretKey" with "pubnub" (none): nothing on this. GitHub pull requests "pubnub": dependency bumps and #15685 (closed bump to 10.0.0) only.
> _Filed with Claude Code on behalf of allthingssecurity._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)