Ram Lakshmanan created PDFBOX-5460:
--------------------------------------
Summary: Deadlock in TrueTypeFont and RAFDataStream
Key: PDFBOX-5460
URL: https://issues.apache.org/jira/browse/PDFBOX-5460
Project: PDFBox
Issue Type: Bug
Components: FontBox
Reporter: Ram Lakshmanan
Deadlock is happening between *org.apache.fontbox.ttf.RAFDataStream* and
*org.apache.fontbox.ttf.TrueTypeFont* objects. Below is the stack trace of the
two threads which are in deadlock. If you want to see the complete thread dump
you can [refer it
here|https://fastthread.io/my-thread-report.jsp?p=c2hhcmVkLzIwMjIvMDYvMTUvLS1wZGYtYm94LWRlYWRsb2NrLnppcC0tMjItMjQtNTc=&s=t].
{code:java}
APP_Thread_50408_759_100162222_WorkerTask_1652842343227_P_Th_SPR-APP-pool-5-thread-6
PRIORITY : 5
THREAD ID : 0X00007F894C406000
NATIVE ID : 0X44D1
NATIVE ID (DECIMAL) : 17617
STATE : BLOCKED
stackTrace:
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.fontbox.ttf.TrueTypeFont.getTable(TrueTypeFont.java:147)
- waiting to lock <0x00000002d216fec8> (a org.apache.fontbox.ttf.TrueTypeFont)
at
org.apache.fontbox.ttf.TrueTypeFont.getHorizontalMetrics(TrueTypeFont.java:229)
at org.apache.fontbox.ttf.GlyphTable.getGlyphData(GlyphTable.java:210)
at org.apache.fontbox.ttf.GlyphTable.getGlyph(GlyphTable.java:191)
- locked <0x00000002d218ca28> (a org.apache.fontbox.ttf.RAFDataStream)
at org.apache.fontbox.ttf.TrueTypeFont.getPath(TrueTypeFont.java:676)
at org.apache.pdfbox.pdmodel.font.PDType1Font.getPath(PDType1Font.java:638)
at
org.apache.pdfbox.rendering.Type1Glyph2D.getPathForCharacterCode(Type1Glyph2D.java:83)
at org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:495)
at org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:476)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:787)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:805)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:743)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.showTextString(PDFStreamEngine.java:606)
at
org.apache.pdfbox.contentstream.operator.text.ShowText.process(ShowText.java:56)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:933)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:514)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:492)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:155)
at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:277)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:347)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:268)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:228)
at
com.spr.export.service.thumbnail.PDFSlideGeneratorServiceImpl$1.call(PDFSlideGeneratorServiceImpl.java:60)
at
com.spr.ops.executor.util.ParallelExecutorTask.doCall(ParallelExecutorTask.java:43)
at
com.spr.ops.executor.util.ParallelExecutor.executeTaskFromQueue(ParallelExecutor.java:154)
at
com.spr.ops.executor.util.ParallelExecutor.access$100(ParallelExecutor.java:26)
at
com.spr.ops.executor.util.ParallelExecutor$WorkerTask.doCall(ParallelExecutor.java:164)
at
com.spr.ops.executor.util.UserContextAwareCallable.call(UserContextAwareCallable.java:89)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
APP_Thread_50408_759_100162222_WorkerTask_1652842343227_P_Th_SPR-APP-pool-5-thread-5
PRIORITY : 5
THREAD ID : 0X00007F894C404800
NATIVE ID : 0X44D0
NATIVE ID (DECIMAL) : 17616
STATE : BLOCKED
stackTrace:
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.fontbox.ttf.TrueTypeFont.readTable(TrueTypeFont.java:356)
- waiting to lock <0x00000002d218ca28> (a org.apache.fontbox.ttf.RAFDataStream)
at org.apache.fontbox.ttf.TrueTypeFont.getTable(TrueTypeFont.java:150)
- locked <0x00000002d216fec8> (a org.apache.fontbox.ttf.TrueTypeFont)
at org.apache.fontbox.ttf.TrueTypeFont.getCmap(TrueTypeFont.java:262)
at org.apache.fontbox.ttf.TrueTypeFont.getUnicodeCmapImpl(TrueTypeFont.java:556)
at
org.apache.fontbox.ttf.TrueTypeFont.getUnicodeCmapLookup(TrueTypeFont.java:541)
at org.apache.fontbox.ttf.TrueTypeFont.nameToGID(TrueTypeFont.java:629)
at org.apache.fontbox.ttf.TrueTypeFont.hasGlyph(TrueTypeFont.java:698)
at
org.apache.pdfbox.pdmodel.font.PDType1Font.getNameInFont(PDType1Font.java:601)
at org.apache.pdfbox.pdmodel.font.PDType1Font.hasGlyph(PDType1Font.java:645)
at
org.apache.pdfbox.rendering.Type1Glyph2D.getPathForCharacterCode(Type1Glyph2D.java:59)
at org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:495)
at org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:476)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:787)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:805)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:743)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.showTextString(PDFStreamEngine.java:606)
at
org.apache.pdfbox.contentstream.operator.text.ShowText.process(ShowText.java:56)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:933)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:514)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:492)
at
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:155)
at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:277)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:347)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:268)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:228)
at
com.spr.export.service.thumbnail.PDFSlideGeneratorServiceImpl$1.call(PDFSlideGeneratorServiceImpl.java:60)
at
com.spr.ops.executor.util.ParallelExecutorTask.doCall(ParallelExecutorTask.java:43)
at
com.spr.ops.executor.util.ParallelExecutor.executeTaskFromQueue(ParallelExecutor.java:154)
at
com.spr.ops.executor.util.ParallelExecutor.access$100(ParallelExecutor.java:26)
at
com.spr.ops.executor.util.ParallelExecutor$WorkerTask.doCall(ParallelExecutor.java:164)
at
com.spr.ops.executor.util.UserContextAwareCallable.call(UserContextAwareCallable.java:89)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748) {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]