[MNG-7743] Make the build work on JDK 20 (original) (raw)

When building Maven (from master and 3.9.x branches) using the latest JDK 20 RC (which is very likely going to be promoted to GA), I am seeing the following test error:

[ERROR] org.apache.maven.project.ProjectBuilderTest.testLocationTrackingResolution Time elapsed: 0.015 s <<< ERROR! java.lang.IllegalStateException: java.net.MalformedURLException: Illegal character found in host: '{' at org.apache.maven.repository.TestRepositoryConnector.(TestRepositoryConnector.java:56) at org.apache.maven.repository.TestRepositoryConnectorFactory.newInstance(TestRepositoryConnectorFactory.java:39) at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:121) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:515) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:433) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:261) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:242) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:277) at org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:167) at org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:214) at org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:279) at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:1517) at org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:1339) at org.apache.maven.model.building.DefaultModelBuilder.readEffectiveModel(DefaultModelBuilder.java:798) at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:896) at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:664) at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:645) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:167) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:130) at org.apache.maven.AbstractCoreMavenComponentTestCase.createMavenSession(AbstractCoreMavenComponentTestCase.java:126) at org.apache.maven.AbstractCoreMavenComponentTestCase.createMavenSession(AbstractCoreMavenComponentTestCase.java:110) at org.apache.maven.AbstractCoreMavenComponentTestCase.createMavenSession(AbstractCoreMavenComponentTestCase.java:106) at org.apache.maven.project.ProjectBuilderTest.testLocationTrackingResolution(ProjectBuilderTest.java:357) ... at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:581) Caused by: java.net.MalformedURLException: Illegal character found in host: '{' at java.base/java.net.URL.(URL.java:798) at java.base/java.net.URL.(URL.java:646) at java.base/java.net.URL.(URL.java:582) at org.apache.maven.repository.TestRepositoryConnector.(TestRepositoryConnector.java:54) ... 91 more Caused by: java.lang.IllegalArgumentException: Illegal character found in host: '{' at java.base/java.net.URLStreamHandler.setURL(URLStreamHandler.java:522) at java.base/java.net.URLStreamHandler.parseURL(URLStreamHandler.java:325) at java.base/sun.net.www.protocol.file.Handler.parseURL(Handler.java:56) at java.base/java.net.URL.(URL.java:793)

This seems to be related to https://bugs.openjdk.org/browse/JDK-8293590 which moved some of the URL validation to the constructor.

is related to

Task - A task that needs to be done. MNG-7046 Revert MNG-5639 and make repo config static only (no ${param} interpolation)

links to