[ https://issues.apache.org/jira/browse/PDFBOX-1580?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Kohlschütter updated PDFBOX-1580: ------------------------------------------- Affects Version/s: 1.8.0 > Oracle JVM crashes because of embedded fonts. > --------------------------------------------- > > Key: PDFBOX-1580 > URL: https://issues.apache.org/jira/browse/PDFBOX-1580 > Project: PDFBox > Issue Type: Bug > Components: PDModel > Affects Versions: 1.7.0, 1.7.1, 1.8.0, 1.8.1 > Environment: Linux 64-bit > Oracle JRE 6.0_45-b06 or 7.0_21-b11 > Reporter: Christian Kohlschütter > Priority: Blocker > Labels: PatchAvailable, Regression > Attachments: PDFBOX-1580.patch > > > Oracle's closed-source font rendering chokes on some fonts embedded in PDFs > because their cmap data is either missing or invalid. > Using OpenJDK, no crashes were observed. > The JVM crashes right after attempting to draw a glyph vector using > codepoints, which is called from within PDSimpleFont#drawString. > Versions of pdfbox prior to 1.7.0 did not crash. > The crashes look like this: > JRE 6: > # JRE version: 6.0_45-b06 > # Java VM: Java HotSpot(TM) 64-Bit Server VM (20.45-b01 mixed mode > linux-amd64 compressed oops) > # Problematic frame: > # C [libfontmanager.so+0x242c8] imaginary long double+0xd8 > JRE 7: > # JRE version: 7.0_21-b11 > # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.21-b01 mixed mode > linux-amd64 compressed oops) > # Problematic frame: > # C [libt2k.so+0x2e6b1] Compute_cmapClass_GlyphIndex+0x1 > Since older versions of pdfbox did not crash, I tracked the problem down to a > call to java.awt.Font#canDisplayUpTo(String) that has been moved in 1.7.0 > from the top of PDSimpleFont#drawString down to a branch. Moving the call > back up prevented the crash. > It looks like a call to java.awt.Font#canDisplay(int) initializes some > internal data structures of Oracle's fontmanager, preventing the JVM crash. > As I have observed this crash only for fonts that have been processed through > PDType0Font, I have added a fix there, which should save us some cycles and, > more importantly, should not create new problems. > Oracle bug reports have been filed for both JRE 6 and 7, including a > "minimal" test case: > Oracle JRE 6: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=9002077 > Oracle JRE 7: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=9002078 > There have been a few other bug reports mentioning a similar crash on other > platforms, older JRE versions, e.g.: PDFBOX-1426, PDFBOX-1336. > The patch provided here might fix these bugs, too. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira