JUnit assertions should not be made from the run method of a thread, because failed assertions result in AssertionErrors being thrown. If the error is thrown from a thread other than the one that ran the test, the thread will exit but the test won't fail.
public void run() {
// ...
Assert.assertEquals(expected, actual); // Noncompliant
}