ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Valentin Kulichenko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-4823) SpringCache#putIfAbsent - wrong implementation
Date Sat, 01 Apr 2017 04:56:42 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-4823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15952023#comment-15952023
] 

Valentin Kulichenko commented on IGNITE-4823:
---------------------------------------------

[~daradurvs], I looked at IGNITE-4211 and didn't find any reason for these tickets to depend
on each other. So I merged your fix. Thanks!

> SpringCache#putIfAbsent - wrong implementation
> ----------------------------------------------
>
>                 Key: IGNITE-4823
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4823
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>            Reporter: Vyacheslav Daradur
>            Assignee: Vyacheslav Daradur
>
> *Current implementation:*
> {code}
> Object old;
> if (val == null)
>     old = cache.withSkipStore().putIfAbsent(key, NULL);
> else
>     old = cache.putIfAbsent(key, val);
> return old != null ? fromValue(old) : null;
> {code}
> cache.putIfAbsent(key, val) - return boolean, not cached value
> *Excepted behavior (according to the Spring-docs)*
> {code}
> Object existingValue = cache.get(key);
> if (existingValue == null) {
>     cache.put(key, value);
>     return null;
> } else {
>     return existingValue;
> }
> {code}
> 1. Need to fix implementation
> 2. Cover SpringCache class with unit-tests



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

Mime
View raw message