Author: tilman Date: Wed Aug 20 09:35:54 2025 New Revision: 1927910 Log: PDFBOX-6053: catch negative MCID
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java Wed Aug 20 09:35:49 2025 (r1927909) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java Wed Aug 20 09:35:54 2025 (r1927910) @@ -98,6 +98,10 @@ public class PDMarkedContentReference im */ public void setMCID(int mcid) { + if (mcid < 0) + { + throw new IllegalArgumentException("MCID is negative"); + } this.getCOSObject().setInt(COSName.MCID, mcid); } Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java ============================================================================== --- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java Wed Aug 20 09:35:49 2025 (r1927909) +++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java Wed Aug 20 09:35:54 2025 (r1927910) @@ -177,7 +177,8 @@ class PDStructureElementTest PDMarkedContent mc2 = PDMarkedContent.create(COSName.S, mcr2.getCOSObject()); structureElement.appendKid(mc2); PDMarkedContentReference mcrSubZero = new PDMarkedContentReference(); - mcrSubZero.setMCID(-1); //TODO should fail + assertThrows(IllegalArgumentException.class, () -> mcrSubZero.setMCID(-1)); + mcrSubZero.getCOSObject().setInt(COSName.MCID, -1); PDMarkedContent mcSubZero = PDMarkedContent.create(COSName.S, mcrSubZero.getCOSObject()); assertThrows(IllegalArgumentException.class, () -> structureElement.appendKid(mcSubZero)); List<Object> kids = structureElement.getKids();