diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java index 471695f888c5..0eb5205004a9 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java @@ -331,17 +331,15 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler } private void traverseRecursively(final RootDescriptor rd, final File file, Set excludes, @NotNull final TimestampStorage tsStorage, final boolean forceDirty, @Nullable Set currentFiles) throws IOException { - if (file.isDirectory()) { - if (!PathUtil.isUnder(excludes, file)) { - final File[] children = file.listFiles(); - if (children != null) { - for (File child : children) { - traverseRecursively(rd, child, excludes, tsStorage, forceDirty, currentFiles); - } + final File[] children = file.listFiles(); + if (children != null) { // is directory + if (children.length > 0 && !PathUtil.isUnder(excludes, file)) { + for (File child : children) { + traverseRecursively(rd, child, excludes, tsStorage, forceDirty, currentFiles); } } } - else { + else { // is file boolean markDirty = forceDirty; if (!markDirty) { markDirty = tsStorage.getStamp(file) != file.lastModified();