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 &quot;String.trim()&quot; because the return value of &quot;java.io.RandomAccessFile.readLine()&quot; is null" type="java.lang.NullPointerException">java.lang.NullPointerException: Cannot invoke &quot;String.trim()&quot; because the return value of &quot;java.io.RandomAccessFile.readLine()&quot; is null
	at edu.msu.cme.rdp.readseq.readers.core.STKCore.&lt;init&gt;(STKCore.java:46)
	at edu.msu.cme.rdp.readseq.utils.SeqUtils.getSeqReaderCore(SeqUtils.java:272)
	at edu.msu.cme.rdp.readseq.readers.SequenceReader.&lt;init&gt;(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.

Merge request reports

Loading