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: [email protected]
For additional commands, e-mail: [email protected]