From 7e9eaf963bc09c26bb7358d99254297191ec2b7a Mon Sep 17 00:00:00 2001 From: nik Date: Fri, 20 Dec 2013 19:12:28 +0400 Subject: [PATCH] fixed problem mentioned in CR-IC-3742 --- .../jetbrains/jps/incremental/BuildOperations.java | 4 ++-- .../jps/incremental/IncProjectBuilder.java | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java index a195aa33d0cb..1a25b32c3bbd 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java @@ -207,9 +207,9 @@ public class BuildOperations { public static boolean deleteRecursively(@NotNull String path, @NotNull Collection deletedPaths, @Nullable Set parentDirs) { File file = new File(path); boolean deleted = deleteRecursively(file, deletedPaths); - if (deleted) { + if (deleted && parentDirs != null) { File parent = file.getParentFile(); - if (parent != null && parentDirs != null) { + if (parent != null) { parentDirs.add(parent); } } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java index 0aa5b523b2ef..c5ad17b3c4c7 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -446,7 +446,9 @@ public class IncProjectBuilder { for (String out : outs) { BuildOperations.deleteRecursively(out, deletedPaths, dirsToDelete); } - context.processMessage(new FileDeletedEvent(deletedPaths)); + if (!deletedPaths.isEmpty()) { + context.processMessage(new FileDeletedEvent(deletedPaths)); + } } } registerTargetsWithClearedOutput(context, Collections.singletonList(target)); @@ -959,18 +961,20 @@ public class IncProjectBuilder { for (String deletedSource : pathsForIteration) { // deleting outputs corresponding to non-existing source final Collection outputs = sourceToOutputStorage.getOutputs(deletedSource); - List deletedOutputPaths = new ArrayList(); if (outputs != null && !outputs.isEmpty()) { + List deletedOutputPaths = new ArrayList(); for (String output : outputs) { final boolean deleted = BuildOperations.deleteRecursively(output, deletedOutputPaths, shouldPruneEmptyDirs ? dirsToDelete : null); if (deleted) { doneSomething = true; } } - if (logger.isEnabled()) { - logger.logDeletedFiles(deletedOutputPaths); + if (!deletedOutputPaths.isEmpty()) { + if (logger.isEnabled()) { + logger.logDeletedFiles(deletedOutputPaths); + } + context.processMessage(new FileDeletedEvent(deletedOutputPaths)); } - context.processMessage(new FileDeletedEvent(deletedOutputPaths)); } if (target instanceof ModuleBuildTarget) {