Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0.2
-
None
Description
From the IT MSITE-506 of the Site Plugin:
Caused by: java.lang.ClassCastException: org.codehaus.plexus.archiver.zip.ZipUnArchiver$__plexus6 at org.codehaus.plexus.archiver.manager.DefaultArchiverManager.getUnArchiver(DefaultArchiverManager.java:76) at org.apache.maven.plugin.javadoc.resolver.ResourceResolver.resolveAndUnpack(ResourceResolver.java:357) at org.apache.maven.plugin.javadoc.resolver.ResourceResolver.resolveFromArtifacts(ResourceResolver.java:302) at org.apache.maven.plugin.javadoc.resolver.ResourceResolver.resolveDependencySourcePaths(ResourceResolver.java:143) at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.getDependencySourcePaths(AbstractJavadocMojo.java:2169) at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.getSourcePaths(AbstractJavadocMojo.java:2058) at org.apache.maven.plugin.javadoc.JavadocReport.canGenerateReport(JavadocReport.java:213) at org.apache.maven.plugins.site.DefaultMavenReportExecutor.canGenerateReport(DefaultMavenReportExecutor.java:299) at org.apache.maven.plugins.site.DefaultMavenReportExecutor.buildMavenReports(DefaultMavenReportExecutor.java:278)
Cause is the following container scenario:
maven-realm site-plugin-realm <-- plexus lookup realm javadoc-plugin-realm <-- TCCL
where both the Site Plugin and the Javadoc Plugin depend on plexus-archiver.
The way the container resolves string-based roles is to first check the lookup realm, then the TCCL for the interface/component. In the setup above, this ends up using components from the Site Plugin for the execution of the Javadoc Plugin, boom.
After talking with Stuart, the fix seems to be as simple as just nullifying the lookup realm, thereby consequently using the TCCL for the lookups.
Attachments
Issue Links
- is related to
-
MNG-4925 Mismanagement of container lookup realm can cause type incompatibilities for plugins looking up components by string
- Closed