From b78407426023b73a4eb800c5eae761b0a4e35e3e Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Mon, 3 Jul 2017 17:09:11 +0300 Subject: [PATCH] datagrip tests fixed --- .../util/containers/ConcurrentFactoryMap.java | 15 ++++++++---- .../intellij/util/containers/FactoryMap.java | 24 +++++++++++++------ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/platform/util/src/com/intellij/util/containers/ConcurrentFactoryMap.java b/platform/util/src/com/intellij/util/containers/ConcurrentFactoryMap.java index 6503ff38f981..215fd79b53a1 100644 --- a/platform/util/src/com/intellij/util/containers/ConcurrentFactoryMap.java +++ b/platform/util/src/com/intellij/util/containers/ConcurrentFactoryMap.java @@ -65,6 +65,11 @@ public abstract class ConcurrentFactoryMap implements ConcurrentMap { value = ConcurrencyUtil.cacheOrGet(map, k, v); } } + return nullize(value); + } + + @Nullable + private static T nullize(T value) { return value == FAKE_NULL() ? null : value; } @@ -88,13 +93,13 @@ public abstract class ConcurrentFactoryMap implements ConcurrentMap { K k = notNull(key); V v = notNull(value); v = myMap.put(k, v); - return v == FAKE_NULL() ? null : v; + return nullize(v); } @Override public V remove(Object key) { V v = myMap.remove(key); - return v == FAKE_NULL() ? null : v; + return nullize(v); } @NotNull @@ -112,7 +117,7 @@ public abstract class ConcurrentFactoryMap implements ConcurrentMap { } public boolean removeValue(Object value) { - Object t = ObjectUtils.notNull(value, FAKE_NULL()); + Object t = notNull(value); //noinspection SuspiciousMethodCalls return myMap.values().remove(t); } @@ -150,7 +155,7 @@ public abstract class ConcurrentFactoryMap implements ConcurrentMap { return ContainerUtil.map(myMap.values(), new Function() { @Override public V fun(V v) { - return v == FAKE_NULL() ? null : v; + return nullize(v); } }); } @@ -161,7 +166,7 @@ public abstract class ConcurrentFactoryMap implements ConcurrentMap { return ContainerUtil.map2Set(myMap.entrySet(), new Function, Entry>() { @Override public Entry fun(Entry entry) { - return entry.getKey() == FAKE_NULL() ? new AbstractMap.SimpleEntry(null, entry.getValue()) : entry; + return new AbstractMap.SimpleEntry(nullize(entry.getKey()), nullize(entry.getValue())); } }); } diff --git a/platform/util/src/com/intellij/util/containers/FactoryMap.java b/platform/util/src/com/intellij/util/containers/FactoryMap.java index ceb07eb3ab98..40a3a7aa5e1d 100644 --- a/platform/util/src/com/intellij/util/containers/FactoryMap.java +++ b/platform/util/src/com/intellij/util/containers/FactoryMap.java @@ -24,6 +24,7 @@ import gnu.trove.THashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.AbstractMap; import java.util.Collection; import java.util.Map; import java.util.Set; @@ -66,7 +67,7 @@ public abstract class FactoryMap implements Map { map.put(k, v); } } - return value == FAKE_NULL() ? null : value; + return nullize(value); } private Map getMap() { @@ -86,6 +87,10 @@ public abstract class FactoryMap implements Map { //noinspection unchecked return key == null ? FactoryMap.FAKE_NULL() : (T)key; } + @Nullable + private static T nullize(T value) { + return value == FAKE_NULL() ? null : value; + } @Override public final boolean containsKey(Object key) { @@ -97,13 +102,13 @@ public abstract class FactoryMap implements Map { K k = notNull(key); V v = notNull(value); v = getMap().put(k, v); - return v == FAKE_NULL() ? null : v; + return nullize(v); } @Override public V remove(Object key) { V v = getMap().remove(key); - return v == FAKE_NULL() ? null : v; + return nullize(v); } @NotNull @@ -121,9 +126,9 @@ public abstract class FactoryMap implements Map { } public boolean removeValue(Object value) { - Object t = ObjectUtils.notNull(value, FAKE_NULL()); + Object t = notNull(value); //noinspection SuspiciousMethodCalls - return getMap().values().remove(t); + return getMap().values().remove(t); } @@ -160,7 +165,7 @@ public abstract class FactoryMap implements Map { return ContainerUtil.map(getMap().values(), new Function() { @Override public V fun(V v) { - return v == FAKE_NULL() ? null : v; + return nullize(v); } }); } @@ -168,7 +173,12 @@ public abstract class FactoryMap implements Map { @NotNull @Override public Set> entrySet() { - return getMap().entrySet(); + return ContainerUtil.map2Set(myMap.entrySet(), new Function, Entry>() { + @Override + public Entry fun(Entry entry) { + return new AbstractMap.SimpleEntry(nullize(entry.getKey()), nullize(entry.getValue())); + } + }); } @NotNull