Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-3374

Multithreading can cause exceptions.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 2.0.1
    • None
    • None
    • None
    • Windows 8 64 bit
      java version "1.8.0_91"

    Description

      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?

      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

      Possibly related crash?

      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)
      ...

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              sfeenstra Stefan Feenstra
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: