This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
NetBeans build 201203280401 JDK 7u3 32-bit I cancelled the Maven dependency download for a JEE application project, and got the following exception: java.lang.ThreadDeath at org.netbeans.modules.maven.embedder.exec.ProgressTransferListener.checkCancel(ProgressTransferListener.java:113) at org.netbeans.modules.maven.embedder.exec.ProgressTransferListener.transferProgressed(ProgressTransferListener.java:183) at org.sonatype.aether.connector.wagon.WagonTransferListenerAdapter.transferProgress(WagonTransferListenerAdapter.java:69) at org.apache.maven.wagon.events.TransferEventSupport.fireTransferProgress(TransferEventSupport.java:121) at org.apache.maven.wagon.AbstractWagon.fireTransferProgress(AbstractWagon.java:515) at org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:500) at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:339) at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:310) at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:287) at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:97) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:601) Caused: java.lang.IllegalStateException at org.sonatype.aether.util.concurrency.RunnableErrorForwarder.await(RunnableErrorForwarder.java:99) at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.get(WagonRepositoryConnector.java:448) at org.sonatype.aether.impl.internal.DefaultMetadataResolver$ResolveTask.run(DefaultMetadataResolver.java:563) at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [catch] at java.lang.Thread.run(Thread.java:722)
org.eclipse.aether.internal.impl.DefaultMetadataResolver seems to be using java.util.concurrent.ThreadPoolExecutor. That way in newly created/used threads the ThreadDeath exception thrown from our code inside, cannot be catched by our code on the outside. a few possible solutions: 1. don't allow multiple threads in the affected code. the max number of threads is governed by a property in code: ConfigUtils.getInteger( session, 4, "aether.metadataResolver.threads" ); 2. before throwing ThreadDeath check first if we are on a thread with known context (progress handle) and only throw then. Please note that with the current aether code, the ThreadDeath exception would never be called inside this class, because all networking would be done in pooled threads.
*** This bug has been marked as a duplicate of bug 197624 ***