jakartaee / jakartaee/authentication

excessive amount of TCK testing causes Apache to deny download of Apache ANT (should this be a TCK challenge?)

Open
#235 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
27
Forks
35
PR merge metrics
No merged PRs in 30d

Description

Failure occurs while testing EE 10 + Authentication 3.0.1 TCK, we observed the following behavior when running the Old Authentication TCK:

> [INFO] -----< org.eclipse.ee4j.tck.authentication:old-authentication-tck >-----
> [INFO] Building Old Jakarta Authentication TCK - build 3.0.1
> [INFO] from pom.xml
> [INFO] --------------------------------[ pom ]---------------------------------
> [INFO]
> [INFO] --- download:1.6.7:wget (download-ant) @ old-authentication-tck ---
> Jul 02, 2025 9:01:11 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: I/O exception (java.net.NoRouteToHostException) caught when processing request to {s}->[https://archive.apache.org:443](https://archive.apache.org/): No route to host
> Jul 02, 2025 9:01:11 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: Retrying request to {s}->[https://archive.apache.org:443](https://archive.apache.org/)
> Jul 02, 2025 9:03:21 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: I/O exception (java.net.NoRouteToHostException) caught when processing request to {s}->[https://archive.apache.org:443](https://archive.apache.org/): No route to host
> Jul 02, 2025 9:03:21 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: Retrying request to {s}->[https://archive.apache.org:443](https://archive.apache.org/)
> Jul 02, 2025 9:05:49 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: I/O exception (java.net.NoRouteToHostException) caught when processing request to {s}->[https://archive.apache.org:443](https://archive.apache.org/): No route to host
> Jul 02, 2025 9:05:49 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: Retrying request to {s}->[https://archive.apache.org:443](https://archive.apache.org/)
> [WARNING] Could not get content
> java.net.NoRouteToHostException: No route to host
> at sun.nio.ch.Net.connect0 (Native Method)
> at sun.nio.ch.Net.connect (Net.java:579)
> at sun.nio.ch.Net.connect (Net.java:568)
> at sun.nio.ch.NioSocketImpl.connect (NioSocketImpl.java:593)
> at java.net.SocksSocketImpl.connect (SocksSocketImpl.java:327)
> at java.net.Socket.connect (Socket.java:633)
> at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket (SSLConnectionSocketFactory.java:368)
> at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect (DefaultHttpClientConnectionOperator.java:142)
> at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect (PoolingHttpClientConnectionManager.java:376)
> at org.apache.http.impl.execchain.MainClientExec.establishRoute (MainClientExec.java:393)
> at org.apache.http.impl.execchain.MainClientExec.execute (MainClientExec.java:236)
> at org.apache.http.impl.execchain.ProtocolExec.execute (ProtocolExec.java:186)
> at org.apache.http.impl.execchain.RetryExec.execute (RetryExec.java:89)
> at org.apache.http.impl.execchain.RedirectExec.execute (RedirectExec.java:110)
> at org.apache.http.impl.client.InternalHttpClient.doExecute (InternalHttpClient.java:185)
> at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:72)
> at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:221)
> at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:165)
> at com.googlecode.download.maven.plugin.internal.HttpFileRequester.download (HttpFileRequester.java:56)
> at com.googlecode.download.maven.plugin.internal.WGet.doGet (WGet.java:576)
> at com.googlecode.download.maven.plugin.internal.WGet.execute (WGet.java:434)
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
> at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
> at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
> at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
> at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
> at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
> at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
> at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:569)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
> [WARNING] Retrying (1 more)
> Jul 02, 2025 9:10:44 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: I/O exception (java.net.NoRouteToHostException) caught when processing request to {s}->[https://archive.apache.org:443](https://archive.apache.org/): No route to host
> Jul 02, 2025 9:10:44 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: Retrying request to {s}->[https://archive.apache.org:443](https://archive.apache.org/)
> Jul 02, 2025 9:13:12 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: I/O exception (java.net.NoRouteToHostException) caught when processing request to {s}->[https://archive.apache.org:443](https://archive.apache.org/): No route to host
> Jul 02, 2025 9:13:12 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: Retrying request to {s}->[https://archive.apache.org:443](https://archive.apache.org/)
> Jul 02, 2025 9:15:55 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: I/O exception (java.net.NoRouteToHostException) caught when processing request to {s}->[https://archive.apache.org:443](https://archive.apache.org/): No route to host
> Jul 02, 2025 9:15:55 AM org.apache.http.impl.execchain.RetryExec execute
> INFO: Retrying request to {s}->[https://archive.apache.org:443](https://archive.apache.org/)
> [WARNING] Could not get content
> java.net.NoRouteToHostException: No route to host
> at sun.nio.ch.Net.connect0 (Native Method)
> at sun.nio.ch.Net.connect (Net.java:579)
> at sun.nio.ch.Net.connect (Net.java:568)
> at sun.nio.ch.NioSocketImpl.connect (NioSocketImpl.java:593)
> at java.net.SocksSocketImpl.connect (SocksSocketImpl.java:327)
> at java.net.Socket.connect (Socket.java:633)
> at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket (SSLConnectionSocketFactory.java:368)
> at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect (DefaultHttpClientConnectionOperator.java:142)
> at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect (PoolingHttpClientConnectionManager.java:376)
> at org.apache.http.impl.execchain.MainClientExec.establishRoute (MainClientExec.java:393)
> at org.apache.http.impl.execchain.MainClientExec.execute (MainClientExec.java:236)
> at org.apache.http.impl.execchain.ProtocolExec.execute (ProtocolExec.java:186)
> at org.apache.http.impl.execchain.RetryExec.execute (RetryExec.java:89)
> at org.apache.http.impl.execchain.RedirectExec.execute (RedirectExec.java:110)
> at org.apache.http.impl.client.InternalHttpClient.doExecute (InternalHttpClient.java:185)
> at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:72)
> at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:221)
> at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:165)
> at com.googlecode.download.maven.plugin.internal.HttpFileRequester.download (HttpFileRequester.java:56)
> at com.googlecode.download.maven.plugin.internal.WGet.doGet (WGet.java:576)
> at com.googlecode.download.maven.plugin.internal.WGet.execute (WGet.java:434)
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
> at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
> at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
> at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
> at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
> at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
> at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
> at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:569)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
>

Cause:

tck/old-tck/build/pom.xml has:
```

1.10.11
${project.build.directory}/apache-ant-${ant.version}
https://archive.apache.org/dist/ant/binaries/apache-ant-${ant.version}-bin.zip


com.googlecode.maven-download-plugin
download-maven-plugin
false
1.6.7


download-ant
generate-sources

wget


${skipITs}
${ant.zip.url}
true
${project.build.directory}




```

Some possible options to address:
- Allow user running the TCK to set ANT_HOME to a folder that already contains Apache ANT and change TCK to detect that is set to be used instead of downloading a new copy of Apache Ant.
- Instruct users to hack copy Apache Ant files into project.build.directory and hack the tck/old-tck/build/pom.xml to not download Apache Ant.
- Something else?

It seems reasonable that Apache detects that Apache Ant has been downloaded too many times in a short period of time but it is also reasonable that users expect the old Authentication TCK to just work.

Contributor guide

Open the contributing guide

Research direction

Start with tck/old-tck/build/pom.xml, especially the ant.version, ant.home, and ant.zip.url properties, then reproduce the Old Authentication TCK build failure. Determine whether the repeated download of Apache Ant should be changed as part of the TCK setup or treated as a TCK challenge; done means the intended behavior is agreed and the build no longer fails for this download scenario.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.