Re: [jira] [Commented] (MNG-6275) ServiceLoaderFactory can't find implementations via ClassRealm

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Re: [jira] [Commented] (MNG-6275) ServiceLoaderFactory can't find implementations via ClassRealm

Hi Igor,

moving this to dev-list.
I've asked an explanation of the Java developers team. They confirm that  
they've made a more clear separation of boot-, system- and  
application-classloader. They wondered why we put "null" there in the  
first place, because in general the boot classloader is not enough.
I've tested if and this change would be the required fix for MANTRUN-200.  
I haven't found any failing tests yet.
If this causes issues for other frameworks we need to have a look what  
should be changed combined with the impact. Were they relying on a bug in  
Maven. Based on the analysis so far this should be the proper fix.
Can you somehow try to verify first if this is really an issue. I'm not  
sure if this should be reverted because of _potential_ issues, because in  
the end every change could result in new issues.

I'll try to prepare new Maven installation locally and run other Maven  
subprojects as well.


ps Stephen gave me the +1 for merging.

On Thu, 24 Aug 2017 14:30:00 +0200, Igor Fedorenko (JIRA)  
<[hidden email]> wrote:

>     [  
> ]
> Igor Fedorenko commented on MNG-6275:
> -------------------------------------
> I don't have time to do proper analysis of this, but this change will  
> likely cause problems in m2e, plugin testing, jenkins and other embedded  
> usecases, where contents of system classloader is generally unknown and  
> can contain classes that either collide or confuse plugins in some other  
> ways (e.g. random/unrelated components visible to plugins in only some  
> environments, which will be very hard to troubleshoot).
> PS: didn't we agree to get all core changes reviewed and +1'ed by at  
> least one other developer before pushing to master?
>> ServiceLoaderFactory can't find implementations via ClassRealm
>> --------------------------------------------------------------
>>                 Key: MNG-6275
>>                 URL:
>>             Project: Maven
>>          Issue Type: Bug
>>          Components: Class Loading
>>            Reporter: Robert Scholte
>>            Assignee: Robert Scholte
>>            Priority: Critical
>>             Fix For: 3.5.1
>> Spotted this issue via MANTRUN-200. The reason is that in the  
>> {{DefaultClassRealmManager}} a new realm is created where the parent  
>> classLoader is {{null}}. This implies that the bootstrap classloader is  
>> used as parent.
>> With Java8 nashorn has become an extension and is not part of the  
>> bootstrap classloader anymore.
>> It is kind of strange that we want the bootstrap classloader here, it  
>> makes more sense if the system classloader is used (but with Java 7 and  
>> older versions of Java this was not an issue, both worked fine).
> --
> This message was sent by Atlassian JIRA
> (v6.4.14#64029)

To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]