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, если это вообще возможно, это улучшить исключение в обновлении. По сути, что-то говорит о том, что двигатель не работает или уже выключен. Да, это была моя вина, но было бы замечательно также иметь лучшее сообщение об исключении.