cleanup: dereference
authorAlexey Kudravtsev <cdr@intellij.com>
Mon, 9 Dec 2013 11:01:02 +0000 (15:01 +0400)
committerAlexey Kudravtsev <cdr@intellij.com>
Tue, 10 Dec 2013 11:19:50 +0000 (15:19 +0400)
156 files changed:
images/src/org/intellij/images/ImagesBundle.java
images/src/org/intellij/images/vfs/IfsUtil.java
java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerBundle.java
java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java
java/debugger/openapi/src/com/intellij/debugger/DebuggerBundle.java
java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileImpl.java
java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RefCountHolder.java
java/java-analysis-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspectionBase.java
java/java-impl/src/com/intellij/codeInsight/completion/CompletionBundle.java
java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java
java/java-impl/src/com/intellij/javadoc/JavadocBundle.java
java/java-psi-api/src/com/intellij/core/JavaCoreBundle.java
java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowFactory.java
java/java-psi-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/file/PsiPackageImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiAnnotationStubImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiImportStatementStubImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/smartPointers/TypePointerBase.java
java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnnotationMethodImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnonymousClassImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/source/PsiFieldImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveCache.java
platform/analysis-api/src/com/intellij/analysis/AnalysisScopeBundle.java
platform/analysis-api/src/com/intellij/codeInsight/daemon/DaemonBundle.java
platform/analysis-api/src/com/intellij/codeInspection/InspectionsBundle.java
platform/analysis-impl/src/com/intellij/codeInsight/daemon/QuickFixBundle.java
platform/core-api/src/com/intellij/codeInsight/CodeInsightBundle.java
platform/core-api/src/com/intellij/core/CoreBundle.java
platform/core-api/src/com/intellij/ide/IdeBundle.java
platform/core-api/src/com/intellij/openapi/editor/EditorBundle.java
platform/core-api/src/com/intellij/psi/PsiBundle.java
platform/core-api/src/com/intellij/psi/util/PsiCacheKey.java
platform/core-impl/src/com/intellij/lang/LangBundle.java
platform/core-impl/src/com/intellij/mock/MockFileDocumentManagerImpl.java
platform/core-impl/src/com/intellij/openapi/editor/impl/CharArray.java
platform/core-impl/src/com/intellij/openapi/fileTypes/FileTypesBundle.java
platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java
platform/core-impl/src/com/intellij/psi/impl/smartPointers/SelfElementInfo.java
platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java
platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java
platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java
platform/core-impl/src/com/intellij/util/CachedValueBase.java
platform/core-impl/src/com/intellij/util/CompressionUtil.java
platform/dvcs/src/com/intellij/dvcs/ui/DvcsBundle.java
platform/lang-api/src/com/intellij/refactoring/RefactoringBundle.java
platform/lang-api/src/com/intellij/usageView/UsageViewBundle.java
platform/lang-impl/src/com/intellij/codeEditor/printing/CodeEditorBundle.java
platform/lang-impl/src/com/intellij/codeInsight/documentation/QuickDocOnMouseOverManager.java
platform/lang-impl/src/com/intellij/codeInsight/hint/ShowContainerInfoHandler.java
platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java
platform/lang-impl/src/com/intellij/codeInsight/navigation/AbstractDocumentationTooltipAction.java
platform/lang-impl/src/com/intellij/codeInsight/preview/ImageOrColorPreviewManager.java
platform/lang-impl/src/com/intellij/codeInsight/preview/ImagePreviewComponent.java
platform/lang-impl/src/com/intellij/find/FindBundle.java
platform/lang-impl/src/com/intellij/psi/formatter/WhiteSpaceFormattingStrategyFactory.java
platform/lang-impl/src/com/intellij/semantic/SemServiceImpl.java
platform/lang-impl/src/com/intellij/tools/ToolsBundle.java
platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java
platform/lvcs-impl/src/com/intellij/history/integration/LocalHistoryBundle.java
platform/platform-api/src/com/intellij/featureStatistics/FeatureStatisticsBundle.java
platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeBuilder.java
platform/platform-api/src/com/intellij/ide/util/treeView/TreeState.java
platform/platform-api/src/com/intellij/idea/ActionsBundle.java
platform/platform-api/src/com/intellij/notification/Notification.java
platform/platform-api/src/com/intellij/openapi/application/ApplicationBundle.java
platform/platform-api/src/com/intellij/openapi/diff/DiffBundle.java
platform/platform-api/src/com/intellij/openapi/keymap/KeyMapBundle.java
platform/platform-api/src/com/intellij/openapi/options/OptionsBundle.java
platform/platform-api/src/com/intellij/openapi/vcs/VcsBundle.java
platform/platform-api/src/com/intellij/ui/tabs/TabInfo.java
platform/platform-impl/src/com/intellij/diagnostic/DiagnosticBundle.java
platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java
platform/platform-impl/src/com/intellij/ide/dnd/DnDManagerImpl.java
platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHighlighterCache.java
platform/platform-impl/src/com/intellij/openapi/keymap/impl/KeyProcessorContext.java
platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java
platform/platform-impl/src/com/intellij/openapi/vfs/impl/win32/Win32FsCache.java
platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java
platform/platform-impl/src/com/intellij/psi/statistics/impl/StatisticsManagerImpl.java
platform/platform-impl/src/net/sf/cglib/core/AbstractClassGenerator.java
platform/projectModel-api/src/com/intellij/openapi/project/ProjectBundle.java
platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudBundle.java
platform/smRunner/src/com/intellij/execution/testframework/sm/SMTestsRunnerBundle.java
platform/usageView/src/com/intellij/usages/ChunkExtractor.java
platform/usageView/src/com/intellij/usages/UsageInfo2UsageAdapter.java
platform/util-rt/src/com/intellij/reference/SoftLazyValue.java
platform/util/src/com/intellij/AbstractBundle.java
platform/util/src/com/intellij/CommonBundle.java
platform/util/src/com/intellij/openapi/util/JDOMUtil.java
platform/util/src/com/intellij/openapi/util/registry/Registry.java
platform/util/src/com/intellij/openapi/wm/FocusWatcher.java
platform/util/src/com/intellij/ui/UIBundle.java
platform/util/src/com/intellij/util/containers/SoftFactoryMap.java
platform/util/src/com/intellij/util/containers/SoftKeySoftValueHashMap.java
platform/util/src/com/intellij/util/containers/UnsafeWeakList.java
platform/util/src/com/intellij/util/containers/WeakFactoryMap.java
platform/util/src/com/intellij/util/containers/WeakKeyWeakValueHashMap.java
platform/util/src/com/intellij/util/containers/WeakValueIntObjectHashMap.java
platform/util/src/com/intellij/util/lang/JarLoader.java
platform/util/src/com/intellij/util/xmlb/XmlSerializerImpl.java
platform/util/testSrc/com/intellij/util/containers/WeakListTest.java
platform/vcs-api/src/com/intellij/openapi/vcs/impl/ContentRevisionCache.java
platform/vcs-impl/src/com/intellij/openapi/vcs/update/ShowUpdatedDiffAction.java
platform/xdebugger-api/src/com/intellij/xdebugger/XDebuggerBundle.java
plugins/IdeaTestAssistant/src/com/intellij/testAssistant/TestDataGroupFileEditor.java
plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.java
plugins/IntentionPowerPak/src/com/siyeh/IntentionPowerPackBundle.java
plugins/ant/src/com/intellij/lang/ant/AntBundle.java
plugins/ant/src/com/intellij/lang/ant/resources/AntActionsBundle.java
plugins/cvs/cvs-core/src/com/intellij/CvsBundle.java
plugins/cvs/javacvs-src/org/netbeans/lib/cvsclient/JavaCvsSrcBundle.java
plugins/cvs/smartcvs-src/org/netbeans/lib/cvsclient/SmartCvsSrcBundle.java
plugins/devkit/src/DevKitBundle.java
plugins/eclipse/src/org/jetbrains/idea/eclipse/EclipseBundle.java
plugins/git4idea/rt/src/org/jetbrains/git4idea/ssh/SSHMainBundle.java
plugins/git4idea/src/git4idea/i18n/GitBundle.java
plugins/gradle/src/org/jetbrains/plugins/gradle/codeInspection/GradleInspectionBundle.java
plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleDocumentationBundle.java
plugins/groovy/src/org/jetbrains/plugins/groovy/GroovyBundle.java
plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyCodeInsightBundle.java
plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/GroovyInspectionBundle.java
plugins/groovy/src/org/jetbrains/plugins/groovy/doc/GroovyDocBundle.java
plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslFileIndex.java
plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/GroovyIntentionsBundle.java
plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyFileBaseImpl.java
plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java
plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrAnonymousClassDefinitionImpl.java
plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrSyntheticCodeBlock.java
plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrAnnotationStub.java
plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/GroovyRefactoringBundle.java
plugins/hg4idea/src/org/zmlx/hg4idea/HgVcsMessages.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/MavenDomBundle.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/IndicesBundle.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/project/ProjectBundle.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/TasksBundle.java
plugins/properties/src/com/intellij/lang/properties/PropertiesBundle.java
plugins/svn4idea/src/org/jetbrains/idea/svn/SvnBundle.java
plugins/ui-designer-core/src/com/intellij/designer/DesignerBundle.java
plugins/ui-designer/src/com/intellij/uiDesigner/UIDesignerBundle.java
plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/CachedGridImage.java
plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/impl/XsltDocumentationProvider.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/GeneratedStructureModel.java
python/rest/src/com/jetbrains/rest/RestBundle.java
python/src/com/jetbrains/python/PyBundle.java
python/src/com/jetbrains/python/codeInsight/controlflow/ControlFlowCache.java
python/src/com/jetbrains/python/psi/impl/PyFileImpl.java
python/src/com/jetbrains/python/psi/types/functionalParser/FunctionalParserBase.java
python/src/com/jetbrains/python/sdk/PythonSdkType.java
xml/dom-impl/src/com/intellij/util/xml/impl/DomManagerImpl.java
xml/dom-impl/src/com/intellij/util/xml/impl/DynamicGenericInfo.java
xml/dom-openapi/src/com/intellij/util/xml/DomBundle.java
xml/xml-psi-api/src/com/intellij/xml/XmlBundle.java
xml/xml-psi-impl/src/com/intellij/codeInsight/daemon/XmlErrorMessages.java
xml/xml-psi-impl/src/com/intellij/xml/impl/ExternalDocumentValidator.java

index b2a7092b1306f86f7e8200c4932032e982c89c68..056e4403546a4228fd66a353afbb081b18e0fcc7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class ImagesBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index bb2f1541f2990f7f0e4ba1990a0e3022fb9c134e..12b8e590c0b71cff7d72ee511d7b19089b61431c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -66,7 +66,7 @@ public final class IfsUtil {
   private static boolean refresh(@NotNull VirtualFile file) throws IOException {
     Long loadedTimeStamp = file.getUserData(TIMESTAMP_KEY);
     SoftReference<BufferedImage> imageRef = file.getUserData(BUFFERED_IMAGE_REF_KEY);
-    if (loadedTimeStamp == null || loadedTimeStamp.longValue() != file.getTimeStamp() || imageRef == null || imageRef.get() == null) {
+    if (loadedTimeStamp == null || loadedTimeStamp.longValue() != file.getTimeStamp() || SoftReference.dereference(imageRef) == null) {
       try {
         final byte[] content = file.contentsToByteArray();
 
@@ -113,7 +113,7 @@ public final class IfsUtil {
   public static BufferedImage getImage(@NotNull VirtualFile file) throws IOException {
     refresh(file);
     SoftReference<BufferedImage> imageRef = file.getUserData(BUFFERED_IMAGE_REF_KEY);
-    return imageRef != null ? imageRef.get() : null;
+    return SoftReference.dereference(imageRef);
   }
 
   @Nullable
index eac8c804e7ecc14f760d2a535a2317343014c32b..5e01ff64f604f4ddccf0ed31a57bf2e1bcb8fcdb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -45,8 +45,7 @@ public class CompilerBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 6b514f3b4dfa3c0ecd97fbd0e6361332803c874b..f43d36b2185a7658de82b3b2d96a60bd3b580e16 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,6 +41,7 @@ import com.intellij.psi.*;
 import com.intellij.psi.impl.PsiDocumentManagerBase;
 import com.intellij.psi.search.GlobalSearchScope;
 import com.intellij.psi.util.PsiTreeUtil;
+import com.intellij.reference.SoftReference;
 import com.intellij.ui.ClickListener;
 import com.intellij.util.containers.ContainerUtil;
 import org.jetbrains.annotations.NotNull;
@@ -112,7 +113,7 @@ public abstract class DebuggerEditorImpl extends CompletionEditor{
     new ClickListener() {
       @Override
       public boolean onClick(MouseEvent e, int clickCount) {
-        ListPopup oldPopup = myPopup != null ? myPopup.get() : null;
+        ListPopup oldPopup = SoftReference.dereference(myPopup);
         if (oldPopup != null && !oldPopup.isDisposed()) {
           oldPopup.cancel();
           myPopup = null;
index 179cf4ac54535ecdeb6cd9e47e19197197af0a81..d83053bd56c5369174f4c0f2dcf3f3447cba3420 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -45,8 +45,7 @@ public class DebuggerBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 45edd4a46677c325e9341e7f8fd3bcb1fef97e67..db9b58b575ba2ba1fcc183c20d7286a71f73c1ab 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2000-2013 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package com.intellij.util.descriptors.impl;
 
 import com.intellij.openapi.project.Project;
@@ -71,8 +86,7 @@ public class ConfigFileImpl implements ConfigFile {
   @Override
   @Nullable
   public PsiFile getPsiFile() {
-    Reference<PsiFile> ref = myPsiFile;
-    PsiFile psiFile = ref == null ? null : ref.get();
+    PsiFile psiFile = com.intellij.reference.SoftReference.dereference(myPsiFile);
 
     if (psiFile != null && psiFile.isValid()) {
       return psiFile;
index 175c1332db46e1679e0f25dbc0f517cd3d227457..66de82fb585bf6ea45ebafc01460f9832f1518f5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -77,7 +77,7 @@ public class RefCountHolder {
 
   private static RefCountHolder getInstance(@NotNull PsiFile file, @NotNull ProgressIndicator indicator, boolean acquire) {
     HolderReference ref = file.getUserData(REF_COUNT_HOLDER_IN_FILE_KEY);
-    RefCountHolder holder = ref == null ? null : ref.get();
+    RefCountHolder holder = com.intellij.reference.SoftReference.dereference(ref);
     if (holder == null && acquire) {
       holder = new RefCountHolder(file);
       HolderReference newRef = new HolderReference(holder);
@@ -88,7 +88,7 @@ public class RefCountHolder {
           break;
         }
         ref = file.getUserData(REF_COUNT_HOLDER_IN_FILE_KEY);
-        RefCountHolder newHolder = ref == null ? null : ref.get();
+        RefCountHolder newHolder = com.intellij.reference.SoftReference.dereference(ref);
         if (newHolder != null) {
           holder = newHolder;
           break;
index 90fe1c0ff1151e7b13ff8998bfe0627e6d24e479..ca13b50f56eba3f4b2c0e6b8b198ae8494de9863 100644 (file)
@@ -85,8 +85,8 @@ public class Java15APIUsageInspectionBase extends BaseJavaBatchLocalInspectionTo
   private static Set<String> getForbiddenApi(@NotNull LanguageLevel languageLevel) {
     if (!ourPresentableShortMessage.containsKey(languageLevel)) return null;
     Reference<Set<String>> ref = ourForbiddenAPI.get(languageLevel);
-    Set<String> result;
-    if (ref == null || (result = ref.get()) == null) {
+    Set<String> result = SoftReference.dereference(ref);
+    if (result == null) {
       result = new THashSet<String>(1000);
       loadForbiddenApi("api" + getShortName(languageLevel) + ".txt", result);
       ourForbiddenAPI.put(languageLevel, new SoftReference<Set<String>>(result));
index 0f5942a55ef61c25814938a3d4f17bc647cc36dc..d2ac5c1d8f9f25fd8e1e5da0f9fded521b05d03a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class CompletionBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index c1bfeda875311d665ecf5f9d024a8a0dcb0e35d0..6adeaa50bcdbd84c8c210e1369b30410b72d3aeb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@ import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.psi.*;
 import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
 import com.intellij.psi.util.PsiUtilCore;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.Function;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -85,12 +86,9 @@ public class JavaPsiClassReferenceElement extends LookupItem<Object> {
   @Override
   public PsiClass getObject() {
     if (myClass instanceof PsiAnchor) {
-      Reference<PsiClass> cache = myCache;
-      if (cache != null) {
-        PsiClass psiClass = cache.get();
-        if (psiClass != null) {
-          return psiClass;
-        }
+      PsiClass psiClass = SoftReference.dereference(myCache);
+      if (psiClass != null) {
+        return psiClass;
       }
 
       final PsiClass retrieve = (PsiClass)((PsiAnchor)myClass).retrieve();
index b59c698e59544119a6ce24f0883f0a8f7f029f48..5310d247c4c91abf9ba825330f5103a59f310bf5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class JavadocBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index ffac7af60302126b42a9c97718fee3baa8a4c025..4f315b15b0bb33757126dd278fa4e25ae25ca4a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class JavaCoreBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index a1b28c5c59a8e6da2cfd86c79fe508ffb15803af..904ae5fb9aec034ec1dcbc14449ce9a7af4ae54a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -159,7 +159,7 @@ public class ControlFlowFactory {
   @NotNull
   private CopyOnWriteArrayList<ControlFlowContext> getOrCreateCachedFlowsForElement(@NotNull PsiElement element) {
     Reference<CopyOnWriteArrayList<ControlFlowContext>> cachedRef = cachedFlows.get(element);
-    CopyOnWriteArrayList<ControlFlowContext> cached = cachedRef == null ? null : cachedRef.get();
+    CopyOnWriteArrayList<ControlFlowContext> cached = com.intellij.reference.SoftReference.dereference(cachedRef);
     if (cached == null) {
       cached = ContainerUtil.createEmptyCOWList();
       cachedFlows.put(element, new SoftReference<CopyOnWriteArrayList<ControlFlowContext>>(cached));
index 782d82f46f9738288ed6de811e0e0df3514021e0..25d09a7ba29749c7f4ca4449f0abfa54e8ba31e1 100644 (file)
@@ -179,8 +179,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx {
 
   @Override
   public PsiPackage findPackage(@NotNull String qualifiedName) {
-    SoftReference<ConcurrentMap<String, PsiPackage>> ref = myPackageCache;
-    ConcurrentMap<String, PsiPackage> cache = ref == null ? null : ref.get();
+    ConcurrentMap<String, PsiPackage> cache = SoftReference.dereference(myPackageCache);
     if (cache == null) {
       myPackageCache = new SoftReference<ConcurrentMap<String, PsiPackage>>(cache = new ConcurrentHashMap<String, PsiPackage>());
     }
index 12964bc69dac568018f0621179b4abfe4cad52f1..e2cca2d8332bb1b16e0ba78295414cc1d87d5e05 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,6 +39,7 @@ import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
+import java.lang.ref.Reference;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -49,7 +50,7 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya
   private volatile CachedValue<PsiModifierList> myAnnotationList;
   private volatile CachedValue<Collection<PsiDirectory>> myDirectories;
   private volatile CachedValue<Collection<PsiDirectory>> myDirectoriesWithLibSources;
-  private volatile SoftReference<Set<String>> myPublicClassNamesCache;
+  private volatile Reference<Set<String>> myPublicClassNamesCache;
 
   public PsiPackageImpl(PsiManager manager, String qualifiedName) {
     super(manager, qualifiedName);
@@ -176,8 +177,7 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya
   }
 
   private Set<String> getClassNamesCache() {
-    SoftReference<Set<String>> ref = myPublicClassNamesCache;
-    Set<String> cache = ref == null ? null : ref.get();
+    Set<String> cache = SoftReference.dereference(myPublicClassNamesCache);
     if (cache == null) {
       GlobalSearchScope scope = allScope();
 
index 3262f35b2d5c4cbaa8554fd2f15638c6a3e4b151..f704bf042e0365e650333252ca193c31a188c0ca 100644 (file)
@@ -57,17 +57,15 @@ public class PsiAnnotationStubImpl extends StubBase<PsiAnnotation> implements Ps
 
   @Override
   public PsiAnnotation getPsiElement() {
-    if (myParsedFromRepository != null) {
-      PsiAnnotation annotation = myParsedFromRepository.get();
-      if (annotation != null) {
-        return annotation;
-      }
+    PsiAnnotation annotation = SoftReference.dereference(myParsedFromRepository);
+    if (annotation != null) {
+      return annotation;
     }
 
     final String text = getText();
     try {
       PsiJavaParserFacade facade = JavaPsiFacade.getInstance(getProject()).getParserFacade();
-      PsiAnnotation annotation = facade.createAnnotationFromText(text, getPsi());
+      annotation = facade.createAnnotationFromText(text, getPsi());
       myParsedFromRepository = new SoftReference<PsiAnnotation>(annotation);
       return annotation;
     }
index 1de00bfc002d3c6d741b83ad3f8d0e79c4168b64..65c60197491c9066a9cf510558fccf6a86497d55 100644 (file)
@@ -77,7 +77,7 @@ public class PsiImportStatementStubImpl extends StubBase<PsiImportStatementBase>
   @Override
   @Nullable
   public PsiJavaCodeReferenceElement getReference() {
-    PsiJavaCodeReferenceElement ref = myReference != null ? myReference.get() : null;
+    PsiJavaCodeReferenceElement ref = SoftReference.dereference(myReference);
     if (ref == null) {
       ref = isStatic() ? getStaticReference() : getRegularReference();
       myReference = new SoftReference<PsiJavaCodeReferenceElement>(ref);
index 895ea667a9067f81c544d56f507994ee75643472..1f3baf50696aa0f32c52d6fd34d080fc542a6a3c 100644 (file)
@@ -35,8 +35,7 @@ public abstract class TypePointerBase<T extends PsiType> implements SmartTypePoi
 
   @Override
   public T getType() {
-    Reference<T> typeRef = myTypeRef;
-    T myType = typeRef == null ? null : typeRef.get();
+    T myType = SoftReference.dereference(myTypeRef);
     if (myType != null && myType.isValid()) return myType;
 
     myType = calcType();
index 70229d13e67b8329f5b5b9983fd55b3b03a93f6b..def3bb307a14487a39ddafca4b958c3671b3501d 100644 (file)
@@ -57,17 +57,15 @@ public class PsiAnnotationMethodImpl extends PsiMethodImpl implements PsiAnnotat
       final String text = stub.getDefaultValueText();
       if (StringUtil.isEmpty(text)) return null;
 
-      if (myCachedDefaultValue != null) {
-        final PsiAnnotationMemberValue value = myCachedDefaultValue.get();
-        if (value != null) {
-          return value;
-        }
+      PsiAnnotationMemberValue value = SoftReference.dereference(myCachedDefaultValue);
+      if (value != null) {
+        return value;
       }
 
       @NonNls final String annoText = "@interface _Dummy_ { Class foo() default " + text + "; }";
       final PsiFileFactory factory = PsiFileFactory.getInstance(getProject());
       final PsiJavaFile file = (PsiJavaFile)factory.createFileFromText("a.java", JavaFileType.INSTANCE, annoText);
-      final PsiAnnotationMemberValue value = ((PsiAnnotationMethod)file.getClasses()[0].getMethods()[0]).getDefaultValue();
+      value = ((PsiAnnotationMethod)file.getClasses()[0].getMethods()[0]).getDefaultValue();
       myCachedDefaultValue = new SoftReference<PsiAnnotationMemberValue>(value);
       return value;
     }
index 9d14b52babb6e7e2456ff2f400caebb2041567ef..b25f033e74b932dd3299c878b715f4df370f2755 100644 (file)
@@ -72,19 +72,17 @@ public class PsiAnonymousClassImpl extends PsiClassImpl implements PsiAnonymousC
       return getTypeByTree();
     }
 
-    PsiClassType type = null;
-    if (myCachedBaseType != null) type = myCachedBaseType.get();
+    PsiClassType type = SoftReference.dereference(myCachedBaseType);
     if (type != null) return type;
 
     if (!isInQualifiedNew()) {
-      final PsiJavaCodeReferenceElement ref;
       final String refText = stub.getBaseClassReferenceText();
       assert refText != null : stub;
       final PsiElementFactory factory = JavaPsiFacade.getInstance(getProject()).getElementFactory();
 
       final PsiElement context = calcBasesResolveContext(PsiNameHelper.getShortClassName(refText), getExtendsList());
       try {
-        ref = factory.createReferenceFromText(refText, context);
+        final PsiJavaCodeReferenceElement ref = factory.createReferenceFromText(refText, context);
         ((PsiJavaCodeReferenceElementImpl)ref).setKindWhenDummy(PsiJavaCodeReferenceElementImpl.CLASS_NAME_KIND);
         type = factory.createType(ref);
       }
index 3535bfe5bbfad0d9fb4a2d2cf9481fb135ed7f50..367a8bb6e014e8677ef60a55841972f4dde48bd0 100644 (file)
@@ -128,15 +128,12 @@ public class PsiFieldImpl extends JavaStubPsiElement<PsiFieldStub> implements Ps
   public PsiType getType() {
     final PsiFieldStub stub = getStub();
     if (stub != null) {
-      SoftReference<PsiType> cachedType = myCachedType;
-      if (cachedType != null) {
-        PsiType type = cachedType.get();
-        if (type != null) return type;
-      }
+      PsiType type = SoftReference.dereference(myCachedType);
+      if (type != null) return type;
 
       String typeText = TypeInfo.createTypeText(stub.getType(true));
       try {
-        final PsiType type = JavaPsiFacade.getInstance(getProject()).getParserFacade().createTypeFromText(typeText, this);
+        type = JavaPsiFacade.getInstance(getProject()).getParserFacade().createTypeFromText(typeText, this);
         myCachedType = new SoftReference<PsiType>(type);
         return type;
       }
index 7423b3c836f3043f566154439fb0a1f9c5284478..456398fc2cd315b9419aff972ccf3914bc990f89 100644 (file)
@@ -195,14 +195,11 @@ public class PsiMethodImpl extends JavaStubPsiElement<PsiMethodStub> implements
       final String typeText = TypeInfo.createTypeText(stub.getReturnTypeText(true));
       if (typeText == null) return null;
 
-      SoftReference<PsiType> cachedType = myCachedType;
-      if (cachedType != null) {
-        PsiType type = cachedType.get();
-        if (type != null) return type;
-      }
+      PsiType type = SoftReference.dereference(myCachedType);
+      if (type != null) return type;
 
       try {
-        final PsiType type = JavaPsiFacade.getInstance(getProject()).getElementFactory().createTypeFromText(typeText, this);
+        type = JavaPsiFacade.getInstance(getProject()).getElementFactory().createTypeFromText(typeText, this);
         myCachedType = new SoftReference<PsiType>(type);
         return type;
       }
index 52827e2fb82b3f7cbfeb8f73aabd1059f6fb51ad..287fba0238e486e4d4ef365c1a05734c74f7e315 100644 (file)
@@ -39,12 +39,13 @@ import com.intellij.util.PlatformIcons;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
+import java.lang.ref.Reference;
 import java.util.Arrays;
 
 public class PsiParameterImpl extends JavaStubPsiElement<PsiParameterStub> implements PsiParameter {
   private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.PsiParameterImpl");
 
-  private volatile SoftReference<PsiType> myCachedType = null;
+  private volatile Reference<PsiType> myCachedType = null;
 
   public PsiParameterImpl(@NotNull PsiParameterStub stub) {
     this(stub, JavaStubElementTypes.PARAMETER);
@@ -116,16 +117,13 @@ public class PsiParameterImpl extends JavaStubPsiElement<PsiParameterStub> imple
   public PsiType getType() {
     PsiParameterStub stub = getStub();
     if (stub != null) {
-      SoftReference<PsiType> cachedType = myCachedType;
-      if (cachedType != null) {
-        PsiType type = cachedType.get();
-        if (type != null) return type;
-      }
+      PsiType type = SoftReference.dereference(myCachedType);
+      if (type != null) return type;
 
       String typeText = TypeInfo.createTypeText(stub.getType(true));
       assert typeText != null : stub;
       try {
-        PsiType type = JavaPsiFacade.getInstance(getProject()).getParserFacade().createTypeFromText(typeText, this);
+        type = JavaPsiFacade.getInstance(getProject()).getParserFacade().createTypeFromText(typeText, this);
         myCachedType = new SoftReference<PsiType>(type);
         return type;
       }
index 73895177261cef8ea2e156796b33d45690328044..185d08ee8fd3a8ec260e991e0212fe3c93ab1f31 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -124,7 +124,7 @@ public class JavaResolveCache {
 
   private <T extends PsiExpression> PsiType getCachedType(T expr) {
     Reference<PsiType> reference = myCalculatedTypes.get(expr);
-    return reference == null ? null : reference.get();
+    return SoftReference.dereference(reference);
   }
 
   @Nullable
index cdb72e244a0d8d521f6d9e6eeeab415d99a693d9..44e1d4a48f1659c317916b080a2f57e12714145f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class AnalysisScopeBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index a7b4d79874c36fde6211f74fdac5d04ae2950f63..3d848632342d963827da0a8adafaca28e5055bcf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class DaemonBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 95b24828e481f4f46fa4ee7fde026f4adab9f5d4..585c2f6f7bace584ab307b251103ca505421f5d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class InspectionsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 508aa95cbd89beb62be770e1f6281c0e83303625..9a32d315f95f6593fc35422b7e6e018596908bad 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class QuickFixBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 94d27d7fdf188ae9b736c8ec3670ad748bd73bc2..572bcf4065eb1014d9135730c3debbd645f55b76 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class CodeInsightBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 36f4ccd8ddfb1a43218353fb0559bc5b3c82660c..5c7451fd31aeda31051cfb32a34ab55dad37c55a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class CoreBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index d604862e8a6484374b6a8d1a0e069fe90a823a19..44a707b3728896855253492152ad3780174261a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class IdeBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 933ddf21f4c56f7747d1a0edf423890e71fba3ca..a7657f74db13fd87b424ce5ba3bd6f2be3d98128 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class EditorBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index b1965974a73f84501db55b681e907e24a4158a69..b403743043a982b32e8caf285d9c6199cd37fc35 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class PsiBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 1e21c807b1955c9edb89b756886facbfb62f0f7f..1f31645ed258d77edfafa340bf4b572dd1043b8f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2010 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@ public class PsiCacheKey<T,H extends PsiElement> extends Key<SoftReference<Pair<
   @Nullable
   public final T getCachedValueOrNull(@NotNull H h) {
     SoftReference<Pair<Long, T>> ref = h.getUserData(this);
-    Pair<Long, T> data = ref == null ? null : ref.get();
+    Pair<Long, T> data = SoftReference.dereference(ref);
     if (data == null || data.getFirst() != h.getManager().getModificationTracker().getJavaStructureModificationCount()) {
       return null;
     }
index ceab51505f01c638f5b3c8bda8a4df2682eb52e2..5727dd06bdecc72c565fbe1ade45125290ce7879 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class LangBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 798078b78a9fb0063309dba70eee55941cd7002d..c655b8d1e0db66d2f65d71b08565cb55696d570f 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2000-2013 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package com.intellij.mock;
 
 import com.intellij.openapi.editor.Document;
@@ -8,6 +23,7 @@ import com.intellij.openapi.fileTypes.FileType;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.Key;
 import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.Function;
 import com.intellij.util.containers.WeakFactoryMap;
 import org.jetbrains.annotations.NotNull;
@@ -51,7 +67,7 @@ public class MockFileDocumentManagerImpl extends FileDocumentManager {
   public Document getCachedDocument(@NotNull VirtualFile file) {
     if (myCachedDocumentKey != null) {
       Reference<Document> reference = file.getUserData(myCachedDocumentKey);
-      return reference != null ? reference.get() : null;
+      return SoftReference.dereference(reference);
     }
     return null;
   }
index 62dc9d9610712447c274aa7785b47093db095f61..5fba46ac4ed7d6ac2e5ccfe0d522890b2bfbda01 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -188,7 +188,7 @@ abstract class CharArray implements CharSequenceBackedByArray, Dumpable {
     }
     CharSequence originalSequence = myOriginalSequence;
     int origLen = originalSequence == null ? -1 : originalSequence.length();
-    String string = myStringRef == null ? null : myStringRef.get();
+    String string = com.intellij.reference.SoftReference.dereference(myStringRef);
     int stringLen = string == null ? -1 : string.length();
     assert origLen == stringLen || origLen==-1 || stringLen==-1;
 
@@ -219,7 +219,7 @@ abstract class CharArray implements CharSequenceBackedByArray, Dumpable {
 
     myDebugArray.assertConsistency();
 
-    CharSequence str = myStringRef == null ? null : myStringRef.get();
+    CharSequence str = com.intellij.reference.SoftReference.dereference(myStringRef);
     if (str == null) {
       if (myHasDeferredChanges) {
         str = doSubString(0, myCount + myDeferredShift).toString();
@@ -388,7 +388,7 @@ abstract class CharArray implements CharSequenceBackedByArray, Dumpable {
   @NotNull
   public String toString() {
     assertConsistency();
-    String str = myStringRef == null ? null : myStringRef.get();
+    String str = com.intellij.reference.SoftReference.dereference(myStringRef);
     if (str == null) {
       if (myHasDeferredChanges) {
         str = substring(0, length()).toString();
index acae6299b1a59bbda8cf06e7f468090cc4a605e3..22d89a69049fac1e1b0dfae5c05962c013dfa76e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class FileTypesBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 243f0e198d2a50cf46f0e8ff50e49e865bd5e25f..e4a4eb76d02458ca3f35d4f145f12ddd1777059a 100644 (file)
@@ -355,14 +355,14 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi
 
   @Nullable
   private Document getCachedDocument() {
-    final Document document = myDocument != null ? myDocument.get() : null;
+    final Document document = com.intellij.reference.SoftReference.dereference(myDocument);
     if (document != null) return document;
     return FileDocumentManager.getInstance().getCachedDocument(getVirtualFile());
   }
 
   @Override
   public Document getDocument() {
-    Document document = myDocument != null ? myDocument.get() : null;
+    Document document = com.intellij.reference.SoftReference.dereference(myDocument);
     if (document == null/* TODO[ik] make this change && isEventSystemEnabled()*/) {
       document = FileDocumentManager.getInstance().getDocument(getVirtualFile());
       myDocument = new SoftReference<Document>(document);
@@ -535,7 +535,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi
 
     @Override
     public long getModificationStamp() {
-      Document document = myDocument == null ? null : myDocument.get();
+      Document document = com.intellij.reference.SoftReference.dereference(myDocument);
       if (document != null) return document.getModificationStamp();
       return myVirtualFile.getModificationStamp();
     }
index f61cab6c550bf05f7c57d3cc13e0d9a502f2d2a9..01124e1c6ecbc26ace84c76df651deb25d435090 100644 (file)
@@ -193,8 +193,7 @@ public class SelfElementInfo implements SmartPointerElementInfo {
   }
 
   private RangeMarker getMarker() {
-    Reference<RangeMarker> ref = myMarkerRef;
-    return ref == null ? null : ref.get();
+    return com.intellij.reference.SoftReference.dereference(myMarkerRef);
   }
 
   @Override
index 6f6f27507641d78b96606b528f9d7e8840e105ea..8476372d57e44002db6de0628a957e4f2ba05992 100644 (file)
@@ -139,7 +139,7 @@ public class SmartPointerManagerImpl extends SmartPointerManager {
 
   private static <E extends PsiElement> SmartPointerEx<E> getCachedPointer(@NotNull E element) {
     Reference<SmartPointerEx> data = element.getUserData(CACHED_SMART_POINTER_KEY);
-    SmartPointerEx cachedPointer = data == null ? null : data.get();
+    SmartPointerEx cachedPointer = SoftReference.dereference(data);
     if (cachedPointer != null) {
       PsiElement cachedElement = cachedPointer.getCachedElement();
       if (cachedElement != null && cachedElement != element) {
index bf6d1a5a2bfd43fda24d1dd6abdd25c7208ef7d0..7c66ef4539fa628065b5ed33d6b9cfe2c3cbc58b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -93,8 +93,7 @@ class SmartPsiElementPointerImpl<E extends PsiElement> implements SmartPointerEx
 
   @Override
   public E getCachedElement() {
-    Reference<E> ref = myElement;
-    return ref == null ? null : ref.get();
+    return com.intellij.reference.SoftReference.dereference(myElement);
   }
 
   @Override
index 70996679e8963d6954f36e347a9dfd6a557f316c..1dad21e9d1b88cc8a8a1fcf672c4538493b91b94 100644 (file)
@@ -393,8 +393,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF
   }
 
   private void clearStub(@NotNull String reason) {
-    SoftReference<StubTree> stubRef = myStub;
-    StubTree stubHolder = stubRef == null ? null : stubRef.get();
+    StubTree stubHolder = SoftReference.dereference(myStub);
     if (stubHolder != null) {
       ((PsiFileStubImpl<?>)stubHolder.getRoot()).clearPsi(reason);
     }
@@ -730,7 +729,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF
     if (myStub == null) return  null;
 
     synchronized (PsiLock.LOCK) {
-      return myStub != null ? myStub.get() : null;
+      return SoftReference.dereference(myStub);
     }
   }
 
@@ -993,7 +992,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF
     FileElement fileElement = calcTreeElement();
     synchronized (myStubFromTreeLock) {
       SoftReference<StubTree> ref = fileElement.getUserData(STUB_TREE_IN_PARSED_TREE);
-      StubTree tree = ref == null ? null : ref.get();
+      StubTree tree = SoftReference.dereference(ref);
 
       if (tree == null) {
         ApplicationManager.getApplication().assertReadAccessAllowed();
index d6befd8e65640f9e54dac50dd792113c8e6de369..5be82afc230422382176d04cca77bab8ccae103e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -96,8 +96,7 @@ public abstract class CachedValueBase<T> {
 
   @Nullable
   private Data<T> getData() {
-    final SoftReference<Data<T>> ref = myData;
-    return ref == null ? null : ref.get();
+    return SoftReference.dereference(myData);
   }
 
   protected boolean isUpToDate(@NotNull Data data) {
index 6785695358d9e78bc28ca5acdeaf9f39294a964c..e5e7d0bdf3f228bb57f738ab8368baa59ffa5061 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -52,7 +52,7 @@ public class CompressionUtil {
   public static int writeCompressed(DataOutput out, byte[] bytes, int length) throws IOException {
     if (length > COMPRESSION_THRESHOLD && ourCanUseSnappy) {
       SoftReference<byte[]> reference = spareBufferLocal.get();
-      byte[] compressedOutputBuffer = reference != null ? reference.get():null;
+      byte[] compressedOutputBuffer = com.intellij.reference.SoftReference.dereference(reference);
       int maxCompressedSize = 32 + length + length / 6; // snappy.cc#MaxCompressedLength
       if (compressedOutputBuffer == null || compressedOutputBuffer.length < maxCompressedSize) {
         compressedOutputBuffer = new byte[maxCompressedSize];
index 1bb752040c33059c44a556ff24c898a0e3c1a1ec..df38abd544f45ae90fd7917bae3460b8e4e7a3af 100644 (file)
@@ -40,8 +40,7 @@ public class DvcsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index e1604d6db07892c1e531cab94d86a2d02bb048d9..fbeb5409a8e95370627937d045483f56e88fa4a4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -81,8 +81,7 @@ public class RefactoringBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index ebbff102693976a5021ef687441ce06137a0eab1..3e249f8e363710b51d77ef2733da3b8a6e671188 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -55,8 +55,7 @@ public class UsageViewBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index ab636b1f9fd440dbba0be945f77715c4ad682d42..8aa01a6ea4cb5f7cab80909aba9c110a1ce18055 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class CodeEditorBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 7c237915a1fa81c259ac47888bef27fee66c342d..89e8b55f9b4ca5349582040767caae9595a854e0 100644 (file)
@@ -32,6 +32,7 @@ import com.intellij.psi.PsiDocumentManager;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.PsiFile;
 import com.intellij.psi.PsiWhiteSpace;
+import com.intellij.reference.SoftReference;
 import com.intellij.ui.popup.PopupFactoryImpl;
 import com.intellij.util.Alarm;
 import com.intellij.util.containers.WeakHashMap;
@@ -169,11 +170,7 @@ public class QuickDocOnMouseOverManager {
     if (hint != null) {
 
       // Skip the event if the control is shown because of explicit 'show quick doc' action call.
-      WeakReference<DocumentationManager> ref = myDocumentationManager;
-      if (ref == null) {
-        return;
-      }
-      DocumentationManager manager = ref.get();
+      DocumentationManager manager = SoftReference.dereference(myDocumentationManager);
       if (manager == null || !manager.isCloseOnSneeze()) {
         return;
       }
@@ -257,16 +254,7 @@ public class QuickDocOnMouseOverManager {
 
   @Nullable
   private DocumentationManager getDocManager() {
-    WeakReference<DocumentationManager> ref = myDocumentationManager;
-    if (ref == null) {
-      return null;
-    }
-
-    DocumentationManager docManager = ref.get();
-    if (docManager == null) {
-      return null;
-    }
-    return docManager;
+    return SoftReference.dereference(myDocumentationManager);
   }
   
   private static class DelayedQuickDocInfo {
index b0e1e6c382655e754bd1ae1b9675bf858e6d8532..5ccd71b866c71956c1c7dd5c1eac42927ac973cc 100644 (file)
@@ -29,6 +29,7 @@ import com.intellij.openapi.util.TextRange;
 import com.intellij.psi.PsiDocumentManager;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.PsiFile;
+import com.intellij.reference.SoftReference;
 import com.intellij.ui.LightweightHint;
 import org.jetbrains.annotations.NotNull;
 
@@ -45,14 +46,12 @@ public class ShowContainerInfoHandler implements CodeInsightActionHandler {
 
     PsiElement container = null;
     WeakReference<LightweightHint> ref = editor.getUserData(MY_LAST_HINT_KEY);
-    if (ref != null){
-      LightweightHint hint = ref.get();
-      if (hint != null && hint.isVisible()){
-        hint.hide();
-        container = hint.getUserData(CONTAINER_KEY);
-        if (container != null && !container.isValid()){
-          container = null;
-        }
+    LightweightHint hint = SoftReference.dereference(ref);
+    if (hint != null && hint.isVisible()){
+      hint.hide();
+      container = hint.getUserData(CONTAINER_KEY);
+      if (container != null && !container.isValid()){
+        container = null;
       }
     }
 
index f9f37713e138989d3933ffe09606cdffdf17f109..2af811074a54c42658a7986ef66d1292846a51a1 100644 (file)
@@ -44,6 +44,7 @@ import com.intellij.psi.*;
 import com.intellij.psi.presentation.java.SymbolPresentationUtil;
 import com.intellij.psi.util.PsiTreeUtil;
 import com.intellij.psi.util.PsiUtilCore;
+import com.intellij.reference.SoftReference;
 import com.intellij.ui.popup.AbstractPopup;
 import com.intellij.ui.popup.NotLookupOrSearchCondition;
 import com.intellij.ui.popup.PopupPositionManager;
@@ -226,18 +227,16 @@ public class ShowImplementationsAction extends AnAction implements PopupAction {
 
     final Ref<UsageView> usageView = new Ref<UsageView>();
     final String title = CodeInsightBundle.message("implementation.view.title", text);
-    if (myPopupRef != null) {
-      final JBPopup popup = myPopupRef.get();
-      if (popup != null && popup.isVisible() && popup instanceof AbstractPopup) {
-        final ImplementationViewComponent component = (ImplementationViewComponent) ((AbstractPopup)popup).getComponent();
-        ((AbstractPopup)popup).setCaption(title);
-        component.update(impls, index);
-        updateInBackground(editor, element, component, title, (AbstractPopup)popup, usageView);
-        if (invokedByShortcut) {
-          ((AbstractPopup)popup).focusPreferredComponent();
-        }
-        return;
+    JBPopup popup = SoftReference.dereference(myPopupRef);
+    if (popup != null && popup.isVisible() && popup instanceof AbstractPopup) {
+      final ImplementationViewComponent component = (ImplementationViewComponent) ((AbstractPopup)popup).getComponent();
+      ((AbstractPopup)popup).setCaption(title);
+      component.update(impls, index);
+      updateInBackground(editor, element, component, title, (AbstractPopup)popup, usageView);
+      if (invokedByShortcut) {
+        ((AbstractPopup)popup).focusPreferredComponent();
       }
+      return;
     }
 
     final ImplementationViewComponent component = new ImplementationViewComponent(impls, index);
@@ -250,7 +249,7 @@ public class ShowImplementationsAction extends AnAction implements PopupAction {
         }
       };
 
-      final JBPopup popup = JBPopupFactory.getInstance().createComponentPopupBuilder(component, component.getPreferredFocusableComponent())
+      popup = JBPopupFactory.getInstance().createComponentPopupBuilder(component, component.getPreferredFocusableComponent())
         .setRequestFocusCondition(project, NotLookupOrSearchCondition.INSTANCE)
         .setProject(project)
         .addListener(updateProcessor)
@@ -284,11 +283,9 @@ public class ShowImplementationsAction extends AnAction implements PopupAction {
                                   ImplementationViewComponent component,
                                   String title,
                                   AbstractPopup popup, Ref<UsageView> usageView) {
-    if (myTaskRef != null) {
-      final BackgroundUpdaterTask updaterTask = myTaskRef.get();
-      if (updaterTask != null) {
-        updaterTask.setCanceled();
-      }
+    final BackgroundUpdaterTask updaterTask = SoftReference.dereference(myTaskRef);
+    if (updaterTask != null) {
+      updaterTask.setCanceled();
     }
 
     if (element == null) return; //already found
index 713b434cb395cdd4c1e177c6966dc0f456f33a3b..c0a4780a24cca660c293429fb55f0da6af39024c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.actionSystem.DataContext;
 import com.intellij.openapi.util.Pair;
 import com.intellij.psi.PsiElement;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.PatchedWeakReference;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -64,19 +65,11 @@ public abstract class AbstractDocumentationTooltipAction extends AnAction {
   
   @Nullable
   private Pair<PsiElement/* doc anchor */, PsiElement /* original element */> getDocInfo() {
-    WeakReference<PsiElement> docAnchorRef = myDocAnchor;
-    if (docAnchorRef == null) {
-      return null;
-    }
-    PsiElement docAnchor = docAnchorRef.get();
+    PsiElement docAnchor = SoftReference.dereference(myDocAnchor);
     if (docAnchor == null) {
       return null;
     }
-    WeakReference<PsiElement> originalElementRef = myOriginalElement;
-    if (originalElementRef == null) {
-      return null;
-    }
-    PsiElement originalElement = originalElementRef.get();
+    PsiElement originalElement = SoftReference.dereference(myOriginalElement);
     if (originalElement == null) {
       return null;
     }
index 2336a9c1919641b590513956538db96620975b11..b96666b00e1c125438ce304989bc5953a6006981 100644 (file)
@@ -33,6 +33,7 @@ import com.intellij.psi.PsiDocumentManager;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.PsiFile;
 import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.Alarm;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -160,15 +161,17 @@ public class ImageOrColorPreviewManager implements Disposable, EditorMouseMotion
     if (elementRef == null && event.getMouseEvent().isShiftDown()) {
       alarm.addRequest(new PreviewRequest(point, editor, false), 100);
     }
-    else if (elementRef != null && elementRef.get() != getPsiElementAt(point, editor)) {
-      PsiElement element = elementRef.get();
-      elementRef = null;
-      for (ElementPreviewProvider provider : Extensions.getExtensions(ElementPreviewProvider.EP_NAME)) {
-        try {
-          provider.hide(element, editor);
-        }
-        catch (Exception e) {
-          LOG.error(e);
+    else {
+      PsiElement element = SoftReference.dereference(elementRef);
+      if (element != getPsiElementAt(point, editor)) {
+        elementRef = null;
+        for (ElementPreviewProvider provider : Extensions.getExtensions(ElementPreviewProvider.EP_NAME)) {
+          try {
+            provider.hide(element, editor);
+          }
+          catch (Exception e) {
+            LOG.error(e);
+          }
         }
       }
     }
@@ -193,7 +196,7 @@ public class ImageOrColorPreviewManager implements Disposable, EditorMouseMotion
     @Override
     public void run() {
       PsiElement element = getPsiElementAt(point, editor);
-      if (element == null || !element.isValid() || (elementRef != null && elementRef.get() == element)) {
+      if (element == null || !element.isValid() || SoftReference.dereference(elementRef) == element) {
         return;
       }
       if (PsiDocumentManager.getInstance(element.getProject()).isUncommited(editor.getDocument()) || DumbService.getInstance(element.getProject()).isDumb()) {
index 3baa777939ce5f5c6312e4437ea4155fb1582b5c..ca3e581dfd739adedd867689b9675ba0da3b93cd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -103,7 +103,7 @@ public class ImagePreviewComponent extends JPanel implements PreviewHintComponen
   private static boolean refresh(@NotNull VirtualFile file) throws IOException {
     Long loadedTimeStamp = file.getUserData(TIMESTAMP_KEY);
     SoftReference<BufferedImage> imageRef = file.getUserData(BUFFERED_IMAGE_REF_KEY);
-    if (loadedTimeStamp == null || loadedTimeStamp < file.getTimeStamp() || imageRef == null || imageRef.get() == null) {
+    if (loadedTimeStamp == null || loadedTimeStamp < file.getTimeStamp() || SoftReference.dereference(imageRef) == null) {
       try {
         final byte[] content = file.contentsToByteArray();
         InputStream inputStream = new ByteArrayInputStream(content, 0, content.length);
@@ -153,11 +153,9 @@ public class ImagePreviewComponent extends JPanel implements PreviewHintComponen
             try {
               refresh(file);
               SoftReference<BufferedImage> imageRef = file.getUserData(BUFFERED_IMAGE_REF_KEY);
-              if (imageRef != null) {
-                final BufferedImage image = imageRef.get();
-                if (image != null) {
-                  return new ImagePreviewComponent(image, file.getLength());
-                }
+              final BufferedImage image = SoftReference.dereference(imageRef);
+              if (image != null) {
+                return new ImagePreviewComponent(image, file.getLength());
               }
             }
             catch (IOException ignored) {
index 129858ae9ce8763f0213fe9fe052e853f22bc333..e4c431bf9bf333dd2cb686588620797bb428c5d3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class FindBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 77acdd406810dce1576491d220276b48a8ffe41a..4d268f8da1d65b4800a22eceafcb8f60d4c5903a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@ import com.intellij.openapi.editor.Editor;
 import com.intellij.openapi.project.Project;
 import com.intellij.psi.PsiDocumentManager;
 import com.intellij.psi.PsiFile;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.PatchedWeakReference;
 import org.jetbrains.annotations.NotNull;
 
@@ -74,11 +75,9 @@ public class WhiteSpaceFormattingStrategyFactory {
   @NotNull
   public static Collection<WhiteSpaceFormattingStrategy> getAllStrategies() {
     final WeakReference<Collection<WhiteSpaceFormattingStrategy>> reference = myCachedStrategies.get();
-    if (reference != null) {
-      final Collection<WhiteSpaceFormattingStrategy> strategies = reference.get();
-      if (strategies != null) {
-        return strategies;
-      }
+    final Collection<WhiteSpaceFormattingStrategy> strategies = SoftReference.dereference(reference);
+    if (strategies != null) {
+      return strategies;
     }
     final Collection<Language> languages = Language.getRegisteredLanguages();
     if (languages == null) {
index 7d2329aa88fe3ceae0374e59d803b7083d4953d5..ebc286a2dfb018af24715f748dc9d9899830294f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -282,7 +282,7 @@ public class SemServiceImpl extends SemService{
   @Nullable
   private SemCacheChunk obtainChunk(@Nullable PsiElement root) {
     final SoftReference<SemCacheChunk> ref = myCache.get(root);
-    return ref == null ? null : ref.get();
+    return com.intellij.reference.SoftReference.dereference(ref);
   }
 
   @Override
index f2ec53652e85956b8d34a925f2ee9c9258dadcae..997da889eb9cbd8ad19ebae89092ebb3608e1c73 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class ToolsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index feba37c8888a48bd817f0cd9e08446993820fe06..57c917b44219c088432f1d8805ec20e6e9e5e0e3 100644 (file)
@@ -1095,13 +1095,13 @@ public class FileBasedIndexImpl extends FileBasedIndex {
     if (myProjectsBeingUpdated.contains(project)) return null;
 
     SoftReference<ProjectIndexableFilesFilter> reference = project.getUserData(ourProjectFilesSetKey);
-    ProjectIndexableFilesFilter data = reference != null ? reference.get() : null;
+    ProjectIndexableFilesFilter data = com.intellij.reference.SoftReference.dereference(reference);
     if (data != null && data.myModificationCount == myFilesModCount) return data;
 
     if (myCalcIndexableFilesLock.tryLock()) { // make best effort for calculating filter
       try {
         reference = project.getUserData(ourProjectFilesSetKey);
-        data = reference != null ? reference.get() : null;
+        data = com.intellij.reference.SoftReference.dereference(reference);
         if (data != null && data.myModificationCount == myFilesModCount) {
           return data;
         }
@@ -1557,7 +1557,7 @@ public class FileBasedIndexImpl extends FileBasedIndex {
           getInputFilter(requestedIndexId).acceptInput(vFile)) {
         // Reasonably attempt to use same file content when calculating indices as we can evaluate them several at once and store in file content
         WeakReference<FileContentImpl> previousContentRef = document.getUserData(ourFileContentKey);
-        FileContentImpl previousContent = previousContentRef != null ? previousContentRef.get() : null;
+        FileContentImpl previousContent = com.intellij.reference.SoftReference.dereference(previousContentRef);
         final FileContentImpl newFc;
         if (previousContent != null && previousContent.getStamp() == currentDocStamp) {
           newFc = previousContent;
index df58d44c4743fa2a1099a75bd21d596f8de7b455..6ff6d8d21fecb783c3db30c0741afe6fd8624c3e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,8 +32,7 @@ public class LocalHistoryBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index b4d2bf408c8501912b0f7707eb17c0fbbf51c75f..22136335e239fc6af54e823094b211c834e4a3ae 100644 (file)
@@ -54,8 +54,7 @@ public class FeatureStatisticsBundle {
       }
     }
 
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 2917ad27b80cafb10634e7d9364e923c79f1bd76..5f4417c920f693a2169e4f7a342890bdb1106e2a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,6 +25,7 @@ import com.intellij.openapi.progress.Progressive;
 import com.intellij.openapi.util.ActionCallback;
 import com.intellij.openapi.util.AsyncResult;
 import com.intellij.openapi.util.Condition;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.Processor;
 import com.intellij.util.containers.TransferToEDTQueue;
 import com.intellij.util.ui.UIUtil;
@@ -634,7 +635,7 @@ public class AbstractTreeBuilder implements Disposable {
   @Nullable
   public static AbstractTreeBuilder getBuilderFor(@NotNull JTree tree) {
     final WeakReference ref = (WeakReference)tree.getClientProperty(TREE_BUILDER);
-    return ref != null ? (AbstractTreeBuilder)ref.get() : null;
+    return (AbstractTreeBuilder)SoftReference.dereference(ref);
   }
 
   @Nullable
index 61fda59ac4f6804a540c1e6c902e0b0105d4d238..94277aed027700144337b09c57191c6330472bcd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@ import com.intellij.openapi.progress.EmptyProgressIndicator;
 import com.intellij.openapi.progress.ProgressIndicator;
 import com.intellij.openapi.progress.Progressive;
 import com.intellij.openapi.util.*;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.ui.tree.TreeUtil;
 import org.jdom.Element;
 import org.jetbrains.annotations.NonNls;
@@ -442,10 +443,8 @@ public class TreeState implements JDOMExternalizable {
     @Override
     public ActionCallback getInitialized() {
       final WeakReference<ActionCallback> ref = (WeakReference<ActionCallback>)myTree.getClientProperty(CALLBACK);
-      if (ref != null) {
-        final ActionCallback callback = ref.get();
-        if (callback != null) return callback;
-      }
+      final ActionCallback callback = SoftReference.dereference(ref);
+      if (callback != null) return callback;
       return new ActionCallback.Done();
     }
 
index 43318d00108be86dcf7c27dc8c5c57984d57e1ac..68fb85a3f5019307de4b17f49d807ce71b12de19 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -52,8 +52,7 @@ public class ActionsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(IDEA_ACTIONS_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 5a538dcbfba2799d2bcef81322e9f82e7e0b32b6..674e20282334cb10b926b9bc4c8c3d66e45ba179 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project;
 import com.intellij.openapi.ui.popup.Balloon;
 import com.intellij.openapi.ui.popup.JBPopupAdapter;
 import com.intellij.openapi.ui.popup.LightweightWindowEvent;
+import com.intellij.reference.SoftReference;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -129,8 +130,7 @@ public class Notification {
     balloon.addListener(new JBPopupAdapter() {
       @Override
       public void onClosed(LightweightWindowEvent event) {
-        WeakReference<Balloon> ref = myBalloonRef;
-        if (ref != null && ref.get() == balloon) {
+        if (SoftReference.dereference(myBalloonRef) == balloon) {
           myBalloonRef = null;
         }
       }
@@ -139,7 +139,7 @@ public class Notification {
 
   @Nullable
   public Balloon getBalloon() {
-    return myBalloonRef == null ? null : myBalloonRef.get();
+    return SoftReference.dereference(myBalloonRef);
   }
 
   public void notify(@Nullable Project project) {
index c64536b8775f405b2b206e205026a16232cc383b..2f42278c3ee29a7cd480ca10727dc43ab6323d18 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class ApplicationBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 42fda764171edde05ea0e54e0a7494268bb53010..35ad6170213ea81198ff065424219070fa4e1b1d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class DiffBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 2e6d14fb2cf5142d854dfc5335fa864c20e2cfdb..efd081cc53d90b6b2831f47a7f08f6841cf22c09 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -44,8 +44,7 @@ public class KeyMapBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index d80d5704d80d84351216f085b102b8fc679c1afa..e86d07d7a133ce21d2c439759e8bdd16e4b5a946 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class OptionsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 54dac0ecee935ba2ac142a84566ddc12c12df976..536db1ebd2797c07037204c7a24985a78fc6191e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -43,8 +43,7 @@ public class VcsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 40cbb9a94307c2ffda24fa5b0c5e864b13677203..302ad819cd7f88ce8afee0fd1785489157b1a09c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@ package com.intellij.ui.tabs;
 import com.intellij.icons.AllIcons;
 import com.intellij.openapi.actionSystem.ActionGroup;
 import com.intellij.openapi.ui.Queryable;
+import com.intellij.reference.SoftReference;
 import com.intellij.ui.PlaceProvider;
 import com.intellij.ui.SimpleColoredText;
 import com.intellij.ui.SimpleTextAttributes;
@@ -237,7 +238,7 @@ public final class TabInfo implements Queryable, PlaceProvider<String> {
 
   @Nullable
   public JComponent getLastFocusOwner() {
-    return myLastFocusOwner != null ? myLastFocusOwner.get() : null;
+    return SoftReference.dereference(myLastFocusOwner);
   }
 
   public TabInfo setAlertIcon(final AlertIcon alertIcon) {
index 3e0b118e953e65044242e79401596d472ab9b4d5..6ecd54988fab21984bb0a4f958b9f848b169c502 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class DiagnosticBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index bb2cf498987c907f124f33b839595fb1cd1de6f7..8aa0e38c0d0d2f377ab8a6e96e470cecf9daf21f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@
 package com.intellij.ide;
 
 import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.reference.SoftReference;
 import org.jetbrains.annotations.NonNls;
 
 import javax.swing.*;
@@ -160,7 +161,7 @@ public class IdeRepaintManager extends RepaintManager {
         return;
       }
       //ignore the last processed component
-      if (myLastComponent != null && c == myLastComponent.get()) {
+      if (SoftReference.dereference(myLastComponent) == c) {
         return;
       }
       myLastComponent = new WeakReference<JComponent>(c);
index 84d51626558863c45f7d1eda35288f75c71e71b5..621ff0d2346d4b20b84547ca466789ebe571070e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@ import com.intellij.openapi.application.Application;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.util.Key;
 import com.intellij.openapi.util.Pair;
+import com.intellij.reference.SoftReference;
 import com.intellij.ui.awt.RelativeRectangle;
 import com.intellij.util.ui.GeometryUtil;
 import com.intellij.util.ui.UIUtil;
@@ -741,6 +742,6 @@ public class DnDManagerImpl extends DnDManager implements Disposable {
 
   @Nullable
   public Component getLastDropHandler() {
-    return myLastDropHandler != null ? myLastDropHandler.get() : null;
+    return SoftReference.dereference(myLastDropHandler);
   }
 }
index a90d575f9e3c4edf879d7337d30a438c0b4406f4..c1499a71a71bb69c6333d602a74757d6f80beca1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@ import com.intellij.openapi.editor.Document;
 import com.intellij.openapi.editor.ex.util.LexerEditorHighlighter;
 import com.intellij.openapi.editor.highlighter.EditorHighlighter;
 import com.intellij.openapi.util.Key;
+import com.intellij.reference.SoftReference;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -43,7 +44,7 @@ public class EditorHighlighterCache {
       return null;
     }
     final WeakReference<EditorHighlighter> editorHighlighterWeakReference = document.getUserData(ourSomeEditorSyntaxHighlighter);
-    final EditorHighlighter someEditorHighlighter = editorHighlighterWeakReference != null ? editorHighlighterWeakReference.get() : null;
+    final EditorHighlighter someEditorHighlighter = SoftReference.dereference(editorHighlighterWeakReference);
 
     if (someEditorHighlighter instanceof LexerEditorHighlighter &&
         ((LexerEditorHighlighter)someEditorHighlighter).isValid()
index d01bc8e1a06878116a6064bbb195e88a61f83e80..e832caae4775d94a02dde32db50bd3cd24516139 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@ package com.intellij.openapi.keymap.impl;
 
 import com.intellij.openapi.actionSystem.AnAction;
 import com.intellij.openapi.actionSystem.DataContext;
+import com.intellij.reference.SoftReference;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -44,7 +45,7 @@ public class KeyProcessorContext {
 
   @Nullable
   public JComponent getFoundComponent() {
-    return myFoundComponent != null ? myFoundComponent.get() : null;
+    return SoftReference.dereference(myFoundComponent);
   }
 
   public void setFoundComponent(final JComponent foundComponent) {
@@ -77,7 +78,7 @@ public class KeyProcessorContext {
 
   @Nullable
   public Component getFocusOwner() {
-    return myFocusOwner != null ? myFocusOwner.get() : null;
+    return SoftReference.dereference(myFocusOwner);
   }
 
   public void setFocusOwner(final Component focusOwner) {
index b58811c930fb3cfb9f69b31972b25edd7b4833ad..dc9821ec98364032f8749416571774c90c28b8a5 100644 (file)
@@ -43,6 +43,7 @@ import com.intellij.openapi.wm.ex.LayoutFocusTraversalPolicyExt;
 import com.intellij.openapi.wm.ex.WindowManagerEx;
 import com.intellij.openapi.wm.impl.IdeFrameImpl;
 import com.intellij.openapi.wm.impl.IdeGlassPaneImpl;
+import com.intellij.reference.SoftReference;
 import com.intellij.ui.*;
 import com.intellij.ui.components.JBLayeredPane;
 import com.intellij.ui.mac.foundation.Foundation;
@@ -788,7 +789,7 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra
 
     @Nullable
     private Project getProject() {
-      return myProject != null ? myProject.get() : null;
+      return SoftReference.dereference(myProject);
     }
 
     @Override
index f21d2c06bb21353a1153278d67e226a64b561db2..aef53edeb096c7bd0557756b1fb36a8addb9aac4 100644 (file)
@@ -44,8 +44,7 @@ class Win32FsCache {
 
   @NotNull
   private Map<String, FileAttributes> getMap() {
-    Reference<Map<String, FileAttributes>> cache = myCache;
-    Map<String, FileAttributes> map = cache == null ? null : cache.get();
+    Map<String, FileAttributes> map = com.intellij.reference.SoftReference.dereference(myCache);
     if (map == null) {
       map = new THashMap<String, FileAttributes>(FileUtil.PATH_HASHING_STRATEGY);
       myCache = new SoftReference<Map<String, FileAttributes>>(map);
index 46c5190b0caca099714d832eef05e38a34c92e65..5b1ddc60b337876dbdf26bd9acc75ad905438c56 100644 (file)
@@ -35,6 +35,7 @@ import com.intellij.openapi.util.registry.Registry;
 import com.intellij.openapi.wm.*;
 import com.intellij.openapi.wm.ex.IdeFocusTraversalPolicy;
 import com.intellij.openapi.wm.ex.LayoutFocusTraversalPolicyExt;
+import com.intellij.reference.SoftReference;
 import com.intellij.ui.FocusTrackback;
 import com.intellij.util.containers.WeakValueHashMap;
 import com.intellij.util.ui.UIUtil;
@@ -417,8 +418,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable {
 
   @Nullable
   private FocusCommand getLastEffectiveForcedRequest() {
-    if (myLastForcedRequest == null) return null;
-    final FocusCommand request = myLastForcedRequest.get();
+    final FocusCommand request = SoftReference.dereference(myLastForcedRequest);
     return request != null && !request.isExpired() ? request : null;
   }
 
index 9d28881403c20092dafbedb0b3570487467baefb..a62832a6e18b5e6ba22189d79e2e15bb70172149 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -138,11 +138,9 @@ public class StatisticsManagerImpl extends StatisticsManager {
 
   private StatisticsUnit getUnit(int unitNumber) {
     SoftReference ref = myUnits[unitNumber];
-    if (ref != null){
-      StatisticsUnit unit = (StatisticsUnit)ref.get();
-      if (unit != null) return unit;
-    }
-    StatisticsUnit unit = loadUnit(unitNumber);
+    StatisticsUnit unit = (StatisticsUnit)SoftReference.dereference(ref);
+    if (unit != null) return unit;
+    unit = loadUnit(unitNumber);
     if (unit == null){
       unit = new StatisticsUnit(unitNumber);
     }
index 9f2bbc11f62f9f2ac2d29cc79bd9be5534749288..42bc23096a66fe5ef4986b90e88d1d54a3bb27dc 100644 (file)
@@ -15,6 +15,7 @@
  */
 package net.sf.cglib.core;
 
+import com.intellij.reference.SoftReference;
 import org.objectweb.asm.ClassReader;
 
 import java.lang.ref.Reference;
@@ -199,7 +200,7 @@ implements ClassGenerator
                     source.cache.put(loader, cache2);
                 } else if (useCache) {
                     Reference ref = (Reference)cache2.get(key);
-                    gen = (Class) (( ref == null ) ? null : ref.get());
+                    gen = (Class) SoftReference.dereference(ref);
                 }
                 if (gen == null) {
                     Object save = CURRENT.get();
index 8bdea29f5a381e720e4d4a113d49bbae47645272..961e91842e248cc30ea7b3ff8322b82fb5ef0337 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,8 +36,7 @@ public class ProjectBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index b2036536859afcac00135bce0cadb2d0ddb14734..6353510c0fb9a0cb57886d4d4f1cd0c419e3192d 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2000-2013 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package com.intellij.remoteServer.util;
 
 import com.intellij.CommonBundle;
@@ -26,8 +41,7 @@ public class CloudBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index c1d67981c6fb1bf4b2230e006ad23e4116b88907..87d7d7d3a391a8c7f60d71a51928f3a97820f4df 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class SMTestsRunnerBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index dc9068e2814ba14d94f60d74eaf49641c6bdab8c..930321fc61d5a5fb8f74a2024d8ddb71d0fec5d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,6 +36,7 @@ import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.psi.PsiDocumentManager;
 import com.intellij.psi.PsiFile;
 import com.intellij.psi.tree.IElementType;
+import com.intellij.reference.SoftReference;
 import com.intellij.usageView.UsageTreeColors;
 import com.intellij.usageView.UsageTreeColorsScheme;
 import com.intellij.util.Processor;
@@ -75,7 +76,7 @@ public class ChunkExtractor {
 
     @NotNull
     public T getValue() {
-      final T cur = myRef == null ? null : myRef.get();
+      final T cur = SoftReference.dereference(myRef);
       if (cur != null) return cur;
       final T result = create();
       myRef = new WeakReference<T>(result);
index da6d75ff5fad5675bf1a7d5b2452f6c07b7a4f13..d7949f370a487cdc3325056da67fc22602b7b18f 100644 (file)
@@ -437,8 +437,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule,
   @Override
   @NotNull
   public TextChunk[] getText() {
-    Reference<TextChunk[]> reference = myTextChunks;
-    TextChunk[] chunks = reference == null ? null : reference.get();
+    TextChunk[] chunks = SoftReference.dereference(myTextChunks);
     final long currentModificationStamp = getCurrentModificationStamp();
     boolean isModified = currentModificationStamp != myModificationStamp;
     if (chunks == null || isValid() && isModified) {
index 379ab3cf799e20adc235aab9bb93ad6f766dd181..1f301eca13c0c7ee32eb9817ab09dd0b68c7d49b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,8 +27,8 @@ public abstract class SoftLazyValue<T> {
   private SoftReference<T> myReference;
 
   public T getValue() {
-    T t;
-    if (myReference == null || (t = myReference.get()) == null) {
+    T t = com.intellij.reference.SoftReference.dereference(myReference);
+    if (t == null) {
       t = compute();
       myReference = new SoftReference<T>(t);
     }
index 52ef3ef94927e0baad458e1243885c41ad559f2f..372094e2211a24c1e3006fca1acfd9ed72054161 100644 (file)
@@ -60,8 +60,7 @@ public abstract class AbstractBundle {
   }
 
   private ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (myBundle != null) bundle = myBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(myBundle);
     if (bundle == null) {
       bundle = getResourceBundle(myPathToBundle, getClass().getClassLoader());
       myBundle = new SoftReference<ResourceBundle>(bundle);
index fdcdb06e4bcf94ae67ade065da3b6d882b8e8b84..ce678364a5bae391cce501fad145d4a0a8750b22 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -43,8 +43,7 @@ public class CommonBundle extends BundleBase {
 
   @NotNull
   private static ResourceBundle getCommonBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 665776f71e24edf33424c72da800e1f6d7ece472..7a429f82dec153d96a89a271352f19c7fe5c26b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -315,7 +315,7 @@ public class JDOMUtil {
 
   private static SAXBuilder getSaxBuilder() {
     SoftReference<SAXBuilder> reference = ourSaxBuilder.get();
-    SAXBuilder saxBuilder = reference != null ? reference.get() : null;
+    SAXBuilder saxBuilder = com.intellij.reference.SoftReference.dereference(reference);
     if (saxBuilder == null) {
       saxBuilder = new SAXBuilder();
       saxBuilder.setEntityResolver(new EntityResolver() {
index 0b86055bf5a9e3c820a0dc440b3bf208bd03910a..e418e553fb6b87c09f62ace62551fbf6b9c6ed4a 100644 (file)
@@ -91,8 +91,7 @@ public class Registry  {
   }
 
   static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(REGISTRY_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index f3f522be330b3ffb551642cf1a6eea175061afba..d8b774b304006aefa58dbc2b5260e675900efd16 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.openapi.wm;
 
+import com.intellij.reference.SoftReference;
 import com.intellij.util.ui.UIUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -111,11 +112,11 @@ public class FocusWatcher implements ContainerListener,FocusListener{
    * @return last focused component or <code>null</code>.
    */
   public final Component getFocusedComponent(){
-    return myFocusedComponent != null ? myFocusedComponent.get() : null;
+    return SoftReference.dereference(myFocusedComponent);
   }
 
   public final Component getNearestFocusableComponent() {
-    return myNearestFocusableComponent != null ? myNearestFocusableComponent.get() : null;
+    return SoftReference.dereference(myNearestFocusableComponent);
   }
 
   public final void install(@NotNull Component component){
index 4d63e4b387e91b65b09b2ccacd73568bb2005455..b2381649a4245c27797db67bbb04fb464c561ea9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,8 +36,7 @@ public class UIBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 17ba065ea1224d4db6a9234d127ab0d96f514ab9..3a620a8f42107305ca01956956912b38fdc533de 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,17 +31,15 @@ public abstract class SoftFactoryMap<T,V> {
 
   public final V get(T key) {
     final SoftReference<V> reference = myMap.get(key);
-    if (reference != null) {
-      final V v = reference.get();
-      if (v != null) {
-        return v == NULL ? null : v;
-      }
+    final V v = com.intellij.reference.SoftReference.dereference(reference);
+    if (v != null) {
+      return v == NULL ? null : v;
     }
 
     final V value = create(key);
     SoftReference<V> valueRef = new SoftReference<V>(value == null ? (V)NULL : value);
     SoftReference<V> prevRef = myMap.putIfAbsent(key, valueRef);
-    V prev = prevRef == null ? null : prevRef.get();
+    V prev = com.intellij.reference.SoftReference.dereference(prevRef);
     return prev == null || prev == NULL ? value : prev;
   }
 
index f5398d564106b98735096e906db841288ca1f0e0..076ecd7ede50eb5e3447acf89d36a8cbae70e6ee 100644 (file)
@@ -50,8 +50,7 @@ public final class SoftKeySoftValueHashMap<K,V> implements Map<K,V>{
   @Override
   public V get(Object key) {
     MyValueReference<K,V> ref = mySoftKeyMap.get(key);
-    if (ref == null) return null;
-    return ref.get();
+    return com.intellij.reference.SoftReference.dereference(ref);
   }
 
   @Override
@@ -60,14 +59,14 @@ public final class SoftKeySoftValueHashMap<K,V> implements Map<K,V>{
     SoftHashMap.Key<K> softKey = mySoftKeyMap.createKey(key);
     MyValueReference<K, V> reference = new MyValueReference<K, V>(softKey, value, myQueue);
     MyValueReference<K,V> oldRef = mySoftKeyMap.putKey(softKey, reference);
-    return oldRef == null ? null : oldRef.get();
+    return com.intellij.reference.SoftReference.dereference(oldRef);
   }
 
   @Override
   public V remove(Object key) {
     processQueue();
     MyValueReference<K,V> ref = mySoftKeyMap.remove(key);
-    return ref != null ? ref.get() : null;
+    return com.intellij.reference.SoftReference.dereference(ref);
   }
 
   @Override
index d2b71e23043eed7255fc312bd61fb465462034c7..7be7ad63ff4fc187e8f49c40bb7bc2e580dbf98d 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.util.containers;
 
 import com.intellij.openapi.util.Condition;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.Function;
 import com.intellij.util.IncorrectOperationException;
 import org.jetbrains.annotations.NotNull;
@@ -159,8 +160,7 @@ public class UnsafeWeakList<T> extends AbstractList<T> {
       nextElement = null;
       nextIndex = -1;
       for (int i= curIndex +1; i<myList.size();i++) {
-        MyReference<T> reference = myList.get(i);
-        T t = reference == null ? null : reference.get();
+        T t = SoftReference.dereference(myList.get(i));
         if (t != null) {
           nextElement = t;
           nextIndex = i;
@@ -194,8 +194,7 @@ public class UnsafeWeakList<T> extends AbstractList<T> {
   public boolean remove(@NotNull Object o) {
     processQueue();
     for (int i = 0; i < myList.size(); i++) {
-      MyReference<T> reference = myList.get(i);
-      T t = reference == null ? null : reference.get();
+      T t = SoftReference.dereference(myList.get(i));
       if (t != null && t.equals(o)) {
         nullizeAt(i);
         return true;
@@ -219,10 +218,10 @@ public class UnsafeWeakList<T> extends AbstractList<T> {
   private static final Function<MyReference<Object>, Object> DEREF = new Function<MyReference<Object>, Object>() {
     @Override
     public Object fun(MyReference<Object> reference) {
-      return reference == null ? null : reference.get();
+      return SoftReference.dereference(reference);
     }
   };
-  private static <T> Function<MyReference<T>, T> deref() {
+  private static <X> Function<MyReference<X>, X> deref() {
     return (Function)DEREF;
   }
   @NotNull
@@ -250,7 +249,7 @@ public class UnsafeWeakList<T> extends AbstractList<T> {
   private static final Condition<MyReference<Object>> NOT_NULL = new Condition<MyReference<Object>>() {
     @Override
     public boolean value(MyReference<Object> reference) {
-      return reference != null && reference.get() != null;
+      return SoftReference.dereference(reference) != null;
     }
   };
 
index 2df74cd24c949691c687cea08b790126d670b3df..eee100e9781fa27f2f0bbaa5fff9b336baae4900 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
  */
 package com.intellij.util.containers;
 
+import com.intellij.reference.SoftReference;
+
 import java.lang.ref.WeakReference;
 import java.util.concurrent.ConcurrentMap;
 
@@ -30,17 +32,15 @@ public abstract class WeakFactoryMap<T,V> {
 
   public final V get(T key) {
     final WeakReference<V> reference = myMap.get(key);
-    if (reference != null) {
-      final V v = reference.get();
-      if (v != null) {
-        return v == NULL ? null : v;
-      }
+    final V v = SoftReference.dereference(reference);
+    if (v != null) {
+      return v == NULL ? null : v;
     }
 
     final V value = create(key);
     WeakReference<V> valueRef = new WeakReference<V>(value == null ? (V)NULL : value);
     WeakReference<V> prevRef = myMap.putIfAbsent(key, valueRef);
-    V prev = prevRef == null ? null : prevRef.get();
+    V prev = SoftReference.dereference(prevRef);
     return prev == null || prev == NULL ? value : prev;
   }
 
index 84eacc1fbea1dd070fceb27af8e6051596ff21b3..ed0e0019517dedf985769337f6544130c41a7e86 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.util.containers;
 
+import com.intellij.reference.SoftReference;
 import org.jetbrains.annotations.NotNull;
 
 import java.lang.ref.ReferenceQueue;
@@ -50,8 +51,7 @@ public final class WeakKeyWeakValueHashMap<K,V> implements Map<K,V>{
   @Override
   public V get(Object key) {
     MyValueReference<K,V> ref = myWeakKeyMap.get(key);
-    if (ref == null) return null;
-    return ref.get();
+    return SoftReference.dereference(ref);
   }
 
   @Override
@@ -60,14 +60,14 @@ public final class WeakKeyWeakValueHashMap<K,V> implements Map<K,V>{
     WeakHashMap.Key<K> weakKey = myWeakKeyMap.createKey(key);
     MyValueReference<K, V> reference = new MyValueReference<K, V>(weakKey, value, myQueue);
     MyValueReference<K,V> oldRef = myWeakKeyMap.putKey(weakKey, reference);
-    return oldRef == null ? null : oldRef.get();
+    return SoftReference.dereference(oldRef);
   }
 
   @Override
   public V remove(Object key) {
     processQueue();
     MyValueReference<K,V> ref = myWeakKeyMap.remove(key);
-    return ref != null ? ref.get() : null;
+    return SoftReference.dereference(ref);
   }
 
   @Override
index e58460a92faf8aca4f564ff2cc248fd54ad0e5ab..b3731e286015d737f7e6179fcce9fef9a39f0888 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 package com.intellij.util.containers;
 
+import com.intellij.reference.SoftReference;
 import gnu.trove.TIntObjectHashMap;
 import org.jetbrains.annotations.NotNull;
 
@@ -56,8 +57,7 @@ public class WeakValueIntObjectHashMap<V> {
 
   public final V get(int key) {
     MyReference<V> ref = myMap.get(key);
-    if (ref == null) return null;
-    return ref.get();
+    return SoftReference.dereference(ref);
   }
 
   public final V put(int key, @NotNull V value) {
@@ -65,13 +65,13 @@ public class WeakValueIntObjectHashMap<V> {
     MyReference<V> ref = new MyReference<V>(key, value, myQueue);
     ref.name = value.toString();
     MyReference<V> oldRef = myMap.put(key, ref);
-    return oldRef != null ? oldRef.get() : null;
+    return SoftReference.dereference(oldRef);
   }
 
   public final V remove(int key) {
     processQueue();
     MyReference<V> ref = myMap.remove(key);
-    return ref != null ? ref.get() : null;
+    return SoftReference.dereference(ref);
   }
 
   public final void clear() {
index 72323c111dbe9ae6f5cf0e49b41005a563c5705a..8f3937eafd0df4a02f8e29b926b85aec7968e84e 100644 (file)
@@ -147,12 +147,10 @@ class JarLoader extends Loader {
   @Nullable
   Resource getResource(String name, boolean flag) {
     final long started = myDebugTime ? System.nanoTime():0;
-    if (myMemoryLoader != null) {
-      JarMemoryLoader loader = myMemoryLoader.get();
-      if (loader != null) {
-        Resource resource = loader.getResource(name);
-        if (resource != null) return resource;
-      }
+    JarMemoryLoader loader = com.intellij.reference.SoftReference.dereference(myMemoryLoader);
+    if (loader != null) {
+      Resource resource = loader.getResource(name);
+      if (resource != null) return resource;
     }
     ZipFile file = null;
     try {
index 49b4e8ac653d7c495116f87a92d508350602d82d..5f5f62221b4fbc8c5d6639c2222276d74c603a75 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -88,8 +88,7 @@ class XmlSerializerImpl {
   }
 
   private static Map<Pair<Type, Accessor>, Binding> getBindingCacheMap() {
-    SoftReference<Map<Pair<Type, Accessor>, Binding>> ref = ourBindings;
-    Map<Pair<Type, Accessor>, Binding> map = ref == null ? null : ref.get();
+    Map<Pair<Type, Accessor>, Binding> map = com.intellij.reference.SoftReference.dereference(ourBindings);
     if (map == null) {
       map = new ConcurrentHashMap<Pair<Type, Accessor>, Binding>();
       ourBindings = new SoftReference<Map<Pair<Type, Accessor>, Binding>>(map);
index 4b46549a93a8b4de3e0be354e81c900e439fb2bf..9fe0140cbea33f161df575a34b817f91275b80e6 100644 (file)
@@ -40,9 +40,12 @@ public class WeakListTest extends TestCase {
     }
     assertEquals(20, myWeakList.listSize());
     addElement(HARD_REFERENCED);
+    assertEquals(21, myWeakList.listSize());
     myHolder.clear();
-    synchronized (myWeakList) {
-      gc();
+    while (myWeakList.toStrongList().size() == 21) {
+      synchronized (myWeakList) {
+        gc();
+      }
     }
     synchronized (myWeakList) {
       boolean processed = myWeakList.processQueue();
@@ -194,7 +197,11 @@ public class WeakListTest extends TestCase {
     gc();
     assertEquals(N + 1 + N, myWeakList.listSize());
     myHolder.clear();
-    gc();
+    while (myWeakList.toStrongList().size() == N + 1 + N) {
+      synchronized (myWeakList) {
+        gc();
+      }
+    }
     boolean removed = myWeakList.remove("zzz");
     assertFalse(removed);
     assertEquals(1, myWeakList.listSize());
index e3ab8d9d54918d0650c3bd237ad64269f8c45262..3dd5cdfeacf3fb547e517d93eeec7978fbdaa697 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -175,7 +175,7 @@ public class ContentRevisionCache {
   public byte[] getBytes(FilePath path, VcsRevisionNumber number, @NotNull VcsKey vcsKey, @NotNull UniqueType type) {
     synchronized (myLock) {
       final SoftReference<byte[]> reference = myCache.get(new Key(path, number, vcsKey, type));
-      return reference != null ? reference.get() : null;
+      return SoftReference.dereference(reference);
     }
   }
 
index 87f37fc968cbf31e711ad8e8304c949603ee4e23..d6158c594e4f806987b0c84da962ff51c6c0f5e3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -151,11 +151,9 @@ public class ShowUpdatedDiffAction extends AnAction implements DumbAware {
     }
 
     public String getContent() throws VcsException {
-      if (myContent != null) {
-        final String s = myContent.get();
-        if (s != null) {
-          return s;
-        }
+      final String s = com.intellij.reference.SoftReference.dereference(myContent);
+      if (s != null) {
+        return s;
       }
 
       final String loaded = myLoader.convert(myPointer);
index c1bfe06b7b3f9d0daa13f51c57b519ccea5d60da..8242c6dfdd4945420bae44d3ccae9c3f547ec92e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class XDebuggerBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index f690d969e658838b386051af2ca2538f95a38a2c..3dcdb5e0ecfddb78e1fce33fb30796ed8ebdca13 100644 (file)
@@ -25,6 +25,7 @@ import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.ui.Splitter;
 import com.intellij.openapi.util.UserDataHolderBase;
+import com.intellij.reference.SoftReference;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
@@ -49,12 +50,7 @@ public class TestDataGroupFileEditor extends UserDataHolderBase implements FileE
 
   @NotNull
   public JComponent getComponent() {
-    JComponent result;
-    if (myComponent == null) {
-      myComponent = new WeakReference<JComponent>(result = createComponent());
-      return result;
-    }
-    result = myComponent.get();
+    JComponent result = SoftReference.dereference(myComponent);
     if (result == null) {
       myComponent = new WeakReference<JComponent>(result = createComponent());
     }
index 2b655e4a8bfb76983e287e212725cf9dc0845ba1..ebc18f2b498a145ce9a392b1cd962dbd6e49d0b7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class InspectionGadgetsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 4c930f86d46bd27bb2ccb6340af7aaff643a2182..7a7e23cfe4f244d58b555db01afda2b5495f2910 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -43,8 +43,7 @@ public class IntentionPowerPackBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 552e5172ff7c65aaff1f8c0f63ad90b13f61eaf0..a0821abe4bf226056f581726701806bb15fb1f1f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ public class AntBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 33872e16b50f60ff3938488dc2cbd21b5801f79e..f42ec62f253bfd9557f80caff8f71b0e116d9d3b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -46,8 +46,7 @@ public final class AntActionsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(IDEA_ACTIONS_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 21ada03b88f898b1e11340b4666da4b47f3428be..b1ad597f9b6c5ecafc1492047e4a6e14ee473f35 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -69,8 +69,7 @@ public class CvsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE_NAME);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 69a92928f383a3e4ce934dd7d24fb4a6df762991..8e5ea9159077b0beb92e2b3dff4c1943ccb262e4 100644 (file)
@@ -1,5 +1,17 @@
 /*
- * Copyright (c) 2005 JetBrains s.r.o. All Rights Reserved.
+ * Copyright 2000-2013 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 package org.netbeans.lib.cvsclient;
 
@@ -27,8 +39,7 @@ public class JavaCvsSrcBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index f0c28fe6cfe57bc4f11b55d159e9f01fec74dedc..93b1d78f1ccdd7e2ca16bf465c64b6798c42ce6f 100644 (file)
@@ -1,5 +1,17 @@
 /*
- * Copyright (c) 2005 JetBrains s.r.o. All Rights Reserved.
+ * Copyright 2000-2013 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 package org.netbeans.lib.cvsclient;
 
@@ -27,8 +39,7 @@ public class SmartCvsSrcBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index d507273905be7578481667500640714c28e8596d..a08cb196e0ce4ef6f252808ae7886d651e6fe27f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class DevKitBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index d3c9174d2f4f3695aec97597e74c8760e6bcc681..dfcc1a4bc6993cd9603c1cdf1b6ebdc711f7ed24 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ public class EclipseBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 507d1fc529194c1cf2316e52259a50f540264a8b..17c90a0c9526f974ab8abb7e5201991f31ca1c12 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class SSHMainBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index eb9d41941eb702a463438b00d79dc26b241e24ed..701adf6e2bc859ef552e7e341d40cb0540c74117 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -52,8 +52,7 @@ public class GitBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 9602b1d2e58f2b944355cf54afdcc2ba0b6d52e3..9bb1b6e5a0d92264f6ec92366c1c0c6c32fd1032 100644 (file)
@@ -39,13 +39,11 @@ public class GradleInspectionBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
 
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
-      ourBundle = new SoftReference<ResourceBundle  >(bundle);
+      ourBundle = new SoftReference<ResourceBundle>(bundle);
     }
     return bundle;
   }
index 4751d60475bf33152b2f8e0f74a76ff1c38cf0d6..c38e3946f1cea21cb4bae5442a73136d27a88b15 100644 (file)
@@ -31,7 +31,7 @@ public class GradleDocumentationBundle extends AbstractBundle {
 
   public static final String PATH_TO_BUNDLE = "i18n.GradleDocumentationBundle";
   private static final GradleDocumentationBundle BUNDLE = new GradleDocumentationBundle();
-  private static Reference<ResourceBundle> myBundle;
+  private static Reference<ResourceBundle> ourBundle;
 
   public GradleDocumentationBundle() {
     super(PATH_TO_BUNDLE);
@@ -46,13 +46,10 @@ public class GradleDocumentationBundle extends AbstractBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (myBundle != null) {
-      bundle = myBundle.get();
-    }
+    ResourceBundle bundle = SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
-      myBundle = new SoftReference<ResourceBundle>(bundle);
+      ourBundle = new SoftReference<ResourceBundle>(bundle);
     }
     return bundle;
   }
index d2f8ba7f27cecdc162c28f2cb929d3cb1d9437d8..75b5306f149f4e930c397f0e550339cf65c417ad 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,9 +41,7 @@ public class GroovyBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
 
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
index 615e0be4d4825573ef870eb7700df3b5b54b31e8..4627bc381f602615963f416eb7f5c1fd76a5af54 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,13 +39,11 @@ public class GroovyCodeInsightBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
 
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
-      ourBundle = new SoftReference<ResourceBundle  >(bundle);
+      ourBundle = new SoftReference<ResourceBundle>(bundle);
     }
     return bundle;
   }
index 552c29125a3b2e3f9e14581693445f1677c6e8ae..9493104433bd9a57210485070eea99d58e05205e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,13 +39,11 @@ public class GroovyInspectionBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
 
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
-      ourBundle = new SoftReference<ResourceBundle  >(bundle);
+      ourBundle = new SoftReference<ResourceBundle>(bundle);
     }
     return bundle;
   }
index b0d8df166be778cbafe66183aeef41d326552f5c..198cbbbd2a45c044965bb82cff22bcb37127cc6c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,9 +36,7 @@ public class GroovyDocBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
 
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
index 73d9621b769e0642bbc3f0a9305767eb7994ccbe..a1eb90dd510e07877eec2da1b35d85987de7a6eb 100644 (file)
@@ -343,8 +343,7 @@ public class GroovyDslFileIndex extends ScalarIndexExtension<String> {
 
   @Nullable
   private static List<Pair<File, GroovyDslExecutor>> derefStandardScripts() {
-    SoftReference<List<Pair<File, GroovyDslExecutor>>> ref = ourStandardScripts;
-    return ref == null ? null : ref.get();
+    return SoftReference.dereference(ourStandardScripts);
   }
 
   private static List<Pair<File, GroovyDslExecutor>> getStandardScripts() {
index 64b47c72fb35d9515210d73214e0aad132254941..93b0b0fe825f6366bdb168e4447849d47e084d9b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,9 +39,7 @@ public class GroovyIntentionsBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
 
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
index 9641abfae28a7ddb581c1288c37a18276cd61b8c..679b6edaa6b09b8567f5c81c50cca8da68f85ca0 100644 (file)
@@ -243,8 +243,7 @@ public abstract class GroovyFileBaseImpl extends PsiFileBase implements GroovyFi
 
   public Instruction[] getControlFlow() {
     assert isValid();
-    SoftReference<Instruction[]> flow = myControlFlow;
-    Instruction[] result = flow != null ? flow.get() : null;
+    Instruction[] result = SoftReference.dereference(myControlFlow);
     if (result == null) {
       result = new ControlFlowBuilder(getProject()).buildControlFlow(this);
       myControlFlow = new SoftReference<Instruction[]>(result);
index 1fe5e6fa06e8b711efea7762036f6c6b4d627a16..ba2f35c09fb5f55220f264a5c38cca290893b8ba 100644 (file)
@@ -582,7 +582,7 @@ public class PsiImplUtil {
     if (block == null) return null;
 
     final SoftReference<PsiCodeBlock> ref = block.getUserData(PSI_CODE_BLOCK);
-    final PsiCodeBlock body = ref == null ? null : ref.get();
+    final PsiCodeBlock body = SoftReference.dereference(ref);
     if (body != null) return body;
     final GrSyntheticCodeBlock newBody = new GrSyntheticCodeBlock(block);
     block.putUserData(PSI_CODE_BLOCK, new SoftReference<PsiCodeBlock>(newBody));
@@ -593,7 +593,7 @@ public class PsiImplUtil {
     if (typeElement == null) return null;
 
     final SoftReference<PsiTypeElement> ref = typeElement.getUserData(PSI_TYPE_ELEMENT);
-    final PsiTypeElement element = ref == null ? null : ref.get();
+    final PsiTypeElement element = SoftReference.dereference(ref);
     if (element != null) return element;
     final GrSyntheticTypeElement newTypeElement = new GrSyntheticTypeElement(typeElement);
     typeElement.putUserData(PSI_TYPE_ELEMENT, new SoftReference<PsiTypeElement>(newTypeElement));
@@ -604,7 +604,7 @@ public class PsiImplUtil {
     if (expr == null) return null;
 
     final SoftReference<PsiExpression> ref = expr.getUserData(PSI_EXPRESSION);
-    final PsiExpression element = ref == null ? null : ref.get();
+    final PsiExpression element = SoftReference.dereference(ref);
     if (element != null) return element;
     final GrSyntheticExpression newExpr = new GrSyntheticExpression(expr);
     expr.putUserData(PSI_EXPRESSION, new SoftReference<PsiExpression>(newExpr));
@@ -615,7 +615,7 @@ public class PsiImplUtil {
     if (list == null) return null;
 
     final SoftReference<PsiReferenceList> ref = list.getUserData(PSI_REFERENCE_LIST);
-    final PsiReferenceList element = ref == null ? null : ref.get();
+    final PsiReferenceList element = SoftReference.dereference(ref);
     if (element != null) return element;
     final GrSyntheticReferenceList newList = new GrSyntheticReferenceList(list, role);
     list.putUserData(PSI_REFERENCE_LIST, new SoftReference<PsiReferenceList>(newList));
index aa7876a19db6ade0d158a49f8af94acb15a53431..2ff2a006a4de38dde44a344c25505bb914e3ef3d 100644 (file)
@@ -106,8 +106,7 @@ public class GrAnonymousClassDefinitionImpl extends GrTypeDefinitionImpl impleme
       return createClassType();
     }
 
-    PsiClassType type = null;
-    if (myCachedBaseType != null) type = myCachedBaseType.get();
+    PsiClassType type = SoftReference.dereference(myCachedBaseType);
     if (type != null && type.isValid()) return type;
 
     type = createClassType();
index e0344e8fbf361acb67162783e10bd2d4da7323d3..2b925cf36dad810006016da862a212dbac176f7a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -84,7 +84,7 @@ public class GrSyntheticCodeBlock extends LightElement implements PsiCodeBlock {
     if (element == null) return null;
 
     final SoftReference<PsiJavaToken> ref = element.getUserData(PSI_JAVA_TOKEN);
-    final PsiJavaToken token = ref == null ? null : ref.get();
+    final PsiJavaToken token = SoftReference.dereference(ref);
     if (token != null) return token;
     final LightJavaToken newToken = new LightJavaToken(element, type);
     element.putUserData(PSI_JAVA_TOKEN, new SoftReference<PsiJavaToken>(newToken));
index c319fbd08adf35635ff15f64cc8579672b22e3e7..811384c2b835a2c8678da8361d5cc405659b52f8 100644 (file)
@@ -44,14 +44,12 @@ public class GrAnnotationStub extends StubBase<GrAnnotation> {
   }
 
   public GrAnnotation getPsiElement() {
-    if (myPsiRef != null) {
-      final GrAnnotation annotation = myPsiRef.get();
-      if (annotation != null) {
-        return annotation;
-      }
+    GrAnnotation annotation = SoftReference.dereference(myPsiRef);
+    if (annotation != null) {
+      return annotation;
     }
     try {
-      GrAnnotation annotation = GroovyPsiElementFactory.getInstance(getProject()).createAnnotationFromText(myText, getPsi());
+      annotation = GroovyPsiElementFactory.getInstance(getProject()).createAnnotationFromText(myText, getPsi());
       myPsiRef = new SoftReference<GrAnnotation>(annotation);
       return annotation;
     }
index ab4d5876241d32d7a47abfb0b5cd2fdccce7e829..ad5c5e9a15719df34e0c02b9db051011b379787e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,9 +41,7 @@ public class GroovyRefactoringBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
 
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
index 2ad3893b62bd0b592cbc37a376614ee41ddca626..27a7234ea72aa3fcfbfb6d46ce0773ef8e51ca9c 100644 (file)
@@ -34,10 +34,7 @@ public final class HgVcsMessages {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) {
-      bundle = ourBundle.get();
-    }
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 52849f6a60c45b09ed1882dc2cee23b3c4a459e6..f980dce4573e8c5b4bb1d9b330c725d62dc17693 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ public class MavenDomBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 524e18dc8e477a9b468a1258ffaac6094ba79972..60560940078abf7b574a0409f4f8fab597d49a9b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ public class IndicesBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index c4f5241d800b387fdef4e352858bdb2a4ed0a5ac..1bf7a9a43cbb94ddfd4855ac01db99e5271de9f0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ public class ProjectBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 3fbe42200a1bedc5126c246a3c1e3d2375c18793..f0b1f38c077182ff47f8e1a22377c23cb42ca6f4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ public class TasksBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 56e69d4984f117e1a8b141d4dba687a65b0b86bc..e766152be2747247a6446ab59a48b0607af30e40 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,8 +36,7 @@ public class PropertiesBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index d74e63803a51d6c81650c4ed7bdd5302781e4d34..7e2ff1e86cbe49fe4e1cb2c82b7668bfa2f82f59 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class SvnBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index fe7f687d0a0828c37fbe59474140585eaf732141..691276ca2f96146657f03e6ffa89e04a9369645d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,10 +39,7 @@ public class DesignerBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) {
-      bundle = ourBundle.get();
-    }
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 4afcef39ef7614cf85de40856bcb12fe76d8df75..0984ae126847d81712335042d0e2ceddcd98e7a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ public class UIDesignerBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index e570bdb49eb538b2f32435b01f05f50ac16dc44e..a2982780d463f3d674ec3b494cdb84a12c645aa6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -188,12 +188,9 @@ public class CachedGridImage {
   }
 
   public static Image getGridImage(final RadContainer container) {
-    CachedGridImage gridImage = null;
     //noinspection unchecked
     SoftReference<CachedGridImage> imageRef = (SoftReference<CachedGridImage>) container.getDelegee().getClientProperty(CACHED_GRID_IMAGE_KEY);
-    if (imageRef != null) {
-      gridImage = imageRef.get();
-    }
+    CachedGridImage gridImage = SoftReference.dereference(imageRef);
     if (gridImage != null && gridImage.sizeEquals(container)) {
       gridImage.update(container);
     }
index 6158699b94359f5c46aa941157c8df302f51ca6a..9a7493e17639c48ae6d917f577ef64148032dcde 100644 (file)
@@ -169,8 +169,8 @@ public class XsltDocumentationProvider implements DocumentationProvider {
     }
 
     private Document getDocumentationDocument() throws IOException, JDOMException {
-        Document d;
-        if (myDocument == null || ((d = myDocument.get()) == null)) {
+        Document d = com.intellij.reference.SoftReference.dereference(myDocument);
+        if (d == null) {
             d = new SAXBuilder().build(XsltSupport.class.getResource("resources/documentation.xml"));
             myDocument = new SoftReference<Document>(d);
         }
@@ -178,8 +178,8 @@ public class XsltDocumentationProvider implements DocumentationProvider {
     }
 
     private Templates getTemplate() throws TransformerConfigurationException, IOException {
-        Templates t;
-        if (myTemplates == null || (t = myTemplates.get()) == null) {
+        Templates t = com.intellij.reference.SoftReference.dereference(myTemplates);
+        if (t == null) {
             t = TransformerFactory.newInstance().newTemplates(makeSource("resources/documentation.xsl"));
             myTemplates = new SoftReference<Templates>(t);
         }
index 20f1942ed60fa77734d3e33946f65f3186411ebc..195ad1b5c693e84e8f004701b672ad484eebd9a4 100644 (file)
@@ -18,10 +18,10 @@ package org.intellij.plugins.xsltDebugger.ui;
 
 import com.intellij.ide.DataManager;
 import com.intellij.openapi.actionSystem.CommonDataKeys;
-import com.intellij.openapi.actionSystem.PlatformDataKeys;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.project.Project;
 import com.intellij.pom.Navigatable;
+import com.intellij.reference.SoftReference;
 import com.intellij.util.SmartList;
 import com.intellij.util.containers.StringInterner;
 import org.intellij.plugins.xsltDebugger.XsltDebuggerSession;
@@ -59,8 +59,8 @@ public class GeneratedStructureModel extends DefaultTreeModel {
   // all instances (and their toolwindow contents) are gone. This should minimize the memory usage of the generated
   // structure tree.
   private static StringInterner getInterner() {
-    StringInterner interner;
-    if (ourSharedInterner == null || (interner = ourSharedInterner.get()) == null) {
+    StringInterner interner = SoftReference.dereference(ourSharedInterner);
+    if (interner == null) {
       interner = new StringInterner();
       ourSharedInterner = new WeakReference<StringInterner>(interner);
     }
index ed1b66328012b881b762e61330dcdf7871c3c2bb..eacf64ed73b2d3871e5935132e049c55b8b12538 100644 (file)
@@ -43,8 +43,7 @@ public class RestBundle {
 
   // Cached loading
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 3cb565d48b58a1aa2cdd4751d4d43d61056640e4..042973fafcf2a43ef4b2921fc9b0af4887a70530 100644 (file)
@@ -43,8 +43,7 @@ public class PyBundle {
 
   // Cached loading
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 02b70403c9aee3908cca789fb47958a5d52a5446..a8db9b68d87f11d51ee7c1248b5f09fc58f189d2 100644 (file)
@@ -39,7 +39,7 @@ public class ControlFlowCache {
 
   public static ControlFlow getControlFlow(@NotNull ScopeOwner element) {
     SoftReference<ControlFlow> ref = element.getUserData(CONTROL_FLOW_KEY);
-    ControlFlow flow = ref != null ? ref.get() : null;
+    ControlFlow flow = SoftReference.dereference(ref);
     if (flow == null) {
       flow = new PyControlFlowBuilder().buildControlFlow(element);
       element.putUserData(CONTROL_FLOW_KEY, new SoftReference<ControlFlow>(flow));
@@ -50,7 +50,7 @@ public class ControlFlowCache {
   @NotNull
   public static Scope getScope(@NotNull ScopeOwner element) {
     SoftReference<Scope> ref = element.getUserData(SCOPE_KEY);
-    Scope scope = ref != null ? ref.get() : null;
+    Scope scope = SoftReference.dereference(ref);
     if (scope == null) {
       scope = new ScopeImpl(element);
       element.putUserData(SCOPE_KEY, new SoftReference<Scope>(scope));
index f16850e0ceebe08d515ece55f651beaa5e480a70..e3c589922bec92ad819fb83a2b29978ff20b197e 100644 (file)
@@ -442,7 +442,7 @@ public class PyFileImpl extends PsiFileBase implements PyFile, PyExpression {
   private ExportedNameCache getExportedNameCache() {
     ExportedNameCache cache;
     synchronized (myENCLock) {
-      cache = myExportedNameCache != null ? myExportedNameCache.get() : null;
+      cache = SoftReference.dereference(myExportedNameCache);
       final long modificationStamp = getModificationStamp();
       if (myExportedNameCache != null && cache != null && modificationStamp != cache.getModificationStamp()) {
         myExportedNameCache.clear();
index bde4559335d485451697dcf40cfeaec881c42e02..6d33b68284b93602fcbcdc1a20af5fe5a4ed0d6b 100644 (file)
@@ -203,11 +203,9 @@ public abstract class FunctionalParserBase<R, T> implements FunctionalParser<R,
         myCache.clear();
       }
       final SoftReference<Pair<R, State>> ref = myCache.get(state.getPos());
-      if (ref != null) {
-        final Pair<R, State> cached = ref.get();
-        if (cached != null) {
-          return cached;
-        }
+      final Pair<R, State> cached = SoftReference.dereference(ref);
+      if (cached != null) {
+        return cached;
       }
       final Pair<R, State> result = myParser.parse(tokens, state);
       myCache.put(state.getPos(), new SoftReference<Pair<R, State>>(result));
index 65d808210ec6b5fae01625a040e51083e56392fc..6ce5abdcac9e2c534eb81bb28fade45dfbd972e9 100644 (file)
@@ -52,6 +52,7 @@ import com.intellij.openapi.util.text.CharFilter;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vfs.*;
 import com.intellij.psi.PsiElement;
+import com.intellij.reference.SoftReference;
 import com.intellij.remotesdk.RemoteSdkData;
 import com.intellij.remotesdk.RemoteSdkDataHolder;
 import com.intellij.ui.awt.RelativePoint;
@@ -495,11 +496,8 @@ public class PythonSdkType extends SdkType {
 
   public void setupSdkPaths(@NotNull final Sdk sdk) {
     final Project project;
-    Component ownerComponent = null;
     final WeakReference<Component> ownerComponentRef = sdk.getUserData(SDK_CREATOR_COMPONENT_KEY);
-    if (ownerComponentRef != null) {
-      ownerComponent = ownerComponentRef.get();
-    }
+    Component ownerComponent = SoftReference.dereference(ownerComponentRef);
     if (ownerComponent != null) {
       project = CommonDataKeys.PROJECT.getData(DataManager.getInstance().getDataContext(ownerComponent));
     }
index 083546e62288c9f339454a5ec4d6011b6f912e14..b9a93e147291231eac941dd974661b91c7286045 100644 (file)
@@ -42,6 +42,7 @@ import com.intellij.psi.xml.XmlAttribute;
 import com.intellij.psi.xml.XmlElement;
 import com.intellij.psi.xml.XmlFile;
 import com.intellij.psi.xml.XmlTag;
+import com.intellij.reference.SoftReference;
 import com.intellij.semantic.SemKey;
 import com.intellij.semantic.SemService;
 import com.intellij.util.EventDispatcher;
@@ -372,7 +373,7 @@ public final class DomManagerImpl extends DomManager {
   @Nullable
   static <T extends DomElement> DomFileElementImpl<T> getCachedFileElement(@NotNull XmlFile file) {
     WeakReference<DomFileElementImpl> ref = file.getUserData(CACHED_FILE_ELEMENT);
-    return ref == null ? null : ref.get();
+    return SoftReference.dereference(ref);
   }
 
   @Nullable
index fa95b8a4ccb735a56bad37d34f8e937cd4b54926..96fbf46095e34232ff282d4b542202f829dd02b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -138,7 +138,7 @@ public class DynamicGenericInfo extends DomGenericInfoEx {
 
   private static <T extends DomChildDescriptionImpl> ChildrenDescriptionsHolder<T> internChildrenHolder(XmlFile file, ChildrenDescriptionsHolder<T> holder) {
     SoftReference<ConcurrentHashMap<ChildrenDescriptionsHolder, ChildrenDescriptionsHolder>> ref = file.getUserData(HOLDERS_CACHE);
-    ConcurrentHashMap<ChildrenDescriptionsHolder, ChildrenDescriptionsHolder> cache = ref == null ? null : ref.get();
+    ConcurrentHashMap<ChildrenDescriptionsHolder, ChildrenDescriptionsHolder> cache = SoftReference.dereference(ref);
     if (cache == null) {
       cache = new ConcurrentHashMap<ChildrenDescriptionsHolder, ChildrenDescriptionsHolder>();
       file.putUserData(HOLDERS_CACHE, new SoftReference<ConcurrentHashMap<ChildrenDescriptionsHolder, ChildrenDescriptionsHolder>>(cache));
index b1379dc945cd097752a03cf83f7419704030c3ec..07a41223a74e14f8f6525478af185ba9dc7d2378 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ public class DomBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 5f5a7326bb5ad4fa861e90db48d0b42a10fe7bc0..0abf03a3593fc7cc659728afa87d01aa3fdefd26 100644 (file)
@@ -39,8 +39,7 @@ public class XmlBundle {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(PATH_TO_BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index 77d0c1ee4b3ba0bda95c42815b8c82e13f84fabe..38dbb11f93e3a56ba1f9b841c05616065d1820c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,8 +41,7 @@ public class XmlErrorMessages {
   }
 
   private static ResourceBundle getBundle() {
-    ResourceBundle bundle = null;
-    if (ourBundle != null) bundle = ourBundle.get();
+    ResourceBundle bundle = com.intellij.reference.SoftReference.dereference(ourBundle);
     if (bundle == null) {
       bundle = ResourceBundle.getBundle(BUNDLE);
       ourBundle = new SoftReference<ResourceBundle>(bundle);
index ba7f346e70062025cfad14914ac875b28495548d..debb58ae089152beb446b1a6520f435bacbded33 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -104,8 +104,7 @@ public class ExternalDocumentValidator {
         file != null &&
         myModificationStamp == file.getModificationStamp() &&
         !ValidateXmlActionHandler.isValidationDependentFilesOutOfDate((XmlFile)file) &&
-        myInfos!=null &&
-        myInfos.get()!=null // we have validated before
+        SoftReference.dereference(myInfos)!=null // we have validated before
         ) {
       addAllInfos(host,myInfos.get());
       return;
@@ -375,7 +374,7 @@ public class ExternalDocumentValidator {
     if (!profile.isToolEnabled(HighlightDisplayKey.find(INSPECTION_SHORT_NAME), containingFile)) return;
 
     SoftReference<ExternalDocumentValidator> validatorReference = project.getUserData(validatorInstanceKey);
-    ExternalDocumentValidator validator = validatorReference != null? validatorReference.get() : null;
+    ExternalDocumentValidator validator = SoftReference.dereference(validatorReference);
 
     if(validator == null) {
       validator = new ExternalDocumentValidator();