maven-resolver tread-safe? Calling resolveDependencies in multiple threads

2017-12-08 Thread Andreas Sewe
Hi,

is maven-resolver (specifically resolveDependencies) thread safe? I know
that it places .lock files to avoid multiple threads trampling on each
others partial downloads, but I seem to have encountered a deadlock (or
some other phenomenon that causes it to hang).

Here's an excerpt from a stack dump I took:

> "BasicRepositoryConnector-uk.maven.org-2-1" #21 daemon prio=5 os_prio=31 
> tid=0x7f80609a6800 nid=0x5803 waiting on condition [0x00011ca65000]
>java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at 
> org.eclipse.aether.connector.basic.PartialFile$LockFile.lock(PartialFile.java:113)
> at 
> org.eclipse.aether.connector.basic.PartialFile$LockFile.(PartialFile.java:69)
> at 
> org.eclipse.aether.connector.basic.PartialFile$Factory.newInstance(PartialFile.java:278)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:438)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:360)
> at 
> org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> 
> "BasicRepositoryConnector-uk.maven.org-2-0" #20 daemon prio=5 os_prio=31 
> tid=0x7f805e21f800 nid=0x300b waiting on condition [0x00011c962000]
>java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at 
> org.eclipse.aether.connector.basic.PartialFile$LockFile.lock(PartialFile.java:113)
> at 
> org.eclipse.aether.connector.basic.PartialFile$LockFile.(PartialFile.java:69)
> at 
> org.eclipse.aether.connector.basic.PartialFile$Factory.newInstance(PartialFile.java:278)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:438)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:360)
> at 
> org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> 
> "ForkJoinPool-1-worker-0" #17 daemon prio=5 os_prio=31 tid=0x7f805ea24800 
> nid=0x5507 waiting on condition [0x0001716f3000]
>java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at 
> org.eclipse.aether.connector.basic.PartialFile$LockFile.lock(PartialFile.java:113)
> at 
> org.eclipse.aether.connector.basic.PartialFile$LockFile.(PartialFile.java:69)
> at 
> org.eclipse.aether.connector.basic.PartialFile$Factory.newInstance(PartialFile.java:278)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:438)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:360)
> at 
> org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:583)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:259)
> at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:498)
> at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:399)
> at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:224)
> at 
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:338)
> 
> "ForkJoinPool-1-worker-3" #16 daemon prio=5 os_prio=31 tid=0x7f805ea34800 
> nid=0x500b waiting on condition [0x00011cb88000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
> at 
> org.eclipse.aether.util.concurrency.RunnableErrorForwarder.awaitTerminationOfAllRunnables(RunnableErrorForwarder.java:137)
> at 
> org.eclipse.aether.util.concurrency.RunnableErrorForwarder.await(RunnableErrorForwarder.java:104)
> at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:262)
> at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:498)
> at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:399)
> at 
> 

Excluding inherited developers

2017-12-08 Thread James Hutton
I have a BOM that someone has added a developers and contributors section
to.   I'd like to leverage some maven reports that include both those
sections however I'd like do exclude the inherited values.  Does anyone
have a suggestion to remove the inherited tag values?   I've tried adding a
blank  and  in an intermediary BOM with no luck.


Thanks,
James