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

Michael Osipov commented on DOXIASITETOOLS-301:
-----------------------------------------------

Note: It is not on the project graph, unrelated. This is a separate resolution.

Now, let me elaborate how Maven Resolver works here since it is just an 
artifact (site descriptor): If an artifact is not in the local repo, read no 
file exists, regardless of the size, go out and try to download, persist to 
local disk and check the checksum. If all fine, report if not, fail with an 
exception and mark as given out for resolution, will not try next time unless 
(a) you explicitly request it or (b) the wait time is over (see [update 
policy|https://maven.apache.org/pom.html#Repositories]). This is a great 
process not to reinvent the wheel.

Here is the old approach which combines reprecated Maven Artifact API and a 
band aid: Try to resolve, not found? Abuse the local site descriptor file as a 
zero byte marker which will force the artifact API not to try to resolve again 
because the file is there since the assumption is, if it wasn't there before, 
it won't appear at all. Might be true for releases, but not for snapshots. 
Using an artifact file as as marker is not a good solution.

Now pair both: Resolver sees the zero byte pseudo marker file and reports: Yep, 
here is your artifact. XML readers an empty file, there is your exception.

> Automatically remove the 0-byte site descriptors from the local repo
> --------------------------------------------------------------------
>
>                 Key: DOXIASITETOOLS-301
>                 URL: https://issues.apache.org/jira/browse/DOXIASITETOOLS-301
>             Project: Maven Doxia Sitetools
>          Issue Type: Improvement
>    Affects Versions: 2.0.0-M6
>            Reporter: Konrad Windszus
>            Priority: Major
>
> As older versions created 0-byte site descriptors in the local repo those 
> should be automatically removed if detected. Otherwise you run into the 
> following error
> {code}
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-site-plugin:4.0.0-M6:site
> (generate-site) on project openmeetings-parent: SiteToolException:
> Error reading site descriptor: input contained no data -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
> execute goal org.apache.maven.plugins:maven-site-plugin:4.0.0-M6:site
> (generate-site) on project openmeetings-parent: SiteToolException:
> Error reading site descriptor
>    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
> (MojoExecutor.java:347)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
> (MojoExecutor.java:330)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:213)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:175)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
> (MojoExecutor.java:76)
>    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
> (MojoExecutor.java:163)
>    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
> (DefaultMojosExecutionStrategy.java:39)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:160)
>    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:260)
>    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:172)
>    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:100)
>    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:821)
>    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:270)
>    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
>    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: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)
> Caused by: org.apache.maven.plugin.MojoExecutionException:
> SiteToolException: Error reading site descriptor
>    at 
> org.apache.maven.plugins.site.descriptor.AbstractSiteDescriptorMojo.prepareDecorationModel
> (AbstractSiteDescriptorMojo.java:94)
>    at 
> org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.createSiteRenderingContext
> (AbstractSiteRenderingMojo.java:246)
>    at org.apache.maven.plugins.site.render.SiteMojo.renderLocale
> (SiteMojo.java:138)
>    at org.apache.maven.plugins.site.render.SiteMojo.execute 
> (SiteMojo.java:123)
>    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
> (DefaultBuildPluginManager.java:126)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
> (MojoExecutor.java:342)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
> (MojoExecutor.java:330)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:213)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:175)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
> (MojoExecutor.java:76)
>    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
> (MojoExecutor.java:163)
>    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
> (DefaultMojosExecutionStrategy.java:39)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:160)
>    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:260)
>    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:172)
>    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:100)
>    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:821)
>    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:270)
>    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
>    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: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)
> Caused by: org.apache.maven.doxia.tools.SiteToolException: Error
> reading site descriptor
>    at org.apache.maven.doxia.tools.DefaultSiteTool.readDecorationModel
> (DefaultSiteTool.java:1026)
>    at org.apache.maven.doxia.tools.DefaultSiteTool.getDecorationModel
> (DefaultSiteTool.java:947)
>    at org.apache.maven.doxia.tools.DefaultSiteTool.getDecorationModel
> (DefaultSiteTool.java:979)
>    at org.apache.maven.doxia.tools.DefaultSiteTool.getDecorationModel
> (DefaultSiteTool.java:386)
>    at 
> org.apache.maven.plugins.site.descriptor.AbstractSiteDescriptorMojo.prepareDecorationModel
> (AbstractSiteDescriptorMojo.java:91)
>    at 
> org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.createSiteRenderingContext
> (AbstractSiteRenderingMojo.java:246)
>    at org.apache.maven.plugins.site.render.SiteMojo.renderLocale
> (SiteMojo.java:138)
>    at org.apache.maven.plugins.site.render.SiteMojo.execute 
> (SiteMojo.java:123)
>    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
> (DefaultBuildPluginManager.java:126)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
> (MojoExecutor.java:342)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
> (MojoExecutor.java:330)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:213)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:175)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
> (MojoExecutor.java:76)
>    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
> (MojoExecutor.java:163)
>    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
> (DefaultMojosExecutionStrategy.java:39)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:160)
>    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:260)
>    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:172)
>    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:100)
>    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:821)
>    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:270)
>    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
>    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: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)
> Caused by: java.io.EOFException: input contained no data
>    at org.codehaus.plexus.util.xml.pull.MXParser.fillBuf (MXParser.java:3898)
>    at org.codehaus.plexus.util.xml.pull.MXParser.more (MXParser.java:3980)
>    at org.codehaus.plexus.util.xml.pull.MXParser.parseProlog
> (MXParser.java:1774)
>    at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl (MXParser.java:1757)
>    at org.codehaus.plexus.util.xml.pull.MXParser.next (MXParser.java:1375)
>    at org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader.read
> (DecorationXpp3Reader.java:1415)
>    at org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader.read
> (DecorationXpp3Reader.java:579)
>    at org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader.read
> (DecorationXpp3Reader.java:594)
>    at org.apache.maven.doxia.tools.DefaultSiteTool.readDecorationModel
> (DefaultSiteTool.java:1022)
>    at org.apache.maven.doxia.tools.DefaultSiteTool.getDecorationModel
> (DefaultSiteTool.java:947)
>    at org.apache.maven.doxia.tools.DefaultSiteTool.getDecorationModel
> (DefaultSiteTool.java:979)
>    at org.apache.maven.doxia.tools.DefaultSiteTool.getDecorationModel
> (DefaultSiteTool.java:386)
>    at 
> org.apache.maven.plugins.site.descriptor.AbstractSiteDescriptorMojo.prepareDecorationModel
> (AbstractSiteDescriptorMojo.java:91)
>    at 
> org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.createSiteRenderingContext
> (AbstractSiteRenderingMojo.java:246)
>    at org.apache.maven.plugins.site.render.SiteMojo.renderLocale
> (SiteMojo.java:138)
>    at org.apache.maven.plugins.site.render.SiteMojo.execute 
> (SiteMojo.java:123)
>    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
> (DefaultBuildPluginManager.java:126)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
> (MojoExecutor.java:342)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
> (MojoExecutor.java:330)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:213)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:175)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
> (MojoExecutor.java:76)
>    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
> (MojoExecutor.java:163)
>    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
> (DefaultMojosExecutionStrategy.java:39)
>    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:160)
>    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:260)
>    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:172)
>    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:100)
>    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:821)
>    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:270)
>    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
>    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: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)
> {code}
> This has been reported in 
> https://the-asf.slack.com/archives/C7Q9JB404/p1680156986876729?thread_ts=1680110297.233759&cid=C7Q9JB404
>  and in https://lists.apache.org/thread/8w6c5l2pz2hbv918os0f8w58l4jnflyw



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

Reply via email to