From a08176bbf93c6e152d4add447732ecdc8cbcda46 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 17 Jan 2018 16:06:08 +0300 Subject: [PATCH] plumb JetForcer plugin usage suddenly appeared out of blue moon --- .../util/containers/ContainerUtil.java | 2 +- .../containers/SoftKeySoftValueHashMap.java | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/platform/util/src/com/intellij/util/containers/ContainerUtil.java b/platform/util/src/com/intellij/util/containers/ContainerUtil.java index ec71a9d5ec4f..d18687234437 100644 --- a/platform/util/src/com/intellij/util/containers/ContainerUtil.java +++ b/platform/util/src/com/intellij/util/containers/ContainerUtil.java @@ -2789,7 +2789,7 @@ public class ContainerUtil extends ContainerUtilRt { } @NotNull public static Map createSoftKeySoftValueMap() { - return new SoftKeySoftValueHashMap(); + return new SoftKeySoftValueHashMap(true); } /** diff --git a/platform/util/src/com/intellij/util/containers/SoftKeySoftValueHashMap.java b/platform/util/src/com/intellij/util/containers/SoftKeySoftValueHashMap.java index b8b20d06fe71..7791d4b2fbaf 100644 --- a/platform/util/src/com/intellij/util/containers/SoftKeySoftValueHashMap.java +++ b/platform/util/src/com/intellij/util/containers/SoftKeySoftValueHashMap.java @@ -15,16 +15,32 @@ */ package com.intellij.util.containers; +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.util.*; -final class SoftKeySoftValueHashMap implements Map{ +/** + * @deprecated use {@link ContainerUtil#createSoftKeySoftValueMap()} instead + */ +@Deprecated +public final class SoftKeySoftValueHashMap implements Map{ + private static final Logger LOG = Logger.getInstance(SoftKeySoftValueHashMap.class); private final RefHashMap> mySoftKeyMap = (RefHashMap>)ContainerUtil.>createSoftMap(); private final ReferenceQueue myQueue = new ReferenceQueue(); + @Deprecated + public SoftKeySoftValueHashMap() { + LOG.warn("This class is deprecated. Please use {@link ContainerUtil#createSoftKeySoftValueMap()} instead.", new IncorrectOperationException()); + } + + SoftKeySoftValueHashMap(boolean goodConstructor) { + } + + private static class ValueReference extends SoftReference { private final RefHashMap.Key key; @@ -38,6 +54,7 @@ final class SoftKeySoftValueHashMap implements Map{ boolean processQueue() { boolean processed = mySoftKeyMap.processQueue(); while(true) { + @SuppressWarnings("unchecked") ValueReference ref = (ValueReference)myQueue.poll(); if (ref == null) break; RefHashMap.Key key = ref.key;