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