You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Philip Helger (JIRA)" <ji...@apache.org> on 2016/06/09 14:44:21 UTC

[jira] [Commented] (PDFBOX-3374) Multithreading can cause exceptions.

    [ https://issues.apache.org/jira/browse/PDFBOX-3374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15322631#comment-15322631 ] 

Philip Helger commented on PDFBOX-3374:
---------------------------------------

Seems to be related to https://bugs.openjdk.java.net/browse/JDK-8058973 which is known since 1.6 :)

> Multithreading can cause exceptions.
> ------------------------------------
>
>                 Key: PDFBOX-3374
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3374
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 2.0.1
>         Environment: Windows 8 64 bit
> java version "1.8.0_91"
>            Reporter: Stefan Feenstra
>
> PDFBox has given me exceptions a couple of times when using it with multiple threads that seem to be related with it loading ICC color profiles.
> Possible fix might be to create a static lock?
> {quote}
> java.lang.RuntimeException: java.util.ConcurrentModificationException
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> 	at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
> 	at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
> 	at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:735)
> 	at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
> 	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
> 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
> 	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
> 	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583)
> 	at program.Trainer.convertToText_verification(Trainer.java:107)
> 	at program.Trainer.main(Trainer.java:37)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
> Caused by: java.lang.RuntimeException: java.util.ConcurrentModificationException
> 	at program.PdfStream.next(PdfStream.java:44)
> 	at program.DocumentUtility.pdfToText(DocumentUtility.java:65)
> 	at program.Trainer.lambda$convertToText_verification$2(Trainer.java:109)
> 	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
> 	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
> 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> 	at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
> 	at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
> 	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> 	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
> 	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
> 	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
> Caused by: java.util.ConcurrentModificationException
> 	at java.util.Vector$Itr.checkForComodification(Vector.java:1184)
> 	at java.util.Vector$Itr.next(Vector.java:1137)
> 	at sun.java2d.cmm.ProfileDeferralMgr.activateProfiles(ProfileDeferralMgr.java:93)
> 	at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:777)
> 	at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:1017)
> 	at org.apache.pdfbox.pdmodel.graphics.color.PDICCBased.loadICCProfile(PDICCBased.java:119)
> 	at org.apache.pdfbox.pdmodel.graphics.color.PDICCBased.<init>(PDICCBased.java:89)
> 	at org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace.create(PDColorSpace.java:182)
> 	at org.apache.pdfbox.pdmodel.PDResources.getColorSpace(PDResources.java:172)
> 	at org.apache.pdfbox.pdmodel.PDResources.getColorSpace(PDResources.java:142)
> 	at org.apache.pdfbox.contentstream.operator.color.SetNonStrokingColorSpace.process(SetNonStrokingColorSpace.java:41)
> 	at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:815)
> 	at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:472)
> 	at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446)
> 	at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
> 	at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:189)
> 	at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208)
> 	at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139)
> 	at program.PdfStream.next(PdfStream.java:41)
> 	... 11 more
> {quote}
> Possibly related crash?
> {quote}
> Caused by: java.lang.NullPointerException
> 	at java.awt.color.ICC_Profile.activateDeferredProfile(ICC_Profile.java:1090)
> 	at java.awt.color.ICC_Profile$1.activate(ICC_Profile.java:744)
> 	at sun.java2d.cmm.ProfileDeferralMgr.activateProfiles(ProfileDeferralMgr.java:95)
> 	at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:777)
> 	at java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:1017)
> 	at org.apache.pdfbox.pdmodel.graphics.color.PDICCBased.loadICCProfile(PDICCBased.java:119)
> 	at org.apache.pdfbox.pdmodel.graphics.color.PDICCBased.<init>(PDICCBased.java:89)
> 	at org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace.create(PDColorSpace.java:182)
> 	at org.apache.pdfbox.pdmodel.PDResources.getColorSpace(PDResources.java:172)
> 	at org.apache.pdfbox.pdmodel.PDResources.getColorSpace(PDResources.java:142)
> 	at org.apache.pdfbox.contentstream.operator.color.SetNonStrokingColorSpace.process(SetNonStrokingColorSpace.java:41)
> 	at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:815)
> 	at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:472)
> 	at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446)
> 	at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
> 	at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:189)
> 	at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208)
> 	at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139)
> ...
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org