diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java index 8c6b1889de1..33984084cf8 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java @@ -14,11 +14,11 @@ *******************************************************************************/ package org.eclipse.cdt.make.internal.core.scannerconfig.gnu; -import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.cdt.core.IMarkerGenerator; import org.eclipse.cdt.internal.core.resources.ResourceLookup; @@ -138,7 +138,7 @@ public class GCCPerFileBOPConsoleParser extends AbstractGCCBOPConsoleParser { } if (file != null) { CCommandDSC cmd = fUtil.getNewCCommandDSC(tokens, compilerInvocationIndex, extensionsIndex > 0); - List cmdList = new ArrayList(); + List cmdList = new CopyOnWriteArrayList(); cmdList.add(cmd); Map> sc = new HashMap>(1); sc.put(ScannerInfoTypes.COMPILER_COMMAND, cmdList); diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParserUtility.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParserUtility.java index f2063438522..c495b80d2a8 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParserUtility.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParserUtility.java @@ -14,10 +14,10 @@ *******************************************************************************/ package org.eclipse.cdt.make.internal.core.scannerconfig.gnu; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.cdt.core.IMarkerGenerator; import org.eclipse.cdt.make.internal.core.scannerconfig.util.CCommandDSC; @@ -58,7 +58,7 @@ public class GCCPerFileBOPConsoleParserUtility extends AbstractGCCBOPConsolePars String workingDir = getWorkingDirectory().toString(); List>> directoryCommandList = directoryCommandListMap.get(workingDir); if (directoryCommandList == null) { - directoryCommandList = new ArrayList>>(); + directoryCommandList = new CopyOnWriteArrayList>>(); directoryCommandListMap.put(workingDir, directoryCommandList); ++workingDirsN; } @@ -77,7 +77,7 @@ public class GCCPerFileBOPConsoleParserUtility extends AbstractGCCBOPConsolePars command21FileListMap = new HashMap>(1); directoryCommandList.add(command21FileListMap); ++commandsN; - List fileList = new ArrayList(); + List fileList = new CopyOnWriteArrayList(); command21FileListMap.put(genericCommand, fileList); fileList.add(longFileName); ++filesN; @@ -121,8 +121,8 @@ public class GCCPerFileBOPConsoleParserUtility extends AbstractGCCBOPConsolePars * @return CCommandDSC compile command description */ public CCommandDSC getNewCCommandDSC(String[] tokens, final int idxOfCompilerCommand, boolean cppFileType) { - ArrayList dirafter = new ArrayList(); - ArrayList includes = new ArrayList(); + CopyOnWriteArrayList dirafter = new CopyOnWriteArrayList(); + CopyOnWriteArrayList includes = new CopyOnWriteArrayList(); CCommandDSC command = new CCommandDSC(cppFileType, getProject()); command.addSCOption(new KVStringPair(SCDOptionsEnum.COMMAND.toString(), tokens[idxOfCompilerCommand])); for (int i = idxOfCompilerCommand+1; i < tokens.length; ++i) { @@ -161,7 +161,7 @@ public class GCCPerFileBOPConsoleParserUtility extends AbstractGCCBOPConsolePars KVStringPair pair = new KVStringPair(SCDOptionsEnum.IQUOTE.toString(), option); command.addSCOption(pair); } - includes = new ArrayList(); + includes = new CopyOnWriteArrayList(); // -I- has no parameter } else { @@ -285,7 +285,7 @@ public class GCCPerFileBOPConsoleParserUtility extends AbstractGCCBOPConsolePars * @return List of CCommandDSC */ public List getCCommandDSCList() { - return new ArrayList(commandsList2); + return new CopyOnWriteArrayList(commandsList2); } } diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java index ef2d34dab81..3ef7cd9dfe0 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java @@ -13,11 +13,11 @@ *******************************************************************************/ package org.eclipse.cdt.make.internal.core.scannerconfig.gnu; -import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.cdt.core.IMarkerGenerator; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; @@ -68,9 +68,9 @@ public class GCCScannerInfoConsoleParser extends AbstractGCCBOPConsoleParser { } // Recognized gcc or g++ compiler invocation - List includes = new ArrayList(); - List symbols = new ArrayList(); - List targetSpecificOptions = new ArrayList(); + List includes = new CopyOnWriteArrayList(); + List symbols = new CopyOnWriteArrayList(); + List targetSpecificOptions = new CopyOnWriteArrayList(); String fileName = null; for (int j= compilerInvocationIdx+1; j < tokens.length; j++) { diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerFileBuildOutputParser.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerFileBuildOutputParser.java index 4fd45a07cb1..581ae2c1caf 100644 --- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerFileBuildOutputParser.java +++ b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerFileBuildOutputParser.java @@ -10,10 +10,10 @@ *******************************************************************************/ package org.eclipse.cdt.make.xlc.core.scannerconfig; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2; import org.eclipse.cdt.make.core.scannerconfig.ScannerInfoTypes; @@ -28,6 +28,7 @@ import org.eclipse.core.runtime.IPath; * @author crecoskie * */ +@SuppressWarnings("restriction") public class XLCPerFileBuildOutputParser extends AbstractXLCBuildOutputParser { /* (non-Javadoc) @@ -127,7 +128,7 @@ public class XLCPerFileBuildOutputParser extends AbstractXLCBuildOutputParser { } if (true /*file != null*/) { CCommandDSC cmd = getUtility().getNewCCommandDSC(tokens, compilerInvocationIndex, extensionsIndex > 0); - List cmdList = new ArrayList(); + List cmdList = new CopyOnWriteArrayList(); cmdList.add(cmd); Map> sc = new HashMap>(1); sc.put(ScannerInfoTypes.COMPILER_COMMAND, cmdList); diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerProjectBuildOutputParser.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerProjectBuildOutputParser.java index 61aef0ff865..3bfabcc9289 100644 --- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerProjectBuildOutputParser.java +++ b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerProjectBuildOutputParser.java @@ -10,10 +10,11 @@ *******************************************************************************/ package org.eclipse.cdt.make.xlc.core.scannerconfig; -import java.util.ArrayList; + import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.cdt.core.IMarkerGenerator; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2; @@ -47,9 +48,9 @@ public class XLCPerProjectBuildOutputParser extends } // Recognized gcc or g++ compiler invocation - List includes = new ArrayList(); - List symbols = new ArrayList(); - List targetSpecificOptions = new ArrayList(); + List includes = new CopyOnWriteArrayList(); + List symbols = new CopyOnWriteArrayList(); + List targetSpecificOptions = new CopyOnWriteArrayList(); String fileName = null; for (int j= compilerInvocationIdx+1; j < tokens.length; j++) {