[ 
https://issues.apache.org/jira/browse/MNG-7743?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17703006#comment-17703006
 ] 

ASF GitHub Bot commented on MNG-7743:
-------------------------------------

yeikel commented on code in PR #1065:
URL: https://github.com/apache/maven/pull/1065#discussion_r1142851675


##########
maven-core/src/test/java/org/apache/maven/repository/TestRepositoryConnector.java:
##########
@@ -49,10 +49,18 @@ public class TestRepositoryConnector implements 
RepositoryConnector {
 
     public TestRepositoryConnector(RemoteRepository repository) {
         this.repository = repository;
-        try {
-            basedir = FileUtils.toFile(new URL(repository.getUrl()));
-        } catch (MalformedURLException e) {
-            throw new IllegalStateException(e);
+        String repositoryUrl = repository.getUrl();
+        if (repositoryUrl.contains("${")) {
+            // the repository url contains unresolved properties and getting 
the basedir is not possible
+            // in JDK 20+ 'new URL(string)' will fail if the string contains a 
curly brace
+            this.basedir = null;
+        } else {
+            try {
+                basedir = FileUtils.toFile(new URL(repositoryUrl));
+                System.out.println(basedir);
+            } catch (MalformedURLException e) {
+                throw new IllegalStateException(e);
+            }

Review Comment:
   ```suggestion
           } else {
               try {
                   basedir = FileUtils.toFile(new URL(repositoryUrl));
               } catch (MalformedURLException e) {
                   throw new IllegalStateException(e);
               }
   ```





> Make the build work on JDK 20
> -----------------------------
>
>                 Key: MNG-7743
>                 URL: https://issues.apache.org/jira/browse/MNG-7743
>             Project: Maven
>          Issue Type: Task
>          Components: Bootstrap & Build
>            Reporter: Petr Široký
>            Priority: Minor
>
> 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:
> {code:java}
> [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.<init>(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.<init>(URL.java:798)
>       at java.base/java.net.URL.<init>(URL.java:646)
>       at java.base/java.net.URL.<init>(URL.java:582)
>       at 
> org.apache.maven.repository.TestRepositoryConnector.<init>(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.<init>(URL.java:793)
> {code}
>  
> This seems to be related to [https://bugs.openjdk.org/browse/JDK-8293590] 
> which moved some of the URL validation to the constructor.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to