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");