Почему current thread is not owner? Мьютекс захвачен !
Задачу решил, но не так как в правильном решении.
Что такое mail.wait mail.notify почему не просто notify?
synchronized (mail) {
String name = Thread.currentThread().getName();
try {
while (mail.getText() == null) {
wait();
}
long endTime = System.currentTimeMillis();
System.out.format("%s MailServer received: [%s] in %d ms after start", name, mail.getText(), (endTime - startTime));
} catch (InterruptedException e) {
e.printStackTrace();
}
}