Author: tilman Date: Wed Aug 20 09:35:59 2025 New Revision: 1927911 Log: PDFBOX-6053: catch negative MCID
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java Wed Aug 20 09:35:54 2025 (r1927910) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java Wed Aug 20 09:35:59 2025 (r1927911) @@ -102,6 +102,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/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java Wed Aug 20 09:35:54 2025 (r1927910) +++ pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java Wed Aug 20 09:35:59 2025 (r1927911) @@ -195,7 +195,16 @@ public class PDStructureElementTest PDMarkedContent mc2 = PDMarkedContent.create(COSName.S, mcr2.getCOSObject()); structureElement.appendKid(mc2); PDMarkedContentReference mcrSubZero = new PDMarkedContentReference(); - mcrSubZero.setMCID(-1); //TODO should fail + try + { + mcrSubZero.setMCID(-1); + fail("Should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException ex) + { + // ok + } + mcrSubZero.getCOSObject().setInt(COSName.MCID, -1); PDMarkedContent mcSubZero = PDMarkedContent.create(COSName.S, mcrSubZero.getCOSObject()); try {