[infinispan-issues] [JBoss JIRA] (ISPN-5429) Cluster CacheEventFilterConverter wrapping leads to double callbacks

Galder Zamarreño (JIRA) issues at jboss.org
Tue May 5 03:03:46 EDT 2015


     [ https://issues.jboss.org/browse/ISPN-5429?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Galder Zamarreño resolved ISPN-5429.
------------------------------------
    Fix Version/s:     (was: 7.2.0.Final)
       Resolution: Deferred


The original cause of the double callbacks has been fixed but double callbacks still happen for a different reason. The issue will be fixed at a later stage.

> Cluster CacheEventFilterConverter wrapping leads to double callbacks
> --------------------------------------------------------------------
>
>                 Key: ISPN-5429
>                 URL: https://issues.jboss.org/browse/ISPN-5429
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Listeners
>    Affects Versions: 7.2.0.CR1, 7.1.1.Final
>            Reporter: Galder Zamarreño
>            Assignee: Galder Zamarreño
>
> This was spotted by Pierre Sutra from University of Neuchatel:
> When a CacheEventFilterConverter is registered with remote event listeners, and running in a cluster, once the CacheEventFilterConverter instance is replicated, the notion that its both a filter AND converter is lost because BaseCacheEntryListenerInvocation's constructor determines that {{filterAndConvert}} is false.
> The reason this happens is because after clustering it, the ClusterListenerReplicateCallable.call() wraps the {{filter}} into an {{AbstractCacheEventFilterConverter}} implementation, which does not keep the referential equality that BaseCacheEntryListenerInvocation's constructor checks.
> A simple way to avoid this is to implement {{equals}} in the AbstractCacheEventFilterConverter implementation and use referential equality. Then, switching BaseCacheEntryListenerInvocation's constructors referential equality by a call to {{equals}} is enough to solve the issue.
> The reason this bug was detected is because without a fix for it, the filter + converter gets two callbacks instead of one. I've added tests to verify that the number callbacks expected is the correct one.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)



More information about the infinispan-issues mailing list