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()


Reply via email to