diff --git a/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java b/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java index 0998f1a9b36..9f73947f614 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java @@ -485,6 +485,12 @@ public void close() throws IOException } closed = true; + // Release large data structures immediately so the GC can reclaim memory + // even if callers hold a reference to this COSDocument instance. + objectPool.clear(); + xrefTable.clear(); + trailer = null; + // rethrow first exception to keep method contract if (firstException != null) {