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

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


The following commit(s) were added to refs/heads/master by this push:
     new f3b42f78e GH-1773: Treat 410 Gone as 404 Not Found (#1775)
f3b42f78e is described below

commit f3b42f78ed909da663caed360fc3727b1c09f0df
Author: Tamas Cservenak <[email protected]>
AuthorDate: Thu Jan 29 18:08:57 2026 +0100

    GH-1773: Treat 410 Gone as 404 Not Found (#1775)
    
    Fixes #1773
---
 .../aether/spi/connector/transport/http/HttpConstants.java  |  2 ++
 .../spi/connector/transport/http/HttpTransporter.java       | 13 ++++++++++++-
 .../aether/internal/test/util/http/HttpTransporterTest.java |  1 +
 .../eclipse/aether/transport/apache/ApacheTransporter.java  |  9 ---------
 .../org/eclipse/aether/transport/jdk/JdkTransporter.java    | 10 ----------
 .../eclipse/aether/transport/jetty/JettyTransporter.java    | 10 ----------
 6 files changed, 15 insertions(+), 30 deletions(-)

diff --git 
a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/http/HttpConstants.java
 
b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/http/HttpConstants.java
index 1a61e4ff1..6ae373d83 100644
--- 
a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/http/HttpConstants.java
+++ 
b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/http/HttpConstants.java
@@ -32,6 +32,8 @@ public final class HttpConstants {
 
     public static final int NOT_FOUND = 404;
 
+    public static final int GONE = 410;
+
     public static final int PRECONDITION_FAILED = 412;
 
     public static final String ACCEPT_ENCODING = "Accept-Encoding";
diff --git 
a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/http/HttpTransporter.java
 
b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/http/HttpTransporter.java
index 954ce8891..c3ed470fa 100644
--- 
a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/http/HttpTransporter.java
+++ 
b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/http/HttpTransporter.java
@@ -25,4 +25,15 @@ import 
org.eclipse.aether.spi.connector.transport.Transporter;
  *
  * @since 2.0.0
  */
-public interface HttpTransporter extends Transporter {}
+public interface HttpTransporter extends Transporter {
+    @Override
+    default int classify(Throwable error) {
+        if (error instanceof HttpTransporterException) {
+            int statusCode = ((HttpTransporterException) 
error).getStatusCode();
+            if (statusCode == HttpConstants.NOT_FOUND || statusCode == 
HttpConstants.GONE) {
+                return ERROR_NOT_FOUND;
+            }
+        }
+        return ERROR_OTHER;
+    }
+}
diff --git 
a/maven-resolver-test-http/src/main/java/org/eclipse/aether/internal/test/util/http/HttpTransporterTest.java
 
b/maven-resolver-test-http/src/main/java/org/eclipse/aether/internal/test/util/http/HttpTransporterTest.java
index 316657d43..704df5831 100644
--- 
a/maven-resolver-test-http/src/main/java/org/eclipse/aether/internal/test/util/http/HttpTransporterTest.java
+++ 
b/maven-resolver-test-http/src/main/java/org/eclipse/aether/internal/test/util/http/HttpTransporterTest.java
@@ -233,6 +233,7 @@ public abstract class HttpTransporterTest {
         assertEquals(Transporter.ERROR_OTHER, transporter.classify(new 
FileNotFoundException()));
         assertEquals(Transporter.ERROR_OTHER, transporter.classify(new 
HttpTransporterException(403)));
         assertEquals(Transporter.ERROR_NOT_FOUND, transporter.classify(new 
HttpTransporterException(404)));
+        assertEquals(Transporter.ERROR_NOT_FOUND, transporter.classify(new 
HttpTransporterException(410)));
     }
 
     @Test
diff --git 
a/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/ApacheTransporter.java
 
b/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/ApacheTransporter.java
index 3084c2ad7..1d9e655fe 100644
--- 
a/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/ApacheTransporter.java
+++ 
b/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/ApacheTransporter.java
@@ -430,15 +430,6 @@ final class ApacheTransporter extends AbstractTransporter 
implements HttpTranspo
         return UriUtils.resolve(baseUri, task.getLocation());
     }
 
-    @Override
-    public int classify(Throwable error) {
-        if (error instanceof HttpTransporterException
-                && ((HttpTransporterException) error).getStatusCode() == 
HttpStatus.SC_NOT_FOUND) {
-            return ERROR_NOT_FOUND;
-        }
-        return ERROR_OTHER;
-    }
-
     @Override
     protected void implPeek(PeekTask task) throws Exception {
         HttpHead request = commonHeaders(new HttpHead(resolve(task)));
diff --git 
a/maven-resolver-transport-jdk-parent/maven-resolver-transport-jdk11/src/main/java/org/eclipse/aether/transport/jdk/JdkTransporter.java
 
b/maven-resolver-transport-jdk-parent/maven-resolver-transport-jdk11/src/main/java/org/eclipse/aether/transport/jdk/JdkTransporter.java
index e1df36484..043ced255 100644
--- 
a/maven-resolver-transport-jdk-parent/maven-resolver-transport-jdk11/src/main/java/org/eclipse/aether/transport/jdk/JdkTransporter.java
+++ 
b/maven-resolver-transport-jdk-parent/maven-resolver-transport-jdk11/src/main/java/org/eclipse/aether/transport/jdk/JdkTransporter.java
@@ -96,7 +96,6 @@ import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.CONT
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.IF_UNMODIFIED_SINCE;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.LAST_MODIFIED;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.MULTIPLE_CHOICES;
-import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.NOT_FOUND;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.PRECONDITION_FAILED;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.RANGE;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.USER_AGENT;
@@ -281,15 +280,6 @@ final class JdkTransporter extends AbstractTransporter 
implements HttpTransporte
         return result;
     }
 
-    @Override
-    public int classify(Throwable error) {
-        if (error instanceof HttpTransporterException
-                && ((HttpTransporterException) error).getStatusCode() == 
NOT_FOUND) {
-            return ERROR_NOT_FOUND;
-        }
-        return ERROR_OTHER;
-    }
-
     @Override
     protected void implPeek(PeekTask task) throws Exception {
         HttpRequest.Builder request =
diff --git 
a/maven-resolver-transport-jetty/src/main/java/org/eclipse/aether/transport/jetty/JettyTransporter.java
 
b/maven-resolver-transport-jetty/src/main/java/org/eclipse/aether/transport/jetty/JettyTransporter.java
index 3a90132a7..33c54d9fd 100644
--- 
a/maven-resolver-transport-jetty/src/main/java/org/eclipse/aether/transport/jetty/JettyTransporter.java
+++ 
b/maven-resolver-transport-jetty/src/main/java/org/eclipse/aether/transport/jetty/JettyTransporter.java
@@ -77,7 +77,6 @@ import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.CONT
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.IF_UNMODIFIED_SINCE;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.LAST_MODIFIED;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.MULTIPLE_CHOICES;
-import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.NOT_FOUND;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.PRECONDITION_FAILED;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.RANGE;
 import static 
org.eclipse.aether.spi.connector.transport.http.HttpConstants.USER_AGENT;
@@ -219,15 +218,6 @@ final class JettyTransporter extends AbstractTransporter 
implements HttpTranspor
         return baseUri.resolve(task.getLocation());
     }
 
-    @Override
-    public int classify(Throwable error) {
-        if (error instanceof HttpTransporterException
-                && ((HttpTransporterException) error).getStatusCode() == 
NOT_FOUND) {
-            return ERROR_NOT_FOUND;
-        }
-        return ERROR_OTHER;
-    }
-
     @Override
     protected void implPeek(PeekTask task) throws Exception {
         Request request = client.newRequest(resolve(task)).method("HEAD");

Reply via email to