From f5e2f4c5e19235a25ba62b505860fe6b7f8baabe Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Tue, 24 Nov 2015 17:33:21 +0300 Subject: [PATCH] EA-68951 - IAE: TObjectHash.throwObjectContractViolation --- .../src/com/intellij/ide/impl/DataManagerImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java b/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java index e32e9c24d539..55be1e1f23e1 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java @@ -290,6 +290,15 @@ public class DataManagerImpl extends DataManager { myDataConstantToRuleMap.put(PlatformDataKeys.FILE_EDITOR.getName(), new FileEditorRule()); myDataConstantToRuleMap.put(CommonDataKeys.NAVIGATABLE_ARRAY.getName(), new NavigatableArrayRule()); myDataConstantToRuleMap.put(CommonDataKeys.EDITOR_EVEN_IF_INACTIVE.getName(), new InactiveEditorRule()); + + // pre-initialize some basic rules to prevent contention issues + getRuleFromMap(LangDataKeys.MODULE.getName()); + getRuleFromMap(LangDataKeys.PSI_ELEMENT_ARRAY.getName()); + + getRuleFromMap(CommonDataKeys.PROJECT.getName()); + getRuleFromMap(CommonDataKeys.EDITOR.getName()); + getRuleFromMap(CommonDataKeys.VIRTUAL_FILE_ARRAY.getName()); + getRuleFromMap(CommonDataKeys.PSI_ELEMENT.getName()); } @Override