Summary
The cd-x86-lite build fails inside the jiic-iso step (de.tu_darmstadt.informatik.rbg.hatlak.iso9660.ISOTask, wired in all/build-x86.xml:339-347) with java.lang.StringIndexOutOfBoundsException: String index out of range: 59 when the ISO staging tree contains on the order of ~1000 small files (a mauve testlet package tree staged under all/build/x86/cdrom-lite/ox/mauve/).
Environment
- JNode
0.2.9-dev tree, host JDK 1.6.0_45, sh build.sh cd-x86-lite
- Observed 2026-09-17
Reproduction
- Populate the lite-CD staging dir with a deep tree of small files, e.g.:
cp -r /tmp/jars/mauve/gnu/testlet/java/{io,lang,math,text,util} \
all/build/x86/cdrom-lite/ox/mauve/gnu/testlet/java/
# (~1000 .class files, ~4 MB total)
sh build.sh cd-x86-lite
- Build fails:
[jiic-iso] Rock Ridge support enabled.
[jiic-iso] Joliet support enabled.
[jiic-iso] El Torito support enabled.
[jiic-iso] java.lang.StringIndexOutOfBoundsException: String index out of range: 59
... (ant stack through all/build-x86.xml:347 <- all/build-x86.xml:376 <- all/build.xml:591)
BUILD FAILED
Removing the big tree (back to ~100 loose files) makes the same build succeed, so it is content/shape-dependent — likely the vendored ISO writer's 8.3 name-mangling or path handling tripping over a specific filename or the entry count (note the guest-side ISO9660 reader has a related deep-directory blind spot; the two may share filename assumptions).
Expected behavior
Either the tree is mastered correctly regardless of size/shape, or the task fails with a message naming the offending path (not a bare index exception).
Workaround
Keep staged file counts small and flat (we stage per-testlet loose files + one explicitly-listed sibling class instead of whole package trees).
Impact
Caps what can be shipped on the test CD (no bulk test corpora), forcing fragile per-file staging maintenance in local/mk-ox-iso.sh-style flows.
Triage Addendum (auto, 2026-09-24)
- Area / Kind: area/builder (best match) / kind/bug
- Blast radius: L5 system (ISO creation path; exact writer failure boundary unconfirmed)
- Expected scope: tentative: isolate and fix ISO writer path/name handling or improve failure reporting; exclude the guest ISO9660 reader pending reproduction
- Test path:
sh build.sh cd-x86-lite with a deterministic large staging tree, then inspect/boot the generated ISO
- Merge signal: human-review (bug on the L5 ISO artifact path; writer source and failure boundary not yet established)
- Gaps: blocking: exact revision/clean setup, reproducible input source, full ISOTask stack, and host/backend selection
- Full report:
## Triage comment below.
✅ Ticket Runner Status
| Field |
Value |
| Phase |
DONE |
| Turn |
0/3 |
| Retries |
1/3 |
| PR |
- |
| Started |
2026-09-25T05:57:21.178Z |
Summary
The
cd-x86-litebuild fails inside thejiic-isostep (de.tu_darmstadt.informatik.rbg.hatlak.iso9660.ISOTask, wired inall/build-x86.xml:339-347) withjava.lang.StringIndexOutOfBoundsException: String index out of range: 59when the ISO staging tree contains on the order of ~1000 small files (a mauve testlet package tree staged underall/build/x86/cdrom-lite/ox/mauve/).Environment
0.2.9-devtree, host JDK 1.6.0_45,sh build.sh cd-x86-liteReproduction
sh build.sh cd-x86-liteRemoving the big tree (back to ~100 loose files) makes the same build succeed, so it is content/shape-dependent — likely the vendored ISO writer's 8.3 name-mangling or path handling tripping over a specific filename or the entry count (note the guest-side ISO9660 reader has a related deep-directory blind spot; the two may share filename assumptions).
Expected behavior
Either the tree is mastered correctly regardless of size/shape, or the task fails with a message naming the offending path (not a bare index exception).
Workaround
Keep staged file counts small and flat (we stage per-testlet loose files + one explicitly-listed sibling class instead of whole package trees).
Impact
Caps what can be shipped on the test CD (no bulk test corpora), forcing fragile per-file staging maintenance in
local/mk-ox-iso.sh-style flows.Triage Addendum (auto, 2026-09-24)
sh build.sh cd-x86-litewith a deterministic large staging tree, then inspect/boot the generated ISO## Triagecomment below.✅ Ticket Runner Status