maven-archetype icon indicating copy to clipboard operation
maven-archetype copied to clipboard

[ARCHETYPE-539] Maven archetype:generate hangs on retrieval of archetype-catalog.xml even on offline mode

Open jira-importer opened this issue 7 years ago • 2 comments

Franz Allan Valencia See opened ARCHETYPE-539 and commented

Steps to reproduce 

1.a Have slow connection 

1.b.Alternatively, simulate slow connection with crapify

1.b.1. Install crapify - npm install crapify -g

1.b.2. Run crapify - crapify --port=5000 --speed=1 start

1.b.3. Configure ~/.m2/settings.xml to use crapify

<settings>
...
   <proxies>
       <proxy>
           <id>crapify-proxy</id>
           <active>true</active>
           <protocol>http</protocol>
           <host>localhost</host>
           <port>5000</port>
       </proxy>
    </proxies>
...
</settings>

 

  1. Execute 
$ mvn archetype:generate -DgroupId=com.example -DartifactId=example -Dversion=1.0-SNAPSHOT -o

  

Expected Behaviour:

The list of available archetypes would be shown to the user. 

Note: I believe in older versions, only the basic archetypes are shown like quickstart

 

Actual Behaviour:

Maven command hangs in this last last line:

[DEBUG] Searching for remote catalog: https://repo.maven.apache.org/maven2/archetype-catalog.xml

 


Affects: 3.0.1

Attachments:

2 votes, 4 watchers

jira-importer avatar Jan 31 '18 13:01 jira-importer

Jesse Glick commented

This is particular painful when a Nexus mirror is configured; for some reason seems to be much slower, taking ~2m to generate one project from archetype.

I would think that if the GAV are all defined, then this should work offline; and if the GA are defined, and version is set to LATEST or RELEASE, then it should merely need to download maven-metadata.xml for that GA. The full catalog should only be necessary if you are running in interactive mode and browsing available archetypes.

jira-importer avatar Nov 05 '20 21:11 jira-importer

Martijn Dashorst commented

Stack trace of the process hanging:

"main" #1 prio=5 os_prio=31 cpu=926.26ms elapsed=47.33s tid=0x000000013880ea00 nid=0x1f03 runnable  [0x000000016d758000]   java.lang.Thread.State: RUNNABLE	at sun.nio.ch.Net.connect0([email protected]/Native Method)	at sun.nio.ch.Net.connect([email protected]/Net.java:579)	at sun.nio.ch.Net.connect([email protected]/Net.java:568)	at sun.nio.ch.NioSocketImpl.connect([email protected]/NioSocketImpl.java:588)	at java.net.SocksSocketImpl.connect([email protected]/SocksSocketImpl.java:327)	at java.net.Socket.connect([email protected]/Socket.java:633)	at org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:368)	at org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)	at org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)	at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)	at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.execute(MainClientExec.java:236)	at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)	at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec.execute(RetryExec.java:89)	at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec.execute(RedirectExec.java:110)	at org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)	at org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)	at org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.execute(AbstractHttpClientWagon.java:1005)	at org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:1162)	at org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:1140)	at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:126)	at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88)	at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61)	at org.apache.maven.archetype.source.RemoteCatalogArchetypeDataSource.downloadCatalog(RemoteCatalogArchetypeDataSource.java:165)	at org.apache.maven.archetype.source.RemoteCatalogArchetypeDataSource.getArchetypeCatalog(RemoteCatalogArchetypeDataSource.java:129)	at org.apache.maven.archetype.DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:197)	at org.apache.maven.archetype.ui.generation.DefaultArchetypeSelector.getArchetypesByCatalog(DefaultArchetypeSelector.java:198)	at org.apache.maven.archetype.ui.generation.DefaultArchetypeSelector.selectArchetype(DefaultArchetypeSelector.java:73)	at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:193)	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:370)	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:351)	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215)	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:171)	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:163)	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:294)	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:960)	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:293)	at org.apache.maven.cli.MavenCli.main(MavenCli.java:196)	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native Method)	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:77)	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)	at java.lang.reflect.Method.invoke([email protected]/Method.java:568)	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)

jira-importer avatar Sep 13 '22 19:09 jira-importer