// TODO - FIXME
$this->fixDIInit();
- // warm up the cache to avoid updating the value if it is already set to this value before
- $this->getUserValue($userId, $appName, $key);
+ $prevValue = $this->getUserValue($userId, $appName, $key, null);
- if (isset($this->userCache[$userId][$appName][$key])) {
- if ($this->userCache[$userId][$appName][$key] === (string)$value) {
+ if ($prevValue !== null) {
+ if ($prevValue === (string)$value) {
return;
- } else if ($preCondition !== null && $this->userCache[$userId][$appName][$key] !== (string)$preCondition) {
+ } else if ($preCondition !== null && $prevValue !== (string)$preCondition) {
throw new PreConditionNotMetException();
} else {
$qb = $this->connection->getQueryBuilder();