https://issues.apache.org/bugzilla/show_bug.cgi?id=46962
--- Comment #3 from Alexis Giotis <[email protected]> 2011-08-02 19:37:07 UTC --- Deadlocks in o.a.f.fo.properties.PropertyCache still occur in FOP 1.0 with similar stacktraces (see below). By looking into the code and the stacktraces, the deadlock occurs when the map is rehashed. In short, this is a typical case: * Thread A invokes put() and acquires a lock on segment 1. * Thread B invokes put() and acquires a lock on segment 2. * Both threads determine that their segment should be cleared and invoke cleanSegment(). * Thread A acquires first the lock on votesForRehash, determines that a rehash is required and calls it. * Thread B holds the lock on segment 2 and waits to acquire the lock on votesForRehash. * Thread A executes the rehash() method which tries to recursively acquire locks on all segments. * Thread A and thread B deadlock because neither will release locks that the other wants. Relevant stacktraces from a production server: "Thread A" stacktrace: org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:245) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:247) org.apache.fop.fo.properties.PropertyCache.cleanSegment(PropertyCache.java:151) org.apache.fop.fo.properties.PropertyCache.put(PropertyCache.java:195) org.apache.fop.fo.properties.PropertyCache.fetch(PropertyCache.java:317) org.apache.fop.fo.properties.PropertyCache.fetch(PropertyCache.java:331) org.apache.fop.fo.properties.CondLengthProperty.getCondLength(CondLengthProperty.java:161) org.apache.fop.fo.properties.CommonBorderPaddingBackground.initBorderInfo(CommonBorderPaddingBackground.java:400) org.apache.fop.fo.properties.CommonBorderPaddingBackground.<init>(CommonBorderPaddingBackground.java:316) org.apache.fop.fo.properties.CommonBorderPaddingBackground.getInstance(CommonBorderPaddingBackground.java:350) org.apache.fop.fo.PropertyList.getBorderPaddingBackgroundProps(PropertyList.java:576) org.apache.fop.fo.flow.table.TableCell.bind(TableCell.java:77) org.apache.fop.fo.FObj.processNode(FObj.java:123) org.apache.fop.fo.flow.table.TableFObj.processNode(TableFObj.java:233) org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:282) org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:171) org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527) org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527) com.idocs.export2.filters.IgnoreThisSectionFilter.startElement(IgnoreThisSectionFilter.java:33) org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:206) org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:279) org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:350) org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:320) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1317) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:394) org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:248) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2270) org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1356) org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3447) org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:408) org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:473) org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:473) com.idocs.export2.filters.SplitElementsXMLFilter.endDocument(SplitElementsXMLFilter.java:59) org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:473) org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:473) com.idocs.export2.filters.SectionSplittingXMLFilter.endSection(SectionSplittingXMLFilter.java:218) com.idocs.export2.filters.SectionSplittingXMLFilter.startNewSection(SectionSplittingXMLFilter.java:195) com.idocs.export2.filters.SectionSplittingXMLFilter.findMatchingXslt(SectionSplittingXMLFilter.java:166) com.idocs.export2.filters.SectionSplittingXMLFilter.startElement(SectionSplittingXMLFilter.java:106) org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527) com.idocs.export2.filters.XPathMatchingFilter.startElement(XPathMatchingFilter.java:70) org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) org.apache.xerces.parsers.XMLParser.parse(Unknown Source) org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485) com.idocs.export2.filters.FromXmlFilterChain.transformSaxSource(FromXmlFilterChain.java:224) com.idocs.export2.filters.FromXmlFilterChain.transformToYarEntries(FromXmlFilterChain.java:233) com.idocs.export2.filters.FromXmlFilterChain.tranform(FromXmlFilterChain.java:93) com.idocs.export2.SectionsWorker$1.writeContent(SectionsWorker.java:208) com.idocs.base.document.DirectContentWriter.writeContent(DirectContentWriter.java:96) com.idocs.base.connection.docrep2.Docrep2Connection.writeContent(Docrep2Connection.java:476) com.idocs.base.connection.docrep2.Docrep2Connection.insertDocument(Docrep2Connection.java:413) com.idocs.base.connection.docrep2.Docrep2Connection.insert(Docrep2Connection.java:367) com.idocs.base.connection.Session.insert(Session.java:539) com.idocs.export2.SectionsWorker.writeOutputTo(SectionsWorker.java:218) com.idocs.export2.SectionsWorker.transform(SectionsWorker.java:162) com.idocs.export2.SectionsWorker.work(SectionsWorker.java:118) com.idocs.base.worker.WorkerWrapper.invokeInContext(WorkerWrapper.java:87) com.idocs.base.worker.WorkerWrapper.invoke(WorkerWrapper.java:68) com.idocs.base.cluster.node.TaskExecutor$WorkerRunnable.executeTask(TaskExecutor.java:289) com.idocs.base.cluster.node.TaskExecutor$WorkerRunnable.run(TaskExecutor.java:206) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) java.util.concurrent.FutureTask.run(FutureTask.java:138) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:619) "Thread B" stacktrace: org.apache.fop.fo.properties.PropertyCache.cleanSegment(PropertyCache.java:135) org.apache.fop.fo.properties.PropertyCache.put(PropertyCache.java:195) org.apache.fop.fo.properties.PropertyCache.fetch(PropertyCache.java:317) org.apache.fop.fo.properties.PropertyCache.fetch(PropertyCache.java:331) org.apache.fop.fo.properties.CondLengthProperty.getCondLength(CondLengthProperty.java:161) org.apache.fop.fo.properties.CommonBorderPaddingBackground.initBorderInfo(CommonBorderPaddingBackground.java:400) org.apache.fop.fo.properties.CommonBorderPaddingBackground.<init>(CommonBorderPaddingBackground.java:321) org.apache.fop.fo.properties.CommonBorderPaddingBackground.getInstance(CommonBorderPaddingBackground.java:350) org.apache.fop.fo.PropertyList.getBorderPaddingBackgroundProps(PropertyList.java:576) org.apache.fop.fo.flow.table.TableCell.bind(TableCell.java:77) org.apache.fop.fo.FObj.processNode(FObj.java:123) org.apache.fop.fo.flow.table.TableFObj.processNode(TableFObj.java:233) org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:282) org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:171) org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527) org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527) com.idocs.export2.filters.IgnoreThisSectionFilter.startElement(IgnoreThisSectionFilter.java:33) org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:206) org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:279) org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:350) org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:320) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1317) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395) org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2270) org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1356) org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3447) org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:408) org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:473) org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:473) com.idocs.export2.filters.SplitElementsXMLFilter.endDocument(SplitElementsXMLFilter.java:59) org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:473) org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:473) com.idocs.export2.filters.SectionSplittingXMLFilter.endSection(SectionSplittingXMLFilter.java:218) com.idocs.export2.filters.SectionSplittingXMLFilter.startNewSection(SectionSplittingXMLFilter.java:195) com.idocs.export2.filters.SectionSplittingXMLFilter.findMatchingXslt(SectionSplittingXMLFilter.java:166) com.idocs.export2.filters.SectionSplittingXMLFilter.startElement(SectionSplittingXMLFilter.java:106) org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527) com.idocs.export2.filters.XPathMatchingFilter.startElement(XPathMatchingFilter.java:70) org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) org.apache.xerces.parsers.XMLParser.parse(Unknown Source) org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485) com.idocs.export2.filters.FromXmlFilterChain.transformSaxSource(FromXmlFilterChain.java:224) com.idocs.export2.filters.FromXmlFilterChain.transformToYarEntries(FromXmlFilterChain.java:233) com.idocs.export2.filters.FromXmlFilterChain.tranform(FromXmlFilterChain.java:93) com.idocs.export2.SectionsWorker$1.writeContent(SectionsWorker.java:208) com.idocs.base.document.DirectContentWriter.writeContent(DirectContentWriter.java:96) com.idocs.base.connection.docrep2.Docrep2Connection.writeContent(Docrep2Connection.java:476) com.idocs.base.connection.docrep2.Docrep2Connection.insertDocument(Docrep2Connection.java:413) com.idocs.base.connection.docrep2.Docrep2Connection.insert(Docrep2Connection.java:367) com.idocs.base.connection.Session.insert(Session.java:539) com.idocs.export2.SectionsWorker.writeOutputTo(SectionsWorker.java:218) com.idocs.export2.SectionsWorker.transform(SectionsWorker.java:162) com.idocs.export2.SectionsWorker.work(SectionsWorker.java:118) com.idocs.base.worker.WorkerWrapper.invokeInContext(WorkerWrapper.java:87) com.idocs.base.worker.WorkerWrapper.invoke(WorkerWrapper.java:68) com.idocs.base.cluster.node.TaskExecutor$WorkerRunnable.executeTask(TaskExecutor.java:289) com.idocs.base.cluster.node.TaskExecutor$WorkerRunnable.run(TaskExecutor.java:206) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) java.util.concurrent.FutureTask.run(FutureTask.java:138) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:619) Stacktraces from a test case that reproduces this issue: "Thread A": "pool-1-thread-2" prio=5 tid=7fe2831a7000 nid=0x11670d000 waiting for monitor entry [11670b000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:252) - waiting to lock <7f333b970> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b960> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b950> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b940> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b930> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b920> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b910> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b900> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b8f0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b8e0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b8d0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b8c0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b8b0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b8a0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b890> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b880> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b870> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b860> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b850> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b840> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b830> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b820> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b810> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b800> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b7f0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b7e0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b7d0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.rehash(PropertyCache.java:254) - locked <7f333b7c0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.cleanSegment(PropertyCache.java:156) - locked <7f333b630> (a [Z) at org.apache.fop.fo.properties.PropertyCache.put(PropertyCache.java:200) - locked <7f333b8c0> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.fetch(PropertyCache.java:332) at org.apache.fop.fo.properties.PropertyCache.fetch(PropertyCache.java:346) at org.apache.fop.fo.properties.PropertyCacheTest.fillCache(PropertyCacheTest.java:37) at org.apache.fop.fo.properties.PropertyCacheTest.access$0(PropertyCacheTest.java:33) at org.apache.fop.fo.properties.PropertyCacheTest$1.call(PropertyCacheTest.java:22) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) "Thread B": "pool-1-thread-1" prio=5 tid=7fe282236000 nid=0x11660a000 waiting for monitor entry [116609000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.fop.fo.properties.PropertyCache.cleanSegment(PropertyCache.java:140) - waiting to lock <7f333b630> (a [Z) at org.apache.fop.fo.properties.PropertyCache.put(PropertyCache.java:200) - locked <7f333b970> (a org.apache.fop.fo.properties.PropertyCache$CacheSegment) at org.apache.fop.fo.properties.PropertyCache.fetch(PropertyCache.java:332) at org.apache.fop.fo.properties.PropertyCache.fetch(PropertyCache.java:346) at org.apache.fop.fo.properties.PropertyCacheTest.fillCache(PropertyCacheTest.java:37) at org.apache.fop.fo.properties.PropertyCacheTest.access$0(PropertyCacheTest.java:33) at org.apache.fop.fo.properties.PropertyCacheTest$1.call(PropertyCacheTest.java:22) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
