You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2025/08/20 09:35:50 UTC
svn commit: r1927909 - in pdfbox/branches/3.0/pdfbox/src: main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure
Author: tilman
Date: Wed Aug 20 09:35:49 2025
New Revision: 1927909
Log:
PDFBOX-6053: catch negative MCID
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java Wed Aug 20 08:49:01 2025 (r1927908)
+++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java Wed Aug 20 09:35:49 2025 (r1927909)
@@ -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/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java Wed Aug 20 08:49:01 2025 (r1927908)
+++ pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java Wed Aug 20 09:35:49 2025 (r1927909)
@@ -178,7 +178,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();