Resolve Java 25 ftbfs
This MR resolves #1128172.
The library relies on RandomAccessFile API but reading large files using RandomAccessFile directly is slow - upstream provided a buffering class that extended RandomAccessFile. The class partially overriden RAF method, creating a dependency on the OpenJDK implementation of RandomAccessFile. This caused the following test failure:
<testcase classname="edu.msu.cme.rdp.readseq.readers.SeqFileReaderTest" name="testReadSTKFile" time="0.002">
<error message="Cannot invoke "String.trim()" because the return value of "java.io.RandomAccessFile.readLine()" is null" type="java.lang.NullPointerException">java.lang.NullPointerException: Cannot invoke "String.trim()" because the return value of "java.io.RandomAccessFile.readLine()" is null
at edu.msu.cme.rdp.readseq.readers.core.STKCore.<init>(STKCore.java:46)
at edu.msu.cme.rdp.readseq.utils.SeqUtils.getSeqReaderCore(SeqUtils.java:272)
at edu.msu.cme.rdp.readseq.readers.SequenceReader.<init>(SequenceReader.java:46)
at edu.msu.cme.rdp.readseq.readers.SeqFileReaderTest.testReadSTKFile(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
</error>
</testcase>
The MR provides a patch with an alternative implementation that aggregates RandomAccessFile.
Changes:
- d/p/random-access-file.patch: provide alternative implementation of BufferedRandomAccessFile.
Testing:
- rebuild in sid chroot
- rebuild in sid chroot with Java 25 default
- rebuild of rdp-alignment against this version of rdp-readseq in sid chroot with Java 25 default.