diff --git a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java index d57ab7699a4..94825a880f8 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java @@ -1556,6 +1556,14 @@ public void close() throws IOException { LOG.warn("You did not call endText(), some viewers won't display your text"); } + + // Release large data structures immediately so the GC can reclaim memory + // even if callers hold a reference to this COSDocument instance. + fontStack.clear(); + nonStrokingColorSpaceStack.clear(); + strokingColorSpaceStack.clear(); + gsubWorkers.clear(); + outputStream.close(); }