Я вижу, что эта проблема уже была сообщена сопровождающим библиотеки;
см https://github.com/LibrePDF/OpenPDF/issues/101.
Пока вы можете игнорировать сообщение, так как это всего лишь предупреждение.
Могу ли я заменить класс MappedRandomAccessFile
некоторым похожим кодом в поддерживаемой библиотеке Java?
Никто не остановит вас :-) Но если вы просите рекомендацию, это не по теме.
Другой вариант - подождать, пока сопровождающие LibrePDF исправят это.
Однако я подозреваю, что они не ... потому что не могут. Вам следует взглянуть на этот неразрешенный отчет об ошибках Java за 2005 год: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4724038. Я думаю, это означает, что MappedRandomAccessFile
можно исправить только путем исправления ошибки Java ..., которая делает недопустимый вызов cleaner()
ненужно.
После еще нескольких копаний я нашел это:
Это описывает проблему, когда GC мог призвать уборщика не «идти в ногу», что привело к преждевременным OOME. Это было исправлено в Java 9, а исправление было исправлено в Java 8 & 7.
Что вам нужно сделать, это просмотреть историю и проблемы вашей кодовой базы и попытаться выяснить, почему «чистый» код был включен в ваш класс MappedRandomAccessFile
. Если это было прежде всего для решения проблемы JDK-6857566, то вы должны быть в состоянии удалить его сейчас.