From 339bf5d09a8d295d3478410d6524dd6adc577dc8 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 28 May 2015 14:57:35 +0200 Subject: [PATCH] EA-67970 - CME: LiftShorterItemsClassifier.calculateToLift diagnostics --- .../impl/LiftShorterItemsClassifier.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java index 93712c209b99..7b0d70952b95 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java @@ -99,17 +99,22 @@ public class LiftShorterItemsClassifier extends Classifier { private void calculateToLift(LookupElement element) { boolean hasChanges = false; - for (String string : element.getAllLookupStrings()) { - for (int len = 1; len < string.length(); len++) { - String prefix = string.substring(0, len); - for (LookupElement shorterElement : myElements.get(prefix)) { - if (myCondition.shouldLift(shorterElement, element)) { - hasChanges = true; - myToLift.putValue(element, shorterElement); + try { + for (String string : element.getAllLookupStrings()) { + for (int len = 1; len < string.length(); len++) { + String prefix = string.substring(0, len); + for (LookupElement shorterElement : myElements.get(prefix)) { + if (myCondition.shouldLift(shorterElement, element)) { + hasChanges = true; + myToLift.putValue(element, shorterElement); + } } } } } + catch (ConcurrentModificationException e) { + throw new RuntimeException("Error while traversing lookup strings of " + element + " of " + element.getClass(), e); + } if (hasChanges) { internListToLift(element); }