[
https://issues.apache.org/jira/browse/CAMEL-23714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Federico Mariani resolved CAMEL-23714.
--------------------------------------
Resolution: Fixed
> Polish RedisAggregationRepository: fix global lock, add catalog metadata, and
> improve test coverage
> ---------------------------------------------------------------------------------------------------
>
> Key: CAMEL-23714
> URL: https://issues.apache.org/jira/browse/CAMEL-23714
> Project: Camel
> Issue Type: Improvement
> Affects Versions: 4.20.0
> Reporter: Federico Mariani
> Assignee: Federico Mariani
> Priority: Minor
>
> Bugs:
> - Pessimistic add() acquires a single global lock ("aggregationLock") instead
> of a per-key lock, serializing all aggregation operations across all
> correlation keys. The Hazelcast equivalent was fixed to per-key locking in
> CAMEL-22041.
> - Exchange marshaling (DefaultExchangeHolder.marshal()) happens inside the
> lock critical section, increasing lock hold time unnecessarily.
> - remove() throws RuntimeException instead of RuntimeCamelException. The
> Redis repo was missed in the mass-migration commit 0d33d6f7b5d.
> - doInit() does not validate endpoint when redisson is null, leading to a
> NullPointerException in doStart() instead of a clear error message.
> Catalog/tooling:
> - Missing @Configurer(metadataOnly = true) and class-level @Metadata(label =
> "bean", ...) annotations, so the repository does not appear in the Camel
> catalog.
> Test coverage:
> - Only one integration test (AggregateRedisIT) covering the basic pessimistic
> happy path. Missing tests for: optimistic locking (happy path and
> contention), recovery cycle (scan/recover/confirm), dead letter channel,
> custom RedissonClient injection, and transaction rollback in remove().
--
This message was sent by Atlassian Jira
(v8.20.10#820010)