Author: kfujino
Date: Tue Apr 21 01:42:34 2015
New Revision: 1675020
URL: http://svn.apache.org/r1675020
Log:
Fix a concurrency issue when a backup message that has all session data and a
backup message that has diff data are processing at the same time.
Modified:
tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
Modified:
tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1675020&r1=1675019&r2=1675020&view=diff
==============================================================================
---
tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
(original)
+++
tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
Tue Apr 21 01:42:34 2015
@@ -671,8 +671,17 @@ public abstract class AbstractReplicated
diff.unlock();
}
} else {
- if ( mapmsg.getValue()!=null ) entry.setValue((V)
mapmsg.getValue());
-
((ReplicatedMapEntry)entry.getValue()).setOwner(getMapOwner());
+ if ( mapmsg.getValue()!=null ) {
+ if (mapmsg.getValue() instanceof
ReplicatedMapEntry) {
+ ReplicatedMapEntry re =
(ReplicatedMapEntry)mapmsg.getValue();
+ re.setOwner(getMapOwner());
+ entry.setValue((V) re);
+ } else {
+ entry.setValue((V) mapmsg.getValue());
+ }
+ } else {
+
((ReplicatedMapEntry)entry.getValue()).setOwner(getMapOwner());
+ }
} //end if
} else if (mapmsg.getValue() instanceof ReplicatedMapEntry) {
ReplicatedMapEntry re =
(ReplicatedMapEntry)mapmsg.getValue();
Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1675020&r1=1675019&r2=1675020&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Tue Apr 21 01:42:34 2015
@@ -177,6 +177,16 @@
</add>
</changelog>
</subsection>
+ <subsection name="Tribes">
+ <changelog>
+ <fix>
+ Fix a concurrency issue when a backup message that has all session data
+ and a backup message that has diff data are processing at the same
time.
+ This fix ensures that <code>MapOwner</code> is set to
+ <code>ReplicatedMapEntry</code>. (kfujino)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Other">
<changelog>
<fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]