Author: lehmi
Date: Sun Sep 28 10:25:04 2025
New Revision: 1928805
Log:
PDFBOX-6079: close input stream to avoid a resource leak
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
Sun Sep 28 08:30:20 2025 (r1928804)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
Sun Sep 28 10:25:04 2025 (r1928805)
@@ -480,7 +480,7 @@ public class CMapParser
{
throw new IOException("Error: Could not find referenced cmap
stream " + name);
}
- return new RandomAccessReadBuffer(is);
+ return RandomAccessReadBuffer.createBufferFromStream(is);
}
private Object parseNextToken(RandomAccessRead randomAcccessRead) throws
IOException
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Sun Sep 28 08:30:20 2025 (r1928804)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Sun Sep 28 10:25:04 2025 (r1928805)
@@ -122,8 +122,8 @@ final class FontMapperImpl implements Fo
{
throw new IOException("resource '" + resourceName + "' not
found");
}
- RandomAccessReadBuffer randomAccessReadBuffer = new
RandomAccessReadBuffer(
- resourceAsStream);
+ RandomAccessReadBuffer randomAccessReadBuffer =
RandomAccessReadBuffer
+ .createBufferFromStream(resourceAsStream);
TTFParser ttfParser = new TTFParser();
lastResortFont = ttfParser.parse(randomAccessReadBuffer);
}
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
Sun Sep 28 08:30:20 2025 (r1928804)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
Sun Sep 28 10:25:04 2025 (r1928805)
@@ -195,11 +195,13 @@ public class PDTrueTypeFont extends PDSi
/**
* Loads a TTF to be embedded into a document as a simple font.
*
- * <p><b>Note:</b> Simple fonts only support 256 characters. For Unicode
support, use
- * {@link PDType0Font#load(PDDocument, InputStream)} instead.</p>
+ * <p>
+ * <b>Note:</b> Simple fonts only support 256 characters. For Unicode
support, use
+ * {@link PDType0Font#load(PDDocument, InputStream)} instead.
+ * </p>
*
* @param doc The PDF document that will hold the embedded font.
- * @param input A TTF file stream
+ * @param input A TTF file stream. It will be closed before returning.
* @param encoding The PostScript encoding vector to be used for embedding.
* @return a PDTrueTypeFont instance.
* @throws IOException If there is an error loading the data.
@@ -207,7 +209,7 @@ public class PDTrueTypeFont extends PDSi
public static PDTrueTypeFont load(PDDocument doc, InputStream input,
Encoding encoding)
throws IOException
{
- return load(doc, new RandomAccessReadBuffer(input), encoding);
+ return load(doc, RandomAccessReadBuffer.createBufferFromStream(input),
encoding);
}
/**
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
Sun Sep 28 08:30:20 2025 (r1928804)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
Sun Sep 28 10:25:04 2025 (r1928805)
@@ -182,7 +182,7 @@ public class PDType0Font extends PDFont
public static PDType0Font load(PDDocument doc, InputStream input, boolean
embedSubset)
throws IOException
{
- return load(doc, new RandomAccessReadBuffer(input), embedSubset,
false);
+ return load(doc, RandomAccessReadBuffer.createBufferFromStream(input),
embedSubset, false);
}
/**
@@ -236,20 +236,20 @@ public class PDType0Font extends PDFont
* Loads a TTF to be embedded into a document as a vertical Type 0 font.
*
* @param doc The PDF document that will hold the embedded font.
- * @param input A TrueType font.
+ * @param input A TrueType font. It will be closed before returning.
* @return A Type0 font with a CIDFontType2 descendant.
* @throws IOException If there is an error reading the font stream.
*/
public static PDType0Font loadVertical(PDDocument doc, InputStream input)
throws IOException
{
- return load(doc, new RandomAccessReadBuffer(input), true, true);
+ return load(doc, RandomAccessReadBuffer.createBufferFromStream(input),
true, true);
}
/**
* Loads a TTF to be embedded into a document as a vertical Type 0 font.
*
* @param doc The PDF document that will hold the embedded font.
- * @param input A TrueType font.
+ * @param input A TrueType font. It will be closed before returning.
* @param embedSubset True if the font will be subset before embedding
* @return A Type0 font with a CIDFontType2 descendant.
* @throws IOException If there is an error reading the font stream.
@@ -257,7 +257,7 @@ public class PDType0Font extends PDFont
public static PDType0Font loadVertical(PDDocument doc, InputStream input,
boolean embedSubset)
throws IOException
{
- return load(doc, new RandomAccessReadBuffer(input), embedSubset, true);
+ return load(doc, RandomAccessReadBuffer.createBufferFromStream(input),
embedSubset, true);
}
/**