Author: kfujino
Date: Tue Sep 14 07:49:33 2010
New Revision: 996778

URL: http://svn.apache.org/viewvc?rev=996778&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49924
When non-primary node changes into a primary node, make sure isPrimarySession 
is changed to true.

Modified:
    tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java
    
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java?rev=996778&r1=996777&r2=996778&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/BackupManager.java Tue Sep 
14 07:49:33 2010
@@ -114,6 +114,7 @@ public class BackupManager extends Clust
             DeltaSession session = (DeltaSession)value;
             synchronized (session) {
                 session.access();
+                session.setPrimarySession(true);
                 session.endAccess();
             }
         }

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=996778&r1=996777&r2=996778&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
Tue Sep 14 07:49:33 2010
@@ -892,12 +892,16 @@ public abstract class AbstractReplicated
                     if ( dest!=null && dest.length >0) {
                         getChannel().send(dest, msg, getChannelSendOptions());
                     }
+                    if ( entry.getValue() != null && entry.getValue() 
instanceof ReplicatedMapEntry ) {
+                        ReplicatedMapEntry val = 
(ReplicatedMapEntry)entry.getValue();
+                        val.setOwner(getMapOwner());   
+                    }
                 }
                 entry.setPrimary(channel.getLocalMember(false));
                 entry.setBackupNodes(backup);
                 entry.setBackup(false);
                 entry.setProxy(false);
-
+                getMapOwner().objectMadePrimay(key, entry.getValue());
 
             } catch (Exception x) {
                 log.error("Unable to replicate out data for a 
LazyReplicatedMap.get operation", x);
@@ -905,12 +909,6 @@ public abstract class AbstractReplicated
             }
         }
         if (log.isTraceEnabled()) log.trace("Requesting id:"+key+" 
result:"+entry.getValue());
-        if ( entry.getValue() != null && entry.getValue() instanceof 
ReplicatedMapEntry ) {
-            ReplicatedMapEntry val = (ReplicatedMapEntry)entry.getValue();
-            //hack, somehow this is not being set above
-            val.setOwner(getMapOwner());
-            
-        }
         return entry.getValue();
     }    
 

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=996778&r1=996777&r2=996778&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Sep 14 07:49:33 2010
@@ -205,6 +205,10 @@
         session before the current request has a chance to send the replication
         message. (markt)
       </fix>
+      <fix>
+        <bug>49924</bug>: When non-primary node changes into a primary node, 
+        make sure isPrimarySession is changed to true. (kfujino)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Web applications">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to