Summary
While batch-transcribing the public OLiMPiC scanned test set (1,493 single-system pianoform scans, CC BY-SA, from ufal/olimpic-icdar24), 10 images belonging to 4 scores consistently crash in the GRID step with ArrayIndexOutOfBoundsException carrying a negative index. The sheet is then flagged as failed and -export refuses with "Could not export since transcription did not complete successfully" (exit code 1).
The remaining ~1,300 scans of the same corpus transcribe fine with the same binary and settings, and the crashes are reproducible per image. The affected images are normal-resolution scans (2,602–4,959 px wide), so this is not the documented low-interline refusal path (which we also observe on this corpus, but as an explicit, graceful refusal).
Environment
- Audiveris 5.10.2 (latest release), built from tag
5.10.2 (commit 1b7cf440) via gradlew :app:installDist
- Temurin JDK 25 (
JAVA_HOME), Windows 11 Pro
- Command per image:
Audiveris.bat -batch -export -output <out_dir> <image>.png
Variant A — SectionTally.getSubList, index -1 (2 images)
WARN GridBuilder.java:161 | Error in GridBuilder: java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 1219
java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 1219
at org.audiveris.omr.lag.SectionTally.getSubList(SectionTally.java:90)
at org.audiveris.omr.sheet.grid.LinesRetriever.includeStickers(LinesRetriever.java:955)
at org.audiveris.omr.sheet.grid.LinesRetriever.completeLines(LinesRetriever.java:536)
at org.audiveris.omr.sheet.grid.GridBuilder.buildInfo(GridBuilder.java:157)
at org.audiveris.omr.sheet.grid.GridStep.doit(GridStep.java:97)
at org.audiveris.omr.step.OmrStep.doit(OmrStep.java:138)
at org.audiveris.omr.sheet.SheetStub.lambda$doOneStep$0(SheetStub.java:503)
...
The failing length equals imageHeight + 1 (e.g. length 1219 for a 4426×1218 image, length 733 for 2616×732), so a section's position apparently resolves to y = -1 in the tally.
Variant B — AreaUtil.verticalCore / ByteProcessor.get, large negative index (8 images)
WARN GridBuilder.java:161 | Error in GridBuilder: java.lang.ArrayIndexOutOfBoundsException: Index -98660 out of bounds for length 6307848
java.lang.ArrayIndexOutOfBoundsException: Index -98660 out of bounds for length 6307848
at ij.process.ByteProcessor.get(ByteProcessor.java:251)
at org.audiveris.omr.math.AreaUtil.verticalCore(AreaUtil.java:153)
at org.audiveris.omr.sheet.grid.StaffProjector.createPeak(StaffProjector.java:656)
at org.audiveris.omr.sheet.grid.StaffProjector.browseRange(StaffProjector.java:287)
at org.audiveris.omr.sheet.grid.StaffProjector.findPeaksInRange(StaffProjector.java:910)
...
The failing length equals width × height of the image (e.g. 6,307,848 = 4959×1272), i.e. a probed pixel coordinate goes negative (y*width+x < 0) while sampling a vertical core inside StaffProjector.createPeak.
Affected images
All are from the OLiMPiC scanned test split (paths inside the dataset release; p{page}-s{system} naming):
| Dataset path |
Size (px) |
Variant |
Index / length |
| samples/5656522/p1-s1.png |
4426×1218 |
A |
-1 / 1219 |
| samples/6209602/p5-s3.png |
2616×732 |
A |
-1 / 733 |
| samples/6209602/p5-s4.png |
2604×742 |
B |
-16126 / 1932168 |
| samples/6209608/p4-s4.png |
2602×712 |
B |
-14670 / 1852624 |
| samples/6209608/p5-s4.png |
2637×730 |
B |
-21857 / 1925010 |
| samples/6302395/p1-s1.png |
4472×1206 |
B |
-5724 / 5393232 |
| samples/6302395/p5-s3.png |
4959×1194 |
B |
-1503 / 5921046 |
| samples/6302395/p6-s1.png |
4959×1310 |
B |
-19615 / 6496290 |
| samples/6302395/p6-s2.png |
4959×1272 |
B |
-98660 / 6307848 |
| samples/6302395/p7-s1.png |
4959×1220 |
B |
-13208 / 6049980 |
The images can be fetched from the datasets release of ufal/olimpic-icdar24 (license CC BY-SA); I can also attach individual PNGs or full per-image logs here on request.
Expected behavior
Either successful staff-grid retrieval, or a graceful per-sheet failure/refusal (as happens with the low-interline check) instead of an uncaught ArrayIndexOutOfBoundsException that aborts transcription of the sheet.
Possibly related
#711 and #750 also report ArrayIndexOutOfBoundsException on pixel buffers, but with positive indices slightly past the buffer end and different frames — filing separately since both signatures here have negative indices rooted in SectionTally.getSubList / AreaUtil.verticalCore during GRID.
Context, if useful: these crashes surfaced in a systematic benchmark of Audiveris 5.10.2 as a baseline over the full OLiMPiC scanned test set (1,493 images); 10/1,493 images fail with the above signatures, deterministically per image.
Summary
While batch-transcribing the public OLiMPiC scanned test set (1,493 single-system pianoform scans, CC BY-SA, from ufal/olimpic-icdar24), 10 images belonging to 4 scores consistently crash in the GRID step with
ArrayIndexOutOfBoundsExceptioncarrying a negative index. The sheet is then flagged as failed and-exportrefuses with "Could not export since transcription did not complete successfully" (exit code 1).The remaining ~1,300 scans of the same corpus transcribe fine with the same binary and settings, and the crashes are reproducible per image. The affected images are normal-resolution scans (2,602–4,959 px wide), so this is not the documented low-interline refusal path (which we also observe on this corpus, but as an explicit, graceful refusal).
Environment
5.10.2(commit1b7cf440) viagradlew :app:installDistJAVA_HOME), Windows 11 ProVariant A —
SectionTally.getSubList, index -1 (2 images)The failing length equals
imageHeight + 1(e.g. length 1219 for a 4426×1218 image, length 733 for 2616×732), so a section's position apparently resolves to y = -1 in the tally.Variant B —
AreaUtil.verticalCore/ByteProcessor.get, large negative index (8 images)The failing length equals
width × heightof the image (e.g. 6,307,848 = 4959×1272), i.e. a probed pixel coordinate goes negative (y*width+x < 0) while sampling a vertical core insideStaffProjector.createPeak.Affected images
All are from the OLiMPiC scanned test split (paths inside the dataset release;
p{page}-s{system}naming):The images can be fetched from the
datasetsrelease of ufal/olimpic-icdar24 (license CC BY-SA); I can also attach individual PNGs or full per-image logs here on request.Expected behavior
Either successful staff-grid retrieval, or a graceful per-sheet failure/refusal (as happens with the low-interline check) instead of an uncaught
ArrayIndexOutOfBoundsExceptionthat aborts transcription of the sheet.Possibly related
#711 and #750 also report
ArrayIndexOutOfBoundsExceptionon pixel buffers, but with positive indices slightly past the buffer end and different frames — filing separately since both signatures here have negative indices rooted inSectionTally.getSubList/AreaUtil.verticalCoreduring GRID.Context, if useful: these crashes surfaced in a systematic benchmark of Audiveris 5.10.2 as a baseline over the full OLiMPiC scanned test set (1,493 images); 10/1,493 images fail with the above signatures, deterministically per image.