Java конструктор зависает - PullRequest
       1

Java конструктор зависает

0 голосов
/ 03 февраля 2020

У меня действительно странная проблема, решение которой я не могу найти. У меня есть Java класс, который расширяет поток. Я создаю его экземпляр (из потока ThreadPoolExecutor) и запускаю start(). Однако выполнение просто зависает и никогда не возвращается из конструктора, несмотря на то, что его первый оператор не выполняется.

Вот единственный конструктор, объявленный в классе:

public class Recorder extends Thread{

private String channelId;
private RecorderCallback recorderCallback;
public Recorder(String channelId, String workingDirectory, RecorderCallback RecorderCallback){
    //super();
    try{
        System.out.println(getCurrentTimeStamp() + " DEBUG new recorder: " + channelId + " | " + workingDirectory);
        this.channelId = channelId;
        String timeString = new SimpleDateFormat("dd.MM.yyyy-HHmmss").format(new Date());
        this.directory = timeString + "_" + channelId;
        new File(workingDirectory + File.separator + directory).mkdirs();
    } catch (Exception exception){
        System.out.println(getCurrentTimeStamp() + " An unexpected exception occurred: " + exception.getMessage());
        exception.printStackTrace();
    } finally {
        System.out.println(getCurrentTimeStamp() + " DEBUG FINALLY called in CONSTRUCTOR");
    }
}

Вот точка, в которой я инициализируйте и запустите новый Recorder (который НЕ обернут в блок try / catch, а метод, в котором этот код не объявлен, не генерирует никаких исключений):

System.out.println(getCurrentTimeStamp() + " Creating new recorder [" + channelId + "]");
Recorder recorder = new Recorder(channelId, Constants.RECORDING_WORKING_DIR, this);
System.out.println(getCurrentTimeStamp() + " DEBUG Instance created"));
recorder.start();

Когда я запускаю приложение Я получаю этот след:

[timestamp] Creating new recorder [channelname]

Никаких других выходных данных вообще. Я использую OpenJDK 1.8.0_242.

Проблема в том, что печать не обрабатывается? Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...