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/15 05:46:00 UTC

[jira] [Resolved] (CAMEL-25657) camel-box - getEnterpriseEvents sends one more request with stream_position=null when Box answers a chunk without a next stream position, because box-java-sdk turns a JSON null into the text "null"

     [ https://issues.apache.org/jira/browse/CAMEL-25657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-25657.
---------------------------------
    Resolution: Fixed

> camel-box - getEnterpriseEvents sends one more request with stream_position=null when Box answers a chunk without a next stream position, because box-java-sdk turns a JSON null into the text "null"
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-25657
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25657
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-box
>            Reporter: shashank
>            Assignee: shashank
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Follow-up requested in the review of the merged PR [#27760|https://github.com/apache/camel/pull/27760] (CAMEL-25576).
> Since CAMEL-25576, {{BoxEventLogsManager.getEnterpriseEvents}} reads the event log chunk by chunk and stops on an empty chunk, on the same position again, or when the next position is null (main 1de5ec5135f8, lines 99-100). The last check never fires: in box-java-sdk 4.16.4 the {{EventLog}} constructor reads {{next_stream_position}} with {{isString() ? asString() : toString()}}, so a JSON null becomes the text {{"null"}} (checked in the class file of 4.16.4). When a chunk with events comes with a null next position, the manager sends one more request with {{stream_position=null}}.
> What Box answers to that request, and whether the service sends a null next position at all, was not checked against the service; the reviewer pointed out that the guard as written cannot fire.
> h3. Proposed fix
> Stop also when the next position is the text {{"null"}}.
> h3. Test
> New test {{stopsWhenTheServiceReturnsNoNextPosition}} in {{BoxEventLogsManagerPagingTest}} (the Box connection answers from memory through a request interceptor): a chunk of two events whose {{next_stream_position}} is a JSON null. Without the change: {{a request was sent at the position "null" ==> expected: <false> but was: <true>}}. camel-box with the change: 7 tests, 0 failures (the integration tests need a Box account and were not run).
> Affected: main only. On camel-4.23.x, camel-4.22.x and camel-4.18.x {{getEnterpriseEvents}} reads only the first chunk and does not look at the next position (read, not run).
> _Filed with Claude Code on behalf of allthingssecurity._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)