diff --git a/platform/core-api/src/com/intellij/lang/LanguageExtension.java b/platform/core-api/src/com/intellij/lang/LanguageExtension.java index 495a8301cfff..d4a385f1ab25 100644 --- a/platform/core-api/src/com/intellij/lang/LanguageExtension.java +++ b/platform/core-api/src/com/intellij/lang/LanguageExtension.java @@ -29,7 +29,7 @@ import java.util.List; public class LanguageExtension extends KeyedExtensionCollector { private final T myDefaultImplementation; - private final /* non static!!! */ Key IN_LANGUAGE_CACHE = new Key("EXTENSIONS_IN_LANGUAGE"); + private final /* non static!!! */ Key IN_LANGUAGE_CACHE; public LanguageExtension(@NonNls final String epName) { this(epName, null); @@ -38,6 +38,7 @@ public class LanguageExtension extends KeyedExtensionCollector { public LanguageExtension(@NonNls final String epName, @Nullable final T defaultImplementation) { super(epName); myDefaultImplementation = defaultImplementation; + IN_LANGUAGE_CACHE = Key.create("EXTENSIONS_IN_LANGUAGE_"+epName); } @Override @@ -59,8 +60,8 @@ public class LanguageExtension extends KeyedExtensionCollector { else { result = extensions.get(0); } - if (result == null) return result; - l.putUserDataIfAbsent(IN_LANGUAGE_CACHE, result); + if (result == null) return null; + result = l.putUserDataIfAbsent(IN_LANGUAGE_CACHE, result); return result; } diff --git a/platform/util/src/com/intellij/openapi/util/Disposer.java b/platform/util/src/com/intellij/openapi/util/Disposer.java index fe05052fc5fe..65ab06fd114c 100644 --- a/platform/util/src/com/intellij/openapi/util/Disposer.java +++ b/platform/util/src/com/intellij/openapi/util/Disposer.java @@ -42,10 +42,12 @@ public class Disposer { } private static final ObjectTreeAction ourDisposeAction = new ObjectTreeAction() { + @Override public void execute(final Disposable each) { each.dispose(); } + @Override public void beforeTreeExecution(final Disposable parent) { if (parent instanceof Disposable.Parent) { ((Disposable.Parent)parent).beforeTreeDispose(); @@ -61,6 +63,7 @@ public class Disposer { @NotNull public static Disposable newDisposable() { return new Disposable() { + @Override public void dispose() { } }; @@ -81,6 +84,7 @@ public class Disposer { assert get(key) == null; ourKeyDisposables.put(key, child); register(child, new Disposable() { + @Override public void dispose() { ourKeyDisposables.remove(key); } diff --git a/platform/util/src/com/intellij/openapi/util/NotNullLazyKey.java b/platform/util/src/com/intellij/openapi/util/NotNullLazyKey.java index cf4ac7892e91..d561e5ee4971 100644 --- a/platform/util/src/com/intellij/openapi/util/NotNullLazyKey.java +++ b/platform/util/src/com/intellij/openapi/util/NotNullLazyKey.java @@ -25,7 +25,7 @@ import com.intellij.util.NotNullFunction; public class NotNullLazyKey extends Key{ private final NotNullFunction myFunction; - private NotNullLazyKey(@NonNls String name, final NotNullFunction function) { + private NotNullLazyKey(@NotNull @NonNls String name, @NotNull NotNullFunction function) { super(name); myFunction = function; }