Author: ifedorenko
Date: Thu Oct 14 16:59:46 2010
New Revision: 1022613
URL: http://svn.apache.org/viewvc?rev=1022613&view=rev
Log:
MNG-4866 use intermediate array to make sure we can purge all inherited
MavenSession instances
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultLegacySupport.java
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultLegacySupport.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultLegacySupport.java?rev=1022613&r1=1022612&r2=1022613&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultLegacySupport.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultLegacySupport.java
Thu Oct 14 16:59:46 2010
@@ -37,23 +37,29 @@ public class DefaultLegacySupport
implements LegacySupport
{
- private ThreadLocal<MavenSession> session = new
InheritableThreadLocal<MavenSession>();
+ private static final ThreadLocal<MavenSession[]> session = new
InheritableThreadLocal<MavenSession[]>();
public void setSession( MavenSession session )
{
if ( session == null )
{
- this.session.remove();
+ MavenSession[] oldSession = DefaultLegacySupport.session.get();
+ if ( oldSession != null )
+ {
+ oldSession[0] = null;
+ DefaultLegacySupport.session.remove();
+ }
}
else
{
- this.session.set( session );
+ DefaultLegacySupport.session.set( new MavenSession[] { session } );
}
}
public MavenSession getSession()
{
- return session.get();
+ MavenSession[] currentSession = DefaultLegacySupport.session.get();
+ return currentSession != null ? currentSession[0] : null;
}
public RepositorySystemSession getRepositorySession()