import java.nio.channels.OverlappingFileLockException;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.nio.file.attribute.DosFileAttributeView;
public class ProjectLock implements Startable {
private static final Logger LOG = LoggerFactory.getLogger(ProjectLock.class);
try {
lockRandomAccessFile = new RandomAccessFile(lockFilePath.toFile(), "rw");
lockChannel = lockRandomAccessFile.getChannel();
- hideLockFileWindows(lockFilePath);
lockFile = lockChannel.tryLock(0, 1024, false);
if (lockFile == null) {
}
}
- private static void hideLockFileWindows(Path p) {
- try {
- DosFileAttributeView fileAttrView = Files.getFileAttributeView(p, DosFileAttributeView.class);
- if (fileAttrView != null) {
- fileAttrView.setHidden(true);
- }
- } catch (IOException e) {
- throw new IllegalStateException("Failed to hide file: " + p.toString(), e);
- }
- }
-
private static void failAlreadyInProgress(Exception e) {
throw new IllegalStateException("Another SonarQube analysis is already in progress for this project", e);
}
private static final Logger LOG = LoggerFactory.getLogger(FileIndexer.class);
private static final IOFileFilter DIR_FILTER = FileFilterUtils.and(HiddenFileFilter.VISIBLE, FileFilterUtils.notFileFilter(FileFilterUtils.prefixFileFilter(".")));
- private static final IOFileFilter FILE_FILTER = HiddenFileFilter.VISIBLE;
+ private static final IOFileFilter FILE_FILTER = FileFilterUtils.and(HiddenFileFilter.VISIBLE, FileFilterUtils.notFileFilter(FileFilterUtils.nameFileFilter(".sonar_lock")));
private final List<InputFileFilter> filters;
private final boolean isAggregator;