https://issues.apache.org/bugzilla/show_bug.cgi?id=46962

--- Comment #3 from Alexis Giotis <alex.gio...@gmail.com> 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.

Reply via email to