- SonarQube 8.9.1 + maven sonar plugin 3.9.0.2155
package com.example;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
public class ExampleInterrupt {
private static final BlockingQueue<Delayed> queue = new DelayQueue<>();
public void doSomething() {
try {
queue.poll(1, TimeUnit.SECONDS);
} catch (InterruptedException e) {
System.out.println("Interrupted");
Thread.currentThread().interrupt();
}
}
}
Sonar raises S2142 rule violation also if Thread.currentThread().interrupt(); is called in the catch block.