[ https://issues.apache.org/jira/browse/PDFBOX-2824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14575759#comment-14575759 ]
Tilman Hausherr edited comment on PDFBOX-2824 at 6/6/15 3:06 PM: ----------------------------------------------------------------- I added this code just before the place where it happens: {code} if (index >= flags.length || index + i >= flags.length) { // PDFBOX-2824 for (StackTraceElement[] stea : Thread.getAllStackTraces().values()) { for (StackTraceElement ste : stea) { System.out.println(ste); } System.out.println(); } } flags[index + i] = flags[index]; {code} And then did many builds, until it happened (note that all line numbers in GlyfSimpleDescript.java are one line higher than in the trunk, because of an extra import I forgot to delete): {code} sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082) java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1468) org.apache.pdfbox.ParallelParameterized$FixedThreadPoolScheduler.finished(ParallelParameterized.java:63) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:295) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264) org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124) org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:503) java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) sun.java2d.cmm.kcms.CMM.cmmGetNumComponents(Native Method) sun.java2d.cmm.kcms.ICC_Transform.getNumOutComponents(ICC_Transform.java:110) sun.java2d.cmm.kcms.pelArrayInfo.initInfo(ICC_Transform.java:976) sun.java2d.cmm.kcms.pelArrayInfo.<init>(ICC_Transform.java:949) sun.java2d.cmm.kcms.ICC_Transform.colorConvert(ICC_Transform.java:841) java.awt.color.ICC_ColorSpace.toRGB(ICC_ColorSpace.java:182) org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB.toRGB(PDDeviceRGB.java:82) org.apache.pdfbox.pdmodel.graphics.shading.ShadingContext.convertToRGB(ShadingContext.java:142) org.apache.pdfbox.pdmodel.graphics.shading.TriangleBasedShadingContext.evalFunctionAndConvertToRGB(TriangleBasedShadingContext.java:167) org.apache.pdfbox.pdmodel.graphics.shading.TriangleBasedShadingContext.calcPixelTable(TriangleBasedShadingContext.java:121) org.apache.pdfbox.pdmodel.graphics.shading.GouraudShadingContext.calcPixelTable(GouraudShadingContext.java:111) org.apache.pdfbox.pdmodel.graphics.shading.TriangleBasedShadingContext.createPixelTable(TriangleBasedShadingContext.java:80) org.apache.pdfbox.pdmodel.graphics.shading.Type4ShadingContext.<init>(Type4ShadingContext.java:65) org.apache.pdfbox.pdmodel.graphics.shading.Type4ShadingPaint.createContext(Type4ShadingPaint.java:66) sun.java2d.pipe.AlphaPaintPipe.startSequence(AlphaPaintPipe.java:83) sun.java2d.pipe.SpanShapeRenderer$Composite.startSequence(SpanShapeRenderer.java:56) sun.java2d.pipe.SpanShapeRenderer.renderSpans(SpanShapeRenderer.java:194) sun.java2d.pipe.SpanShapeRenderer.fill(SpanShapeRenderer.java:116) sun.java2d.pipe.ValidatePipe.fill(ValidatePipe.java:160) sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:2468) org.apache.pdfbox.rendering.PageDrawer.fillPath(PageDrawer.java:606) org.apache.pdfbox.contentstream.operator.graphics.FillNonZeroRule.process(FillNonZeroRule.java:36) org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:829) org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:490) org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:456) org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:167) org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:69) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:56) org.apache.pdfbox.rendering.TestRendering.render(TestRendering.java:80) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) java.lang.Thread.dumpThreads(Native Method) java.lang.Thread.getAllStackTraces(Thread.java:1640) org.apache.fontbox.ttf.GlyfSimpleDescript.readFlags(GlyfSimpleDescript.java:205) org.apache.fontbox.ttf.GlyfSimpleDescript.<init>(GlyfSimpleDescript.java:78) org.apache.fontbox.ttf.GlyphData.initData(GlyphData.java:58) org.apache.fontbox.ttf.GlyphTable.getGlyph(GlyphTable.java:161) org.apache.fontbox.ttf.TrueTypeFont.getPath(TrueTypeFont.java:608) org.apache.pdfbox.pdmodel.font.PDType1Font.getPath(PDType1Font.java:469) org.apache.pdfbox.rendering.Type1Glyph2D.getPathForCharacterCode(Type1Glyph2D.java:67) org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:359) org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:340) org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:758) org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:717) org.apache.pdfbox.contentstream.PDFStreamEngine.showTextString(PDFStreamEngine.java:587) org.apache.pdfbox.rendering.PageDrawer.showTextString(PageDrawer.java:289) org.apache.pdfbox.contentstream.operator.text.ShowText.process(ShowText.java:44) org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:829) org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:490) org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:456) org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:167) org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:69) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:56) org.apache.pdfbox.rendering.TestRendering.render(TestRendering.java:80) sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) java.io.RandomAccessFile.read0(Native Method) java.io.RandomAccessFile.read(RandomAccessFile.java:330) java.io.RandomAccessFile.readUnsignedShort(RandomAccessFile.java:767) org.apache.fontbox.ttf.RAFDataStream.readUnsignedShort(RAFDataStream.java:117) org.apache.fontbox.ttf.HorizontalMetricsTable.read(HorizontalMetricsTable.java:56) org.apache.fontbox.ttf.TrueTypeFont.readTable(TrueTypeFont.java:361) org.apache.fontbox.ttf.TrueTypeFont.getHorizontalMetrics(TrueTypeFont.java:225) org.apache.fontbox.ttf.TrueTypeFont.getAdvanceWidth(TrueTypeFont.java:420) org.apache.fontbox.ttf.TrueTypeFont.getWidth(TrueTypeFont.java:631) org.apache.pdfbox.pdmodel.font.PDType1Font.getWidthFromFont(PDType1Font.java:339) org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:365) org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:340) org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:758) org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:717) org.apache.pdfbox.contentstream.PDFStreamEngine.showTextString(PDFStreamEngine.java:587) org.apache.pdfbox.rendering.PageDrawer.showTextString(PageDrawer.java:289) org.apache.pdfbox.contentstream.operator.text.ShowText.process(ShowText.java:44) org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:829) org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:490) org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:456) org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:167) org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:69) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:56) org.apache.pdfbox.rendering.TestRendering.render(TestRendering.java:80) sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) java.io.RandomAccessFile.read0(Native Method) java.io.RandomAccessFile.read(RandomAccessFile.java:330) org.apache.fontbox.ttf.RAFDataStream.read(RAFDataStream.java:106) org.apache.fontbox.ttf.TTFDataStream.readUnsignedByteArray(TTFDataStream.java:161) org.apache.fontbox.ttf.GlyfDescript.readInstructions(GlyfDescript.java:117) org.apache.fontbox.ttf.GlyfSimpleDescript.<init>(GlyfSimpleDescript.java:77) org.apache.fontbox.ttf.GlyphData.initData(GlyphData.java:58) org.apache.fontbox.ttf.GlyphTable.getGlyph(GlyphTable.java:161) org.apache.fontbox.ttf.GlyfCompositeDescript.getGlypDescription(GlyfCompositeDescript.java:270) org.apache.fontbox.ttf.GlyfCompositeDescript.getYCoordinate(GlyfCompositeDescript.java:176) org.apache.fontbox.ttf.GlyphRenderer.describe(GlyphRenderer.java:74) org.apache.fontbox.ttf.GlyphRenderer.getPath(GlyphRenderer.java:56) org.apache.fontbox.ttf.GlyphData.getPath(GlyphData.java:114) org.apache.fontbox.ttf.TrueTypeFont.getPath(TrueTypeFont.java:615) org.apache.pdfbox.pdmodel.font.PDType1Font.getPath(PDType1Font.java:469) org.apache.pdfbox.rendering.Type1Glyph2D.getPathForCharacterCode(Type1Glyph2D.java:67) org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:359) org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:340) org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:758) org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:717) org.apache.pdfbox.contentstream.PDFStreamEngine.showTextStrings(PDFStreamEngine.java:627) org.apache.pdfbox.rendering.PageDrawer.showTextStrings(PageDrawer.java:297) org.apache.pdfbox.contentstream.operator.text.ShowTextAdjusted.process(ShowTextAdjusted.java:38) org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:829) org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:490) org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:456) org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:167) org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:69) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:56) org.apache.pdfbox.rendering.TestRendering.render(TestRendering.java:80) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209) java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) sun.java2d.Disposer.run(Disposer.java:145) java.lang.Thread.run(Thread.java:745) {code} was (Author: tilman): I added this code just before the place where it happens: {code} if (index >= flags.length || index + i >= flags.length) { // PDFBOX-2824 for (StackTraceElement[] stea : Thread.getAllStackTraces().values()) { for (StackTraceElement ste : stea) { System.out.println(ste); } System.out.println(); } } flags[index + i] = flags[index]; {code} And then did many builds, until it happened: {code} sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082) java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1468) org.apache.pdfbox.ParallelParameterized$FixedThreadPoolScheduler.finished(ParallelParameterized.java:63) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:295) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264) org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124) org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:503) java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) sun.java2d.cmm.kcms.CMM.cmmGetNumComponents(Native Method) sun.java2d.cmm.kcms.ICC_Transform.getNumOutComponents(ICC_Transform.java:110) sun.java2d.cmm.kcms.pelArrayInfo.initInfo(ICC_Transform.java:976) sun.java2d.cmm.kcms.pelArrayInfo.<init>(ICC_Transform.java:949) sun.java2d.cmm.kcms.ICC_Transform.colorConvert(ICC_Transform.java:841) java.awt.color.ICC_ColorSpace.toRGB(ICC_ColorSpace.java:182) org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB.toRGB(PDDeviceRGB.java:82) org.apache.pdfbox.pdmodel.graphics.shading.ShadingContext.convertToRGB(ShadingContext.java:142) org.apache.pdfbox.pdmodel.graphics.shading.TriangleBasedShadingContext.evalFunctionAndConvertToRGB(TriangleBasedShadingContext.java:167) org.apache.pdfbox.pdmodel.graphics.shading.TriangleBasedShadingContext.calcPixelTable(TriangleBasedShadingContext.java:121) org.apache.pdfbox.pdmodel.graphics.shading.GouraudShadingContext.calcPixelTable(GouraudShadingContext.java:111) org.apache.pdfbox.pdmodel.graphics.shading.TriangleBasedShadingContext.createPixelTable(TriangleBasedShadingContext.java:80) org.apache.pdfbox.pdmodel.graphics.shading.Type4ShadingContext.<init>(Type4ShadingContext.java:65) org.apache.pdfbox.pdmodel.graphics.shading.Type4ShadingPaint.createContext(Type4ShadingPaint.java:66) sun.java2d.pipe.AlphaPaintPipe.startSequence(AlphaPaintPipe.java:83) sun.java2d.pipe.SpanShapeRenderer$Composite.startSequence(SpanShapeRenderer.java:56) sun.java2d.pipe.SpanShapeRenderer.renderSpans(SpanShapeRenderer.java:194) sun.java2d.pipe.SpanShapeRenderer.fill(SpanShapeRenderer.java:116) sun.java2d.pipe.ValidatePipe.fill(ValidatePipe.java:160) sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:2468) org.apache.pdfbox.rendering.PageDrawer.fillPath(PageDrawer.java:606) org.apache.pdfbox.contentstream.operator.graphics.FillNonZeroRule.process(FillNonZeroRule.java:36) org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:829) org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:490) org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:456) org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:167) org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:69) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:56) org.apache.pdfbox.rendering.TestRendering.render(TestRendering.java:80) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) java.lang.Thread.dumpThreads(Native Method) java.lang.Thread.getAllStackTraces(Thread.java:1640) org.apache.fontbox.ttf.GlyfSimpleDescript.readFlags(GlyfSimpleDescript.java:205) org.apache.fontbox.ttf.GlyfSimpleDescript.<init>(GlyfSimpleDescript.java:78) org.apache.fontbox.ttf.GlyphData.initData(GlyphData.java:58) org.apache.fontbox.ttf.GlyphTable.getGlyph(GlyphTable.java:161) org.apache.fontbox.ttf.TrueTypeFont.getPath(TrueTypeFont.java:608) org.apache.pdfbox.pdmodel.font.PDType1Font.getPath(PDType1Font.java:469) org.apache.pdfbox.rendering.Type1Glyph2D.getPathForCharacterCode(Type1Glyph2D.java:67) org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:359) org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:340) org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:758) org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:717) org.apache.pdfbox.contentstream.PDFStreamEngine.showTextString(PDFStreamEngine.java:587) org.apache.pdfbox.rendering.PageDrawer.showTextString(PageDrawer.java:289) org.apache.pdfbox.contentstream.operator.text.ShowText.process(ShowText.java:44) org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:829) org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:490) org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:456) org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:167) org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:69) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:56) org.apache.pdfbox.rendering.TestRendering.render(TestRendering.java:80) sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) java.io.RandomAccessFile.read0(Native Method) java.io.RandomAccessFile.read(RandomAccessFile.java:330) java.io.RandomAccessFile.readUnsignedShort(RandomAccessFile.java:767) org.apache.fontbox.ttf.RAFDataStream.readUnsignedShort(RAFDataStream.java:117) org.apache.fontbox.ttf.HorizontalMetricsTable.read(HorizontalMetricsTable.java:56) org.apache.fontbox.ttf.TrueTypeFont.readTable(TrueTypeFont.java:361) org.apache.fontbox.ttf.TrueTypeFont.getHorizontalMetrics(TrueTypeFont.java:225) org.apache.fontbox.ttf.TrueTypeFont.getAdvanceWidth(TrueTypeFont.java:420) org.apache.fontbox.ttf.TrueTypeFont.getWidth(TrueTypeFont.java:631) org.apache.pdfbox.pdmodel.font.PDType1Font.getWidthFromFont(PDType1Font.java:339) org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:365) org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:340) org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:758) org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:717) org.apache.pdfbox.contentstream.PDFStreamEngine.showTextString(PDFStreamEngine.java:587) org.apache.pdfbox.rendering.PageDrawer.showTextString(PageDrawer.java:289) org.apache.pdfbox.contentstream.operator.text.ShowText.process(ShowText.java:44) org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:829) org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:490) org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:456) org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:167) org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:69) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:56) org.apache.pdfbox.rendering.TestRendering.render(TestRendering.java:80) sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) java.io.RandomAccessFile.read0(Native Method) java.io.RandomAccessFile.read(RandomAccessFile.java:330) org.apache.fontbox.ttf.RAFDataStream.read(RAFDataStream.java:106) org.apache.fontbox.ttf.TTFDataStream.readUnsignedByteArray(TTFDataStream.java:161) org.apache.fontbox.ttf.GlyfDescript.readInstructions(GlyfDescript.java:117) org.apache.fontbox.ttf.GlyfSimpleDescript.<init>(GlyfSimpleDescript.java:77) org.apache.fontbox.ttf.GlyphData.initData(GlyphData.java:58) org.apache.fontbox.ttf.GlyphTable.getGlyph(GlyphTable.java:161) org.apache.fontbox.ttf.GlyfCompositeDescript.getGlypDescription(GlyfCompositeDescript.java:270) org.apache.fontbox.ttf.GlyfCompositeDescript.getYCoordinate(GlyfCompositeDescript.java:176) org.apache.fontbox.ttf.GlyphRenderer.describe(GlyphRenderer.java:74) org.apache.fontbox.ttf.GlyphRenderer.getPath(GlyphRenderer.java:56) org.apache.fontbox.ttf.GlyphData.getPath(GlyphData.java:114) org.apache.fontbox.ttf.TrueTypeFont.getPath(TrueTypeFont.java:615) org.apache.pdfbox.pdmodel.font.PDType1Font.getPath(PDType1Font.java:469) org.apache.pdfbox.rendering.Type1Glyph2D.getPathForCharacterCode(Type1Glyph2D.java:67) org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:359) org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:340) org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:758) org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:717) org.apache.pdfbox.contentstream.PDFStreamEngine.showTextStrings(PDFStreamEngine.java:627) org.apache.pdfbox.rendering.PageDrawer.showTextStrings(PageDrawer.java:297) org.apache.pdfbox.contentstream.operator.text.ShowTextAdjusted.process(ShowTextAdjusted.java:38) org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:829) org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:490) org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:456) org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:167) org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:69) org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:56) org.apache.pdfbox.rendering.TestRendering.render(TestRendering.java:80) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) org.junit.runners.ParentRunner.run(ParentRunner.java:363) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) java.util.concurrent.FutureTask.run(FutureTask.java:262) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209) java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) sun.java2d.Disposer.run(Disposer.java:145) java.lang.Thread.run(Thread.java:745) {code} > ArrayIndexOutOfBoundsException in GlyfSimpleDescript.readFlags() when > multithreading > ------------------------------------------------------------------------------------ > > Key: PDFBOX-2824 > URL: https://issues.apache.org/jira/browse/PDFBOX-2824 > Project: PDFBox > Issue Type: Bug > Components: FontBox > Affects Versions: 2.0.0 > Reporter: Tilman Hausherr > Priority: Critical > > From Kenneth K. in the mailing list: > I have a client application that convert pdf documents into single page tiff > images. Since the user export large quantities of documents I use a > multithreaded approach. Each thread loads it own document and converts the > pages one by one. > The pdf file is serialized to the client thread and then each thread executes > the following code. If I only use 1 thread there is no problem. I checked > to make sure objects are shared between threads. > {code} > docin = PDDocument.load(new > ByteArrayInputStream(documentResult.getImage().getContent()),true); > if(null==docin) > throw new Exception("Invalid PDF document or an occured during > retrieval"); > int numPages = docin.getNumberOfPages(); > String strPath = getPath(numPages); > int iPage = 0; > PDFRenderer renderer = new PDFRenderer(docin); > for (int i=0;i<numPages;i++) > { > PDPage page = docin.getPage(i); > PDRectangle rect = page.getMediaBox(); > BufferedImage pageImage = null; > pageImage = renderer.renderImageWithDPI(i, 200f, > ImageType.BINARY); > ... > } > {code} > {code} > Array index out of range: 8 > at > org.apache.fontbox.ttf.GlyfSimpleDescript.readFlags(GlyfSimpleDescript.java:202) > at > org.apache.fontbox.ttf.GlyfSimpleDescript.<init>(GlyfSimpleDescript.java:77) > at org.apache.fontbox.ttf.GlyphData.initData(GlyphData.java:58) > at org.apache.fontbox.ttf.GlyphTable.getGlyph(GlyphTable.java:161) > at > org.apache.pdfbox.rendering.TTFGlyph2D.getPathForGID(TTFGlyph2D.java:140) > at > org.apache.pdfbox.rendering.TTFGlyph2D.getPathForCharacterCode(TTFGlyph2D.java:92) > at > org.apache.pdfbox.rendering.PageDrawer.drawGlyph2D(PageDrawer.java:333) > at > org.apache.pdfbox.rendering.PageDrawer.showFontGlyph(PageDrawer.java:314) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.showGlyph(PDFStreamEngine.java:731) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.showText(PDFStreamEngine.java:690) > at org.apache.pdfbox.rendering.PageDrawer.showText(PageDrawer.java:296) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.showTextStrings(PDFStreamEngine.java:600) > at > org.apache.pdfbox.contentstream.operator.text.ShowTextAdjusted.process(ShowTextAdjusted.java:38) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:802) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:464) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:438) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149) > at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:179) > at > org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) > at > org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:136) > at > org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:95) > at > org.ilsos.cm.export.client.rmi.workers.Pdf2SinglePageTiff.processResult(Pdf2SinglePageTiff.java:142) > at > org.ilsos.cm.export.client.rmi.ExportWorker.run(ExportWorker.java:72) > at java.lang.Thread.run(Thread.java:784) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org