This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git

commit 086d05bbd933f50a7026817132045f63c7538e36
Author: Guillaume Nodet <[email protected]>
AuthorDate: Sun Jun 7 06:37:36 2026 +0000

    Fix WagonTransporter close-while-executing wagon leak
    
    F-12: After transfer completes, check if the transporter was closed
    during execution. If so, disconnect and release the wagon instead of
    returning it to the queue where it would never be cleaned up.
---
 .../java/org/eclipse/aether/transport/wagon/WagonTransporter.java  | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git 
a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
 
b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
index 082f07bca..b36b439ce 100644
--- 
a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
+++ 
b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
@@ -357,7 +357,12 @@ final class WagonTransporter implements Transporter {
                 runner.run(wagon);
             } finally {
                 wagon.removeTransferListener(listener);
-                wagons.add(wagon);
+                if (closed.get()) {
+                    disconnectWagon(wagon);
+                    releaseWagon(wagon);
+                } else {
+                    wagons.add(wagon);
+                }
             }
         } catch (RuntimeException e) {
             throw WagonCancelledException.unwrap(e);

Reply via email to