XADisk - Попытка сохранить байтовый массив в файл

Всякий раз, когда я пытаюсь сохранить байт [] в файл, используя XADisk, я получаю исключение XASystemNoMoreAvailableException:

org.xadisk.filesystem.exceptions.XASystemNoMoreAvailableException: экземпляр XADisk обнаружил критическую проблему и больше не доступен. Такое состояние очень редко. Если вы считаете, что настроили все правильно для работы XADisk, рассмотрите возможность обсуждения на форумах XADisk или сообщения об ошибке с подробностями.

Мой код настолько прост, насколько я могу судить, основываясь на примерах...

public static void main(String[] args) throws Exception
{
    StandaloneFileSystemConfiguration configuration = new StandaloneFileSystemConfiguration("xadiskFolder", "1");
    XAFileSystem XAF = XAFileSystemProxy.bootNativeXAFileSystem(configuration);
    XAF.waitForBootup(-1);

    Session session = XAF.createSessionForLocalTransaction();

    byte[] myByteArray = getByteArrayFromSomewhere();

    File myFile = new File("outputFile.test");
    session.createFile(myFile, false);
    XAFileOutputStream output = session.createXAFileOutputStream(myFile, true);
    output.write(myByteArray);
    output.close();
    session.commit();
}

1 ответ

Глупая ошибка!!

Это исключение может возникнуть, если вы позвоните

XAF.shutdown();

прежде чем пытаться писать / читать в файл. В моем реальном коде у меня была попытка / catch / finally с блоком finally, содержащим код для отключения xadisk, а не в catch. Не спрашивай меня почему. В любом случае, потому что xadisk был уже выключен, это привело к ошибке.

Что бы я порекомендовал людям в xadisk, если это вообще возможно, это улучшить исключение в обновлении. По сути, что-то говорит о том, что двигатель не работает или уже выключен. Да, это была моя вина, но было бы замечательно также иметь лучшее сообщение об исключении.

Другие вопросы по тегам