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
{