[ https://issues.apache.org/jira/browse/FOP-2745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16190887#comment-16190887 ]
Jochen Kemnade commented on FOP-2745: ------------------------------------- {code:java} public static void main(final String[] args) throws Exception { ResourceResolver resourceResolver = ResourceResolverFactory.createDefaultResourceResolver(); FopFactoryBuilder fopFactoryBuilder = new FopFactoryBuilder(new File(".").getAbsoluteFile().toURI(), resourceResolver); FopFactory fopFactory = fopFactoryBuilder.build(); int numberOfThreads = 10; List<Thread> threads = new ArrayList<>(numberOfThreads); for (int i = 0; i < numberOfThreads; i++) { Thread t = new Thread(new Runnable() { @Override public void run() { try (OutputStream out = new ByteArrayOutputStream()) { Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out); } catch (FOPException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); threads.add(t); t.start(); } for (Thread t : threads) { t.join(); } } {code} > Multi-threaded initialization fails > ----------------------------------- > > Key: FOP-2745 > URL: https://issues.apache.org/jira/browse/FOP-2745 > Project: FOP > Issue Type: Bug > Affects Versions: 2.2 > Reporter: Jochen Kemnade > > When multiple thread initialize FOP, some of them are likely to throw a > {{NullPointerException}} or {{ConcurrentModificationException}}. > {noformat} > java.lang.NullPointerException: null > at java.awt.color.ICC_Profile.intFromBigEndian(ICC_Profile.java:1782) > at java.awt.color.ICC_Profile.getNumComponents(ICC_Profile.java:1474) > at > org.apache.fop.pdf.PDFICCBasedColorSpace.<init>(PDFICCBasedColorSpace.java:49) > at > org.apache.fop.pdf.PDFFactory.makeICCBasedColorSpace(PDFFactory.java:1453) > at > org.apache.fop.pdf.PDFICCBasedColorSpace.setupsRGBAsDefaultRGBColorSpace(PDFICCBasedColorSpace.java:116) > at > org.apache.fop.render.pdf.PDFRenderingUtil.addsRGBColorSpace(PDFRenderingUtil.java:187) > at > org.apache.fop.render.pdf.PDFRenderingUtil.setupPDFDocument(PDFRenderingUtil.java:604) > at > org.apache.fop.render.pdf.PDFDocumentHandler.startDocument(PDFDocumentHandler.java:159) > at > org.apache.fop.render.intermediate.util.IFDocumentHandlerProxy.startDocument(IFDocumentHandlerProxy.java:105) > at > org.apache.fop.render.intermediate.IFRenderer.startRenderer(IFRenderer.java:263) > at org.apache.fop.area.RenderPagesModel.<init>(RenderPagesModel.java:81) > at > org.apache.fop.area.AreaTreeHandler.setupModel(AreaTreeHandler.java:135) > at org.apache.fop.area.AreaTreeHandler.<init>(AreaTreeHandler.java:105) > at > org.apache.fop.render.RendererFactory.createFOEventHandler(RendererFactory.java:363) > at org.apache.fop.fo.FOTreeBuilder.<init>(FOTreeBuilder.java:107) > at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:104) > at org.apache.fop.apps.Fop.<init>(Fop.java:78) > at org.apache.fop.apps.FOUserAgent.newFop(FOUserAgent.java:182) > {noformat} > or > {noformat} > java.util.ConcurrentModificationException: null > 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.getData(ICC_Profile.java:1359) > at > org.apache.xmlgraphics.java2d.color.profile.ColorProfileUtil.getICCProfileDescription(ColorProfileUtil.java:46) > at org.apache.fop.pdf.PDFResources.addColorSpace(PDFResources.java:160) > at > org.apache.fop.pdf.PDFFactory.makeICCBasedColorSpace(PDFFactory.java:1460) > at > org.apache.fop.pdf.PDFICCBasedColorSpace.setupsRGBAsDefaultRGBColorSpace(PDFICCBasedColorSpace.java:116) > at > org.apache.fop.render.pdf.PDFRenderingUtil.addsRGBColorSpace(PDFRenderingUtil.java:187) > at > org.apache.fop.render.pdf.PDFRenderingUtil.setupPDFDocument(PDFRenderingUtil.java:604) > at > org.apache.fop.render.pdf.PDFDocumentHandler.startDocument(PDFDocumentHandler.java:159) > at > org.apache.fop.render.intermediate.util.IFDocumentHandlerProxy.startDocument(IFDocumentHandlerProxy.java:105) > at > org.apache.fop.render.intermediate.IFRenderer.startRenderer(IFRenderer.java:263) > at org.apache.fop.area.RenderPagesModel.<init>(RenderPagesModel.java:81) > at > org.apache.fop.area.AreaTreeHandler.setupModel(AreaTreeHandler.java:135) > at org.apache.fop.area.AreaTreeHandler.<init>(AreaTreeHandler.java:105) > at > org.apache.fop.render.RendererFactory.createFOEventHandler(RendererFactory.java:363) > at org.apache.fop.fo.FOTreeBuilder.<init>(FOTreeBuilder.java:107) > at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:104) > at org.apache.fop.apps.Fop.<init>(Fop.java:78) > at org.apache.fop.apps.FOUserAgent.newFop(FOUserAgent.java:182) > {noformat} > The underlying is https://bugs.openjdk.java.net/browse/JDK-8058973. -- This message was sent by Atlassian JIRA (v6.4.14#64029)