[ 
https://issues.apache.org/jira/browse/PDFBOX-3826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andreas Lehmkühler resolved PDFBOX-3826.
----------------------------------------
    Resolution: Fixed

The behaviour was adjusted as follows:
- PDFBox closes all resources which are created by PDFBox itself
- All instances of TrueTypeFont which are passed by the user won't be closed 
anymore

Set to resolved

> NPE if RAFDataStream.getCurrentPosition() when TrueTypeFont created from file 
> is reused
> ---------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-3826
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3826
>             Project: PDFBox
>          Issue Type: Bug
>          Components: FontBox
>    Affects Versions: 2.0.6
>            Reporter: Tilman Hausherr
>            Assignee: Andreas Lehmkühler
>              Labels: regression
>             Fix For: 2.0.7, 3.0.0
>
>         Attachments: PDFBOX-3628_closeTTF.patch
>
>
> {code}
> java.lang.NullPointerException: null
>       at 
> org.apache.fontbox.ttf.RAFDataStream.getCurrentPosition(RAFDataStream.java:88)
>       at 
> org.apache.fontbox.ttf.TrueTypeFont.getTableBytes(TrueTypeFont.java:121)
>       at 
> org.apache.fontbox.ttf.TTFSubsetter.writeToStream(TTFSubsetter.java:1012)
>       at 
> org.apache.pdfbox.pdmodel.font.TrueTypeEmbedder.subset(TrueTypeEmbedder.java:329)
>       at 
> org.apache.pdfbox.pdmodel.font.PDType0Font.subset(PDType0Font.java:162)
>       at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1275)
>       at 
> org.apache.pdfbox.pdmodel.font.PDFontTest.testMultipleFontFileReuse(PDFontTest.java:160)
> {code}
> {code}
>     @Test
>     public void testMultipleFontFileReuse() throws IOException, 
> URISyntaxException
>     {
>         URL url = PDFontTest.class.getClassLoader().getResource(
>                 "org/apache/pdfbox/ttf/LiberationSans-Regular.ttf");
>         File file = new File(url.toURI());
>         TrueTypeFont ttf = new TTFParser().parse(file);
>         for (int i = 0; i < 32; ++i)
>         {
>             try (PDDocument doc = new PDDocument())
>             {
>                 PDPage page = new PDPage();
>                 doc.addPage(page);
>                 PDFont font = PDType0Font.load(doc, ttf, true);
>                 try (PDPageContentStream cs = new PDPageContentStream(doc, 
> page))
>                 {
>                     cs.beginText();
>                     cs.setFont(font, 10);
>                     cs.showText("testMultipleFontFileReuse");
>                     cs.endText();
>                 }
>                 doc.save(new ByteArrayOutputStream());
>             }
>         }
>     }
> {code}
> This happens only if the TrueTypeFont is created from a file, not when it is 
> created from a stream (PDFBOX-3337). It worked in 2.0.0 but no longer since 
> 2.0.1.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to