From a9108525f9ebef1e9f542682ea91151f36c78281 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Thu, 24 May 2012 21:39:12 +0200 Subject: [PATCH] use paths comparison --- .../compiler/server/BuildManager.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java b/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java index 44a9e6ab979b..5a0ba7439fb2 100644 --- a/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java @@ -58,6 +58,8 @@ import com.intellij.openapi.vfs.newvfs.events.VFileEvent; import com.intellij.util.Alarm; import com.intellij.util.messages.MessageBusConnection; import com.intellij.util.net.NetUtils; +import gnu.trove.THashSet; +import gnu.trove.TObjectHashingStrategy; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.*; import org.jboss.netty.channel.group.ChannelGroup; @@ -76,8 +78,7 @@ import org.jetbrains.jps.cmdline.BuildMain; import org.jetbrains.jps.server.ClasspathBootstrap; import org.jetbrains.jps.server.Server; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; +import javax.tools.*; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -845,8 +846,8 @@ public class BuildManager implements ApplicationComponent{ private static class ProjectData { final SequentialTaskExecutor taskQueue; - private final Set myChanged = new HashSet(); - private final Set myDeleted = new HashSet(); + private final Set myChanged = new THashSet(PathHashingStrategy.INSTANCE); + private final Set myDeleted = new THashSet(PathHashingStrategy.INSTANCE); private long myNextEventOrdinal = 0L; private boolean myNeedRescan = true; @@ -891,6 +892,20 @@ public class BuildManager implements ApplicationComponent{ myChanged.clear(); myDeleted.clear(); } + + static class PathHashingStrategy implements TObjectHashingStrategy { + static final PathHashingStrategy INSTANCE = new PathHashingStrategy(); + + @Override + public int computeHashCode(String path) { + return FileUtil.pathHashCode(path); + } + + @Override + public boolean equals(String path1, String path2) { + return FileUtil.pathsEqual(path1, path2); + } + } } }