ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Artem Shutak (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-2973) CacheInterceptor gets mixed user and binary objects in case of 'withKeepBinary' cache and EntryProcessor which sets user object as a value
Date Mon, 11 Apr 2016 14:09:25 GMT
Artem Shutak created IGNITE-2973:
------------------------------------

             Summary: CacheInterceptor gets mixed user and binary objects in case of 'withKeepBinary'
cache and EntryProcessor which sets user object as a value
                 Key: IGNITE-2973
                 URL: https://issues.apache.org/jira/browse/IGNITE-2973
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 1.5.0.final
            Reporter: Artem Shutak


Methods of {{CacheInterceptor}} gets mixed user and binary objects as params in case of {{withKeepBinary}}
cache and if {{EntryProcessor}} sets user object as a value.

{{Cache.withKeepBinary().invoke(..)}} and {{EntryProcessor}} which sets user object as value
(not {{BinaryObject}}). Then method {{Interceptor.onBeforePut(Entry e, Object newVal)}} gets
{{e.getKey()}} and {{e.getValue()}} as {{BinaryObject}}, {{newVal}} as userObject (for ATOMIC
cache) or {{BinaryObject}} (for TRANSACTIONAL cache), but {{Interceptor.onAfterPut(Entry e)}}
gets {{e.getKey()}} as {{BinaryObject}} and {{e.getValue}} as user object sometimes, but should
be {{BinaryObject}}. The issue can be reproduced only with Atomic cache.
I think it a little bit tricky to use such inconsistent API and not obvious for user where
they can get {{BinaryObject}} and where user object.

The same issue can be reproduces for {{invokeAll()}}.

Tests on these cases can be found at {{InterceptorWithKeepBinaryCacheTest}}.



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

Mime
View raw message