changeset 26:87b24e4efcc3

fixed multiple indexing of the same pdb file
author Evgeniy.Koshkin
date Wed, 07 Aug 2013 17:29:18 +0400
parents f4e0050e2a2f
children 76ed2d58c871
files agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java	Tue Aug 06 14:18:09 2013 +0400
+++ b/agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java	Wed Aug 07 17:29:18 2013 +0400
@@ -17,6 +17,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * @author Evgeniy.Koshkin
@@ -43,7 +44,7 @@
       @Override
       public void buildStarted(@NotNull final AgentRunningBuild runningBuild) {
         myBuild = runningBuild;
-        mySymbolsToProcess = new HashSet<File>();
+        mySymbolsToProcess = new CopyOnWriteArrayList<File>();
       }
 
       @Override
@@ -91,6 +92,10 @@
 
     final PdbFilePatcher pdbFilePatcher = new PdbFilePatcher(myBuild.getBuildTempDirectory(), new SrcSrvStreamBuilder(urlProvider));
     for(File pdbFile : pdbFiles){
+      if(mySymbolsToProcess.contains(pdbFile)){
+        LOG.debug(String.format("File %s already processed. Skipped.", pdbFile.getAbsolutePath()));
+        continue;
+      }
       try {
         buildLogger.message("Indexing sources appeared in file " + pdbFile.getAbsolutePath());
         pdbFilePatcher.patch(pdbFile, buildLogger);