import java.io.Serializable;
class A {
{
Thread t = new Thread(new B());
t.run(); // Noncompliant
}
public static void main(String[] args) {
Runnable runnable = null;
Thread myThread = new Thread(runnable);
myThread.run(); // Noncompliant [[sc=14;ec=17]] {{Call the method Thread.start() to execute the content of the run() method in a dedicated thread.}}
Thread myThread2 = new Thread(runnable);
myThread2.start();
run();
A a = new A();
a.run();
B b = new B();
b.run(); // Noncompliant
C c = new C();
c.run(); // Compliant
D d = new D();
d.run(); // Noncompliant
E e = new E();
e.run();
F f = new F();
f.run();
runnable.run(); // Compliant
}
public static void run() {
}
static class B extends Thread {
}
static class C implements Runnable {
@Override
public void run() {
}
}
static class D extends B {
@Override
public void run() {
C c = new C();
c.run(); // compliant, within run method
super.run(); // compliant, within run method
}
}
static class E implements Serializable {
public void run() {
}
}
static class F extends E {
}
}