[
https://issues.apache.org/jira/browse/MNG-6130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16531736#comment-16531736
]
Michael Osipov commented on MNG-6130:
-------------------------------------
[~boris_brodski], thank you for looking into this.I do really appreciate.
Please join IRC on freenode, #maven.
[~rfscholte], any idea how we can proceed here? The requester is unable to
strip down his issue. I don't want to reject hard work just because the IT is
too complex to build.
> Loss of profile information in workaround for MNG-4900
> ------------------------------------------------------
>
> Key: MNG-6130
> URL: https://issues.apache.org/jira/browse/MNG-6130
> Project: Maven
> Issue Type: Bug
> Components: core
> Affects Versions: 3.3.9, 3.5.0
> Environment: Windows
> Reporter: Boris Brodski
> Priority: Major
> Labels: easyfix, patch
> Fix For: waiting-for-feedback
>
> Attachments: MNG-6130.patch
>
>
> Please, forgive me not providing example project reproducing the bug.
> It's very tricky and hopefully not necessary, since the 1-line fix is
> provided.
> Using profiles together with maven-javadoc-plugin results in the following
> problem:
> - Configuration from active profiles is not considered during dependency
> resolution started problematically from the maven-javadoc-plugin.
> This leads to unpredictable behavior, that is somewhat hard to reproduce.
> Here is the technical inside and the 1-line fix:
> In the DefaultMavenProjectBuilder.toRequest():
> {noformat}
> if ( profileManager != null ) {
> ...
> } else {
> ...
> /*
> * MNG-4900: Hack to workaround deficiency of legacy API which makes it
> impossible for plugins to access the
> * global profile manager which is required to build a POM like a CLI
> invocation does. Failure to consider
> * the activated profiles can cause repo declarations to be lost which in
> turn will result in artifact
> * resolution failures, in particular when using the enhanced local repo
> which guards access to local files
> * based on the configured remote repos.
> */
> request.setActiveProfileIds( req.getActiveProfiles() );
> request.setInactiveProfileIds( req.getInactiveProfiles() );
> }
> {noformat}
> Here we copy active and inactive profile ids, but we don't copy the list of
> all profile ids. Missing line:
> {noformat}
> request.setProfiles( req.getProfiles() );
> {noformat}
> As the result the method DefaultProfileManager.getActiveProfiles() always
> returns an empty list:
> {noformat}
> List<Profile> activeProfiles = new ArrayList<>( profiles.size() );
> for ( Profile profile : profiles ) {
> ...
> }
> return activeProfiles;
> {noformat}
> "profiles" here is empty, since it wasn't copied together with
> "getActiveProfiles()" and "getInactiveProfiles()"
> Adding the missing line fixes the problem.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)