From 5569825bbc13b870cb947a83d3811b520c4c93ba Mon Sep 17 00:00:00 2001 From: Tilman Hausherr Date: Fri, 2 Aug 2024 03:55:53 +0000 Subject: [PATCH] PDFBOX-5859: avoid NPE or StringIndexOutOfBoundsException git-svn-id: https://svn.apache.org/repos/asf/pdfbox/trunk@1919633 13f79535-47bb-0310-9956-ffa450edef68 --- .../pdmodel/interactive/form/AppearanceGeneratorHelper.java | 4 ++++ .../pdfbox/pdmodel/interactive/form/CombAlignmentTest.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java index 72118821d68..7dedfcd86d7 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java @@ -717,6 +717,10 @@ private boolean shallComb() private void insertGeneratedCombAppearance(PDAppearanceContentStream contents, PDAppearanceStream appearanceStream, PDFont font, float fontSize) throws IOException { + if (value == null || value.isEmpty()) + { + return; + } int maxLen = ((PDTextField) field).getMaxLen(); int quadding = field.getQ(); int numChars = Math.min(value.length(), maxLen); diff --git a/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/CombAlignmentTest.java b/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/CombAlignmentTest.java index 630b2c3f960..288f7fecfa3 100644 --- a/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/CombAlignmentTest.java +++ b/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/CombAlignmentTest.java @@ -50,10 +50,13 @@ void testCombFields() throws IOException { PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm(); PDField field = acroForm.getField("PDFBoxCombLeft"); + field.setValue(""); field.setValue(TEST_VALUE); field = acroForm.getField("PDFBoxCombMiddle"); + field.setValue(""); field.setValue(TEST_VALUE); field = acroForm.getField("PDFBoxCombRight"); + field.setValue(""); field.setValue(TEST_VALUE); // compare rendering File file = new File(OUT_DIR, NAME_OF_PDF);