Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-8438

[Aggregation] [Optimistic Locking] [Hazelcast] Binary representation of same exchanges are different

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Abandoned
    • 2.14.0
    • Future
    • camel-hazelcast
    • None
    • Moderate

    Description

      After some low-level debugging i've figured out that it's not possible to use optimistic locking for HazelcastAggregationRepository, as marshalled exchanges have different representation on binary level and some of distributed atomic update operations by design rely on it. So it might be also relevant for aggregation repositories with optimistic locking for other backends. Problem is that inHeaders of DefaultExchangeHolder is marshalled as LinkedHashMap, which may change physical order of entries, still giving same hash code after unmarshalling.

      As workaround - create special class for holding all aggregation properties and not to use more than one header.

      How to reproduce:
      create a unit test with embedded hazelcast instance, hazecast agg. repository and let newExchange's have more than one header.

      Attachments

        Activity

          People

            Unassigned Unassigned
            nfx Serge Smertin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: