Почему Chronicle Queue удерживает файлы в течение секунды после закрытия? - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь запустить некоторые тесты junit очереди хроники с использованием аннотации TempDir, но тест не пройден, потому что очередь хроники не отпускает файлы до того, как junit очищает временный каталог, что приводит к сбою теста.

Мое временное решение - просто Thread.sleep (1000) до окончания теста, но я бы не стал этого делать. Также кажется, что это проблема только для windows.

    @TempDir
    File temporaryDir;

    @Test
    public void testCQ() throws Exception {
        ChronicleQueue cq = ChronicleQueue.singleBuilder(temporaryDir.getPath())
                .wireType(WireType.BINARY_LIGHT)
                .blockSize(128)
                .bufferCapacity(128L)
                .build();

        try(final DocumentContext dc = cq.acquireAppender().writingDocument()) {
            final Wire wire = dc.wire();
            wire.write("test").text("test");
        }

        cq.close();
        Thread.sleep(1000)
    }

"java.io.IOException: Не удалось удалить временный каталог. Следующие пути не могут быть удалены (подробности см. В исключенных исключениях):, 20191106.cq4, metadata.cq4t "

" Процесс не может получить доступ к файлу, поскольку он используется другим процессом. "

...