diff options
Diffstat (limited to 'jps/jps-builders/src/org/jetbrains/jps/incremental')
-rw-r--r-- | jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java | 2 | ||||
-rw-r--r-- | jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java index 63e538022160..d52e1e6a0132 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java @@ -151,7 +151,7 @@ public class FSOperations { } } - public static void processFilesToRecompile(CompileContext context, ModuleBuildTarget target, FileProcessor<JavaSourceRootDescriptor, ModuleBuildTarget> processor) throws IOException { + public static void processFilesToRecompile(CompileContext context, @NotNull ModuleBuildTarget target, FileProcessor<JavaSourceRootDescriptor, ModuleBuildTarget> processor) throws IOException { context.getProjectDescriptor().fsState.processFilesToRecompile(context, target, processor); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java index e92c0d59a3b0..bb28c422044b 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java @@ -145,13 +145,17 @@ public class BuildFSState extends FSState { setRoundDelta(CURRENT_ROUND_DELTA_KEY, context, new FilesDelta()); } - public <R extends BuildRootDescriptor, T extends BuildTarget<R>> boolean processFilesToRecompile(CompileContext context, final T target, final FileProcessor<R, T> processor) throws IOException { + public <R extends BuildRootDescriptor, T extends BuildTarget<R>> boolean processFilesToRecompile(CompileContext context, final @NotNull T target, final FileProcessor<R, T> processor) throws IOException { final Map<BuildRootDescriptor, Set<File>> data = getSourcesToRecompile(context, target); final CompileScope scope = context.getScope(); synchronized (data) { for (Map.Entry<BuildRootDescriptor, Set<File>> entry : data.entrySet()) { //noinspection unchecked R root = (R)entry.getKey(); + if (!target.equals(root.getTarget())) { + // the data can contain roots from other targets (e.g. when compiling module cycles) + continue; + } for (File file : entry.getValue()) { if (!scope.isAffected(target, file)) { continue; |