You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Vyacheslav Daradur (JIRA)" <ji...@apache.org> on 2017/03/15 07:30:42 UTC
[jira] [Created] (IGNITE-4823) SpringCache#putIfAbsent - wrong
implementation
Vyacheslav Daradur created IGNITE-4823:
------------------------------------------
Summary: 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)