Serge Smertin created CAMEL-8438:
------------------------------------

             Summary: [Aggregation] [Optimistic Locking] [Hazelcast] Binary 
representation of same exchanges are different
                 Key: CAMEL-8438
                 URL: https://issues.apache.org/jira/browse/CAMEL-8438
             Project: Camel
          Issue Type: Bug
          Components: camel-hazelcast
    Affects Versions: 2.14.0
            Reporter: Serge Smertin


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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to