Author: kfujino
Date: Tue Oct 5 05:31:37 2010
New Revision: 1004526
URL: http://svn.apache.org/viewvc?rev=1004526&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/tc6.0.x/trunk/STATUS.txt
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1004526&r1=1004525&r2=1004526&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Tue Oct 5 05:31:37 2010
@@ -146,23 +146,6 @@ PATCHES PROPOSED TO BACKPORT:
kkolinko: A bit hard to understand. The proposal is about a rule that
processes
<Context>, but LifecycleListenerRule is used for <Engine> and <Host> as
well.
-* 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.
- http://svn.apache.org/viewvc?view=revision&revision=996778
- http://svn.apache.org/viewvc?rev=1002935&view=rev
- +1: kfujino, markt, kkolinko
- -1:
- kkolinko: I think getMapOwner().objectMadePrimay(key, entry.getValue()); can
- throw an NPE. Can the mapOwner be null?
- kfujino : mapOwner is specified by the argument of the constructor of
AbstractReplicatedMap.
- LazyReplicatedMap is constructed specifying "this" in
BackupManager#startInternal().
- Therefore, I think mapOwner can not be null.
- kkolinko: LazyReplicatedMap is constructed specifying "null" in
o.a.c.tribes.demos.MapDemo
- The other call to objectMadePrimay() (in
AbstractReplicatedMap.memberDisappeared(..)) checks for null:
- if ( mapOwner!=null )
mapOwner.objectMadePrimay(entry.getKey(),entry.getValue());
- kfujino: I see, I'll add check for null.
-
* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49209
Prevent possible AccessControlException during undeployment when running with
a security manager
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java?rev=1004526&r1=1004525&r2=1004526&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
Tue Oct 5 05:31:37 2010
@@ -141,6 +141,7 @@ public class BackupManager extends Stand
DeltaSession session = (DeltaSession)value;
synchronized (session) {
session.access();
+ session.setPrimarySession(true);
session.endAccess();
}
}
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1004526&r1=1004525&r2=1004526&view=diff
==============================================================================
---
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
(original)
+++
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
Tue Oct 5 05:31:37 2010
@@ -879,12 +879,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);
-
+ if ( getMapOwner()!=null ) getMapOwner().objectMadePrimay(key,
entry.getValue());
} catch (Exception x) {
log.error("Unable to replicate out data for a
LazyReplicatedMap.get operation", x);
@@ -892,12 +896,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/tc6.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=1004526&r1=1004525&r2=1004526&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Tue Oct 5 05:31:37 2010
@@ -164,6 +164,10 @@
logs the stack trace but doesn't do anything to deal with the failure).
(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="Webapps">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]