Each plugin invokation gets its own classloader as this is to allow for different versions of the same plugin being used in a multi-module project, also to allow for injecting different dependencies into a plugin.
On 12 July 2012 06:55, Oleg Estekhin <[email protected]> wrote: > HI, thanks for response. > > By the "build tasks" I meant invocations of plugin:goal. In our case we > narrowed the issue down to the single phase and single plugin, so during > parallel build Maven just runs the same plugin:goal > (svn-revision-number-maven-**plugin:revision) for different modules. The > instance of the plugin mojo is, of course, different for each invocation, > but at some point there appears one more classloader, the plugin mojo class > and library classes that it uses are initialized for the second time, and > after that some build tasks use the "old" plugin.class hierarchy, and some > build tasks use the "new" plugin.class hierarchy. > > For example, the log contains the following log messages produced by the > plugin: > [INFO] [pool-1-thread-1] identities: thread=0x4FC90D2C, this=0x67CC4E4D, > this.class=0x64375C2A, this.class.loader=0x3BAF655E, > SqlJetFileLockManager.class=**0x58D3E2 > Plugin logs these identities each time it is invoked, so there are o lot > of such messages with different "thread" and "this", but the same > "this.class", "this.class.loader" and "SqlJetFileLockManager.class". > > And then the following log messages start to show: > [INFO] [pool-1-thread-14] identities: thread=0x7429D88, this=0x3345FC7A, > this.class=0x12329908, this.class.loader=0x5742691B, > SqlJetFileLockManager.class=**0x3EE53DAE > > > Regards, > Oleg > > -----Исходное сообщение----- From: Olivier Lamy > Sent: Thursday, July 12, 2012 2:49 AM > To: Maven Users List > Subject: Re: problem: Maven creates the second plugin classloader during > parallel build and uses two classloader hierachies simultaneously > > > Hi, > > 2012/7/11 Oleg Estekhin <[email protected]>: > >> Hi, >> >> I am trying to solve the mystery behind >> http://code.google.com/p/**maven-svn-revision-number-** >> plugin/issues/detail?id=16<http://code.google.com/p/maven-svn-revision-number-plugin/issues/detail?id=16> >> with the help of the reporter of the original issue and the developer of >> SqlJet library. >> >> So far we have found that at some point there appears second classloader, >> which initializes some singleton classes second time, and after that the >> parallel build continues with two separate singletons. One set of build >> tasks still uses the first singleton, other set of build tasks uses the >> second singleton, and that, just as expected, causes a lot of pain later. >> > What do you mean with "build tasks" ? A maven plugin ? > If yes that's normal each plugin have his own classloader. > > > ------------------------------**------------------------------**--------- > To unsubscribe, e-mail: > users-unsubscribe@maven.**apache.org<[email protected]> > For additional commands, e-mail: [email protected] > >
