[ https://issues.apache.org/jira/browse/MNG-7111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Nodet updated MNG-7111: --------------------------------- Fix Version/s: (was: 4.0.0-alpha-1) > Deadlock when reading pom > ------------------------- > > Key: MNG-7111 > URL: https://issues.apache.org/jira/browse/MNG-7111 > Project: Maven > Issue Type: Task > Reporter: Guillaume Nodet > Assignee: Robert Scholte > Priority: Major > Fix For: 4.0.0-alpha-2, 4.0.0 > > > I'm running into the following deadlock while building Apache Camel with the > current master: > {code} > "TransformThread-16@4333" daemon prio=5 tid=0x20 nid=NA waiting > java.lang.Thread.State: WAITING > blocks TransformThread-17@4342 > at java.lang.Object.wait(Object.java:-1) > at java.io.PipedInputStream.read(PipedInputStream.java:326) > at java.io.PipedInputStream.read(PipedInputStream.java:377) > at java.io.FilterInputStream.read(FilterInputStream.java:133) > at java.io.BufferedInputStream.fill(BufferedInputStream.java:252) > at java.io.BufferedInputStream.read(BufferedInputStream.java:271) > - locked <0x1163> (a java.io.BufferedInputStream) > at > org.codehaus.plexus.util.xml.XmlReader.getBOMEncoding(XmlReader.java:620) > at > org.codehaus.plexus.util.xml.XmlReader.doRawStream(XmlReader.java:440) > at org.codehaus.plexus.util.xml.XmlReader.<init>(XmlReader.java:178) > at org.codehaus.plexus.util.xml.XmlReader.<init>(XmlReader.java:145) > at > org.codehaus.plexus.util.xml.XmlStreamReader.<init>(XmlStreamReader.java:84) > at > org.codehaus.plexus.util.ReaderFactory.newXmlReader(ReaderFactory.java:109) > at > org.apache.maven.model.io.DefaultModelReader.read(DefaultModelReader.java:116) > at > org.apache.maven.model.io.DefaultModelReader.read(DefaultModelReader.java:90) > at > org.apache.maven.model.building.DefaultModelProcessor.read(DefaultModelProcessor.java:97) > at > org.apache.maven.model.building.DefaultModelBuilder.readRawModel(DefaultModelBuilder.java:736) > at > org.apache.maven.model.building.DefaultModelBuilder.access$200(DefaultModelBuilder.java:99) > at > org.apache.maven.model.building.DefaultModelBuilder$DefaultTransformerContextBuilder$1.findRawModel(DefaultModelBuilder.java:1588) > at > org.apache.maven.model.building.DefaultModelBuilder$DefaultTransformerContextBuilder$1.lambda$getRawModel$1(DefaultModelBuilder.java:1570) > at > org.apache.maven.model.building.DefaultModelBuilder$DefaultTransformerContextBuilder$1$$Lambda$129.1344264523.apply(Unknown > Source:-1) > at > java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) > - locked <0x115e> (a > java.util.concurrent.ConcurrentHashMap$ReservationNode) > at > org.apache.maven.model.building.DefaultModelBuilder$DefaultTransformerContextBuilder$1.getRawModel(DefaultModelBuilder.java:1569) > at > org.apache.maven.model.building.DefaultBuildPomXMLFilterFactory.lambda$getDependencyKeyToVersionMapper$3(DefaultBuildPomXMLFilterFactory.java:67) > at > org.apache.maven.model.building.DefaultBuildPomXMLFilterFactory$$Lambda$87.1867108691.apply(Unknown > Source:-1) > at > org.apache.maven.xml.sax.filter.ReactorDependencyXMLFilter.getVersion(ReactorDependencyXMLFilter.java:156) > at > org.apache.maven.xml.sax.filter.ReactorDependencyXMLFilter.endElement(ReactorDependencyXMLFilter.java:112) > at > org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:570) > at > com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:610) > at > com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1718) > at > com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2883) > at > com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) > at > com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) > at > com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534) > at > com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888) > at > com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824) > at > com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) > at > com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216) > at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357) > at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357) > at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357) > at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357) > at > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:687) > at > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:774) > at > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:370) > at > org.apache.maven.model.building.AbstractModelSourceTransformer.lambda$transform$1(AbstractModelSourceTransformer.java:157) > at > org.apache.maven.model.building.AbstractModelSourceTransformer$$Lambda$94.1778994610.run(Unknown > Source:-1) > at java.lang.Thread.run(Thread.java:834) > "TransformThread-17@4342" daemon prio=5 tid=0x21 nid=NA waiting for monitor > entry > java.lang.Thread.State: BLOCKED > waiting for TransformThread-16@4333 to release lock on <0x115e> (a > java.util.concurrent.ConcurrentHashMap$ReservationNode) > at > java.util.concurrent.ConcurrentHashMap.transfer(ConcurrentHashMap.java:2477) > at > java.util.concurrent.ConcurrentHashMap.addCount(ConcurrentHashMap.java:2348) > at > java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1773) > at > org.apache.maven.model.building.DefaultModelBuilder$DefaultTransformerContextBuilder$1.getRawModel(DefaultModelBuilder.java:1569) > at > org.apache.maven.model.building.DefaultBuildPomXMLFilterFactory.lambda$getDependencyKeyToVersionMapper$3(DefaultBuildPomXMLFilterFactory.java:67) > at > org.apache.maven.model.building.DefaultBuildPomXMLFilterFactory$$Lambda$87.1867108691.apply(Unknown > Source:-1) > at > org.apache.maven.xml.sax.filter.ReactorDependencyXMLFilter.getVersion(ReactorDependencyXMLFilter.java:156) > at > org.apache.maven.xml.sax.filter.ReactorDependencyXMLFilter.endElement(ReactorDependencyXMLFilter.java:112) > at > org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:570) > at > com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:610) > at > com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1718) > at > com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2883) > at > com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) > at > com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) > at > com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534) > at > com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888) > at > com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824) > at > com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) > at > com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216) > at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357) > at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357) > at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357) > at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357) > at > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:687) > at > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:774) > at > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:370) > at > org.apache.maven.model.building.AbstractModelSourceTransformer.lambda$transform$1(AbstractModelSourceTransformer.java:157) > at > org.apache.maven.model.building.AbstractModelSourceTransformer$$Lambda$94.1778994610.run(Unknown > Source:-1) > at java.lang.Thread.run(Thread.java:834) > {code} > The problem is that there's a misuse of {{computeIfAbsent}}. The javadoc > indicates that the mapping function should not attempt to modify the map, > which is exactly what we're doing in this case. -- This message was sent by Atlassian Jira (v8.20.10#820010)