diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/FSState.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/FSState.java index 066ec35812aa..a2ec11bd1ba7 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/FSState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/FSState.java @@ -24,7 +24,12 @@ public class FSState { private volatile FilesDelta myCurrentRoundDelta; private volatile FilesDelta myLastRoundDelta; - public FSState() { + // when true, will always determine dirty files by scanning FS and comparing timestamps + // alternatively, when false, after first scan will rely on extarnal notifications about changes + private final boolean myAlwaysScanFS; + + public FSState(boolean alwaysScanFS) { + myAlwaysScanFS = alwaysScanFS; } public void onRebuild() { @@ -35,6 +40,9 @@ public class FSState { } public boolean markInitialScanPerformed(Module module, boolean forTests) { + if (myAlwaysScanFS) { + return true; + } final Set map = forTests ? myInitialTestsScanPerformed : myInitialProductionScanPerformed; return map.add(module); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/server/ServerState.java b/jps/jps-builders/src/org/jetbrains/jps/server/ServerState.java index 7e96b8ef018a..6fedae65e1a3 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/server/ServerState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/server/ServerState.java @@ -125,7 +125,7 @@ class ServerState { pd = myProjects.get(projectPath); if (pd == null) { final Project project = loadProject(projectPath, params); - final FSState fsState = new FSState(); + final FSState fsState = new FSState(false); ProjectTimestamps timestamps = null; BuildDataManager dataManager = null; try {