diff --git a/.idea/modules.xml b/.idea/modules.xml
index 315b69f7138f..00437da65030 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -46,8 +46,8 @@
-
-
+
+
@@ -106,10 +106,10 @@
-
+
@@ -136,9 +136,9 @@
-
+
-
+
diff --git a/build/update.sh b/build/update.sh
index 7fdd5029aec8..b58f117a8315 100755
--- a/build/update.sh
+++ b/build/update.sh
@@ -24,7 +24,7 @@ echo "Updating $WORK_IDEA_HOME from compiled classes in $DEV_IDEA_HOME"
ANT_HOME="$DEV_IDEA_HOME/lib/ant"
ANT_CLASSPATH="$DEV_IDEA_HOME/build/lib/gant/lib/jps.jar"
java -Xms64m -Xmx512m -Dant.home="$ANT_HOME" -classpath "$ANT_HOME/lib/ant-launcher.jar" org.apache.tools.ant.launch.Launcher \
- -lib "$ANT_CLASSPATH" -f $DEV_IDEA_HOME/build/update.xml $TARGET
+ -lib "$ANT_CLASSPATH" -f "$DEV_IDEA_HOME/build/update.xml" $TARGET
if [ "$?" != "0" ]; then
echo "Update failed; work IDEA build not modified."
@@ -32,17 +32,17 @@ if [ "$?" != "0" ]; then
exit 2
fi
-rm -rf $WORK_IDEA_HOME/lib
-rm -rf $WORK_IDEA_HOME/plugins
+rm -rf "$WORK_IDEA_HOME/lib"
+rm -rf "$WORK_IDEA_HOME/plugins"
-cp -R $DEV_IDEA_HOME/out/deploy/* $WORK_IDEA_HOME
+cp -R "$DEV_IDEA_HOME/out/deploy/"* "$WORK_IDEA_HOME"
OS_TYPE=`uname -s`
if [ "$OS_TYPE" = "Linux" ]; then
cp -a $DEV_IDEA_HOME/bin/linux/*.so $WORK_IDEA_HOME/bin
cp -a $DEV_IDEA_HOME/bin/linux/fsnotifier* $WORK_IDEA_HOME/bin
elif [ "$OS_TYPE" = "Darwin" ]; then
- cp -a $DEV_IDEA_HOME/bin/mac/*.jnilib $WORK_IDEA_HOME/bin
- cp -a $DEV_IDEA_HOME/bin/mac/fsnotifier $WORK_IDEA_HOME/bin
- cp -a $DEV_IDEA_HOME/bin/mac/restarter $WORK_IDEA_HOME/bin
+ cp -a "$DEV_IDEA_HOME/bin/mac/"*.jnilib "$WORK_IDEA_HOME/bin"
+ cp -a "$DEV_IDEA_HOME/bin/mac/fsnotifier" "$WORK_IDEA_HOME/bin"
+ cp -a "$DEV_IDEA_HOME/bin/mac/restarter" "$WORK_IDEA_HOME/bin"
fi
diff --git a/images/src/org/intellij/images/ImagesBundle.java b/images/src/org/intellij/images/ImagesBundle.java
index b2a7092b1306..056e4403546a 100644
--- a/images/src/org/intellij/images/ImagesBundle.java
+++ b/images/src/org/intellij/images/ImagesBundle.java
@@ -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(bundle);
diff --git a/images/src/org/intellij/images/vfs/IfsUtil.java b/images/src/org/intellij/images/vfs/IfsUtil.java
index bb2f1541f299..12b8e590c0b7 100644
--- a/images/src/org/intellij/images/vfs/IfsUtil.java
+++ b/images/src/org/intellij/images/vfs/IfsUtil.java
@@ -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 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 imageRef = file.getUserData(BUFFERED_IMAGE_REF_KEY);
- return imageRef != null ? imageRef.get() : null;
+ return SoftReference.dereference(imageRef);
}
@Nullable
diff --git a/java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerBundle.java b/java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerBundle.java
index eac8c804e7ec..5e01ff64f604 100644
--- a/java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerBundle.java
+++ b/java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerBundle.java
@@ -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(bundle);
diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/ViewTextAction.java b/java/debugger/impl/src/com/intellij/debugger/actions/ViewTextAction.java
index 9c4ec5d39bca..52cc1b1441f8 100644
--- a/java/debugger/impl/src/com/intellij/debugger/actions/ViewTextAction.java
+++ b/java/debugger/impl/src/com/intellij/debugger/actions/ViewTextAction.java
@@ -19,14 +19,10 @@ import com.intellij.debugger.impl.DebuggerContextImpl;
import com.intellij.debugger.ui.impl.watch.DebuggerTreeNodeImpl;
import com.intellij.debugger.ui.impl.watch.NodeDescriptorImpl;
import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl;
-import com.intellij.openapi.editor.Document;
-import com.intellij.openapi.editor.EditorFactory;
-import com.intellij.openapi.editor.ex.EditorEx;
-import com.intellij.openapi.editor.impl.DocumentImpl;
-import com.intellij.openapi.fileTypes.FileTypes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.ui.EditorTextField;
+import com.intellij.xdebugger.impl.ui.TextViewer;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
@@ -36,6 +32,7 @@ import java.awt.*;
* @author Jeka
*/
public class ViewTextAction extends BaseValueAction {
+ @Override
protected void processText(final Project project, final String text, DebuggerTreeNodeImpl node, DebuggerContextImpl debuggerContext) {
final NodeDescriptorImpl descriptor = node.getDescriptor();
final String labelText = descriptor instanceof ValueDescriptorImpl? ((ValueDescriptorImpl)descriptor).getValueLabel() : null;
@@ -46,8 +43,7 @@ public class ViewTextAction extends BaseValueAction {
}
private static class MyDialog extends DialogWrapper {
-
- private EditorTextField myTextViewer;
+ private final EditorTextField myTextViewer;
private MyDialog(Project project) {
super(project, false);
@@ -55,7 +51,7 @@ public class ViewTextAction extends BaseValueAction {
setCancelButtonText("Close");
setCrossClosesWindow(true);
- myTextViewer = new TextViewer(project);
+ myTextViewer = new TextViewer(project, true, true);
init();
}
@@ -63,48 +59,23 @@ public class ViewTextAction extends BaseValueAction {
myTextViewer.setText(text);
}
+ @Override
@NotNull
protected Action[] createActions() {
return new Action[] {getCancelAction()};
}
+ @Override
protected String getDimensionServiceKey() {
return "#com.intellij.debugger.actions.ViewTextAction";
}
+ @Override
protected JComponent createCenterPanel() {
final JPanel panel = new JPanel(new BorderLayout());
panel.add(myTextViewer, BorderLayout.CENTER);
panel.setPreferredSize(new Dimension(300, 200));
return panel;
}
-
}
-
-
- private static class TextViewer extends EditorTextField {
-
- private TextViewer(Project project) {
- super(createDocument(), project, FileTypes.PLAIN_TEXT, true, false);
- }
-
- private static Document createDocument() {
- final Document document = EditorFactory.getInstance().createDocument("");
- if (document instanceof DocumentImpl) {
- ((DocumentImpl)document).setAcceptSlashR(true);
- }
- return document;
- }
-
- protected EditorEx createEditor() {
- final EditorEx editor = super.createEditor();
- editor.setHorizontalScrollbarVisible(true);
- editor.setVerticalScrollbarVisible(true);
- editor.setEmbeddedIntoDialogWrapper(true);
- editor.getComponent().setPreferredSize(null);
- editor.getSettings().setUseSoftWraps(true);
- return editor;
- }
- }
-
}
diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java
index 6b514f3b4dfa..f43d36b2185a 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java
@@ -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;
diff --git a/java/debugger/openapi/src/com/intellij/debugger/DebuggerBundle.java b/java/debugger/openapi/src/com/intellij/debugger/DebuggerBundle.java
index 179cf4ac5453..d83053bd56c5 100644
--- a/java/debugger/openapi/src/com/intellij/debugger/DebuggerBundle.java
+++ b/java/debugger/openapi/src/com/intellij/debugger/DebuggerBundle.java
@@ -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(bundle);
diff --git a/java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileImpl.java b/java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileImpl.java
index 45edd4a46677..db9b58b575ba 100644
--- a/java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileImpl.java
+++ b/java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileImpl.java
@@ -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 ref = myPsiFile;
- PsiFile psiFile = ref == null ? null : ref.get();
+ PsiFile psiFile = com.intellij.reference.SoftReference.dereference(myPsiFile);
if (psiFile != null && psiFile.isValid()) {
return psiFile;
diff --git a/java/java-analysis-api/src/com/intellij/codeInspection/BaseJavaBatchLocalInspectionTool.java b/java/java-analysis-api/src/com/intellij/codeInspection/BaseJavaBatchLocalInspectionTool.java
index 36d4596b1147..18f1c5128ab6 100644
--- a/java/java-analysis-api/src/com/intellij/codeInspection/BaseJavaBatchLocalInspectionTool.java
+++ b/java/java-analysis-api/src/com/intellij/codeInspection/BaseJavaBatchLocalInspectionTool.java
@@ -20,6 +20,12 @@ import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+/**
+ * Base java local inspection which provides batch suppress actions, i.e. actions which don't need UI components to run (e.g. Editor).
+ * Please use this class if your inspection and its fixes
+ * - work with PSI or document only and
+ * - don't provide {@link com.intellij.codeInsight.intention.IntentionAction} for quick fixes/suppression, making do with {@link LocalQuickFix} only.
+ */
public abstract class BaseJavaBatchLocalInspectionTool extends AbstractBaseJavaLocalInspectionTool implements BatchSuppressableTool {
@NotNull
@Override
diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RefCountHolder.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RefCountHolder.java
index 175c1332db46..66de82fb585b 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RefCountHolder.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RefCountHolder.java
@@ -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;
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspectionBase.java
index 90fe1c0ff115..ca13b50f56eb 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspectionBase.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspectionBase.java
@@ -85,8 +85,8 @@ public class Java15APIUsageInspectionBase extends BaseJavaBatchLocalInspectionTo
private static Set getForbiddenApi(@NotNull LanguageLevel languageLevel) {
if (!ourPresentableShortMessage.containsKey(languageLevel)) return null;
Reference> ref = ourForbiddenAPI.get(languageLevel);
- Set result;
- if (ref == null || (result = ref.get()) == null) {
+ Set result = SoftReference.dereference(ref);
+ if (result == null) {
result = new THashSet(1000);
loadForbiddenApi("api" + getShortName(languageLevel) + ".txt", result);
ourForbiddenAPI.put(languageLevel, new SoftReference>(result));
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java
index e05c4b166ff5..e01a3f18a6be 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java
@@ -77,14 +77,20 @@ public class NullableStuffInspectionBase extends BaseJavaBatchLocalInspectionToo
if (!AnnotationUtil.isAnnotatingApplicable(field, anno)) {
final PsiAnnotation notNull = AnnotationUtil.findAnnotation(field, manager.getNotNulls());
final PsiAnnotation nullable = AnnotationUtil.findAnnotation(field, manager.getNullables());
- String message = "";
+ final PsiAnnotation annotation;
+ String message = "Not \'";
if (annotated.isDeclaredNullable) {
message += nullable.getQualifiedName();
+ annotation = nullable;
} else {
message += notNull.getQualifiedName();
+ annotation = notNull;
}
- message += " contradicts to configured defaults";
- holder.registerProblem(field.getNameIdentifier(), message,
+ message += "\' but \'" + anno + "\' would be used for code generation.";
+ final PsiJavaCodeReferenceElement annotationNameReferenceElement = annotation.getNameReferenceElement();
+ holder.registerProblem(annotationNameReferenceElement != null ? annotationNameReferenceElement : field.getNameIdentifier(),
+ message,
+ ProblemHighlightType.WEAK_WARNING,
new ChangeNullableDefaultsFix(notNull, nullable, manager));
return;
}
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java
index 1e2aee542e7f..13a18f075aa4 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java
@@ -268,6 +268,10 @@ public class RefClassImpl extends RefJavaElementImpl implements RefClass {
for (PsiMethod psiMethod : psiMethods) {
getRefManager().getReference(psiMethod);
}
+
+ RefJavaUtil.getInstance().addReferences(psiClass, this, psiClass.getExtendsList());
+ RefJavaUtil.getInstance().addReferences(psiClass, this, psiClass.getImplementsList());
+
getRefManager().fireBuildReferences(this);
}
}
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefJavaUtilImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefJavaUtilImpl.java
index c46bfb656769..06fb5725c00b 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefJavaUtilImpl.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefJavaUtilImpl.java
@@ -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.
@@ -38,6 +38,17 @@ public class RefJavaUtilImpl extends RefJavaUtil{
findIn.accept(
new JavaRecursiveElementWalkingVisitor() {
@Override public void visitReferenceElement(PsiJavaCodeReferenceElement reference) {
+ final PsiElement target = reference.resolve();
+
+ if (target instanceof PsiClass) {
+ final PsiClass aClass = (PsiClass)target;
+ final RefClassImpl refClass = (RefClassImpl)refFrom.getRefManager().getReference(aClass);
+ refFrom.addReference(refClass, aClass, psiFrom, false, true, null);
+ }
+
+ if (target instanceof PsiModifierListOwner && isDeprecated(target)) {
+ refFrom.setUsesDeprecatedApi(true);
+ }
}
@Override public void visitReferenceExpression(PsiReferenceExpression expression) {
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/CompletionBundle.java b/java/java-impl/src/com/intellij/codeInsight/completion/CompletionBundle.java
index 0f5942a55ef6..d2ac5c1d8f9f 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/CompletionBundle.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/CompletionBundle.java
@@ -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(bundle);
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java
index c1bfeda87531..6adeaa50bcdb 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java
@@ -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