boolean (BuildRootDescriptor root, File file) { lockData(); try { String path = null; final boolean isMarkedDeleted = !myDeletedPaths.isEmpty() && myDeletedPaths.contains(path = FileUtil.toCanonicalPath(file.getPath())); if (!isMarkedDeleted) { if (!file.exists()) { // incorrect paths data recovery, so that the next make should not contain non-existing sources in 'recompile' list if (path == null) { path = FileUtil.toCanonicalPath(file.getPath()); } if (Utils.IS_TEST_MODE) { LOG.info("Marking deleted: " + path); } myDeletedPaths.add(path); return false; } _addToRecompiled(root, file); return true; } return false; } finally { unlockData(); } }