From e9a4ea6e19c6720622d38890de055f35338666ad Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Fri, 30 Oct 2009 20:11:08 +0000 Subject: [PATCH] Fixed ConcurrentModificationException. Bug 293822. --- .../ui/text/spelling/engine/DefaultSpellChecker.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/spelling/engine/DefaultSpellChecker.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/spelling/engine/DefaultSpellChecker.java index 45aa2f18f34..d6c67263790 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/spelling/engine/DefaultSpellChecker.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/spelling/engine/DefaultSpellChecker.java @@ -219,9 +219,11 @@ public class DefaultSpellChecker implements ISpellChecker { iterator.setIgnoreSingleLetters(ignoreSingleLetters); - Iterator iter= fDictionaries.iterator(); - while (iter.hasNext()) - iter.next().setStripNonLetters(ignoreNonLetters); + synchronized (fDictionaries) { + Iterator iter= fDictionaries.iterator(); + while (iter.hasNext()) + iter.next().setStripNonLetters(ignoreNonLetters); + } String word= null; boolean starts= false; @@ -233,12 +235,12 @@ public class DefaultSpellChecker implements ISpellChecker { if (!fIgnored.contains(word)) { starts= iterator.startsSentence(); if (!isCorrect(word)) { - boolean isMixed= isMixedCase(word, true); + boolean isMixed= isMixedCase(word, true); boolean isUpper= isUpperCase(word); boolean isDigits= isDigits(word); boolean isUrl= isUrl(word); - if ( !ignoreMixed && isMixed || !ignoreUpper && isUpper || !ignoreDigits && isDigits || !ignoreUrls && isUrl || !(isMixed || isUpper || isDigits || isUrl)) + if (!ignoreMixed && isMixed || !ignoreUpper && isUpper || !ignoreDigits && isDigits || !ignoreUrls && isUrl || !(isMixed || isUpper || isDigits || isUrl)) fireEvent(new SpellEvent(this, word, iterator.getBegin(), iterator.getEnd(), starts, false)); } else { if (!ignoreSentence && starts && Character.isLowerCase(word.charAt(0)))