Author: rjung
Date: Tue Jun 30 16:52:32 2009
New Revision: 789826
URL: http://svn.apache.org/viewvc?rev=789826&view=rev
Log:
BZ 46990: Improve locking in membership.
Backport of r771009 from TC 6.0.x.
Modified:
tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastMembership.java
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastMembership.java
Modified: tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml?rev=789826&r1=789825&r2=789826&view=diff
==============================================================================
--- tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml (original)
+++ tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml Tue Jun 30 16:52:32 2009
@@ -33,6 +33,10 @@
<subsection name="Cluster">
<changelog>
<fix>
+ <bug>46990</bug>: Improve locking in membership.
+ Backport from Tomcat 6.0. (rjung)
+ </fix>
+ <fix>
<bug>47389</bug>: DeltaManager doesn't do session replication if
notifySessionListenersOnReplication=false. (fhanik, rjung)
</fix>
Modified:
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastMembership.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastMembership.java?rev=789826&r1=789825&r2=789826&view=diff
==============================================================================
---
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastMembership.java
(original)
+++
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastMembership.java
Tue Jun 30 16:52:32 2009
@@ -38,6 +38,8 @@
{
protected static final McastMember[] EMPTY_MEMBERS = new McastMember[0];
+ private final Object membersLock = new Object();
+
/**
* The name of this membership, has to be the same as the name for the
local
* member
@@ -113,7 +115,7 @@
* @param member The member to add
*/
protected void addMcastMember(McastMember member) {
- synchronized (members) {
+ synchronized (membersLock) {
McastMember results[] =
new McastMember[members.length + 1];
for (int i = 0; i < members.length; i++)
@@ -130,7 +132,7 @@
* @param member The member to remove
*/
protected void removeMcastMember(McastMember member) {
- synchronized (members) {
+ synchronized (membersLock) {
int n = -1;
for (int i = 0; i < members.length; i++) {
if (members[i] == member) {
Modified:
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastMembership.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastMembership.java?rev=789826&r1=789825&r2=789826&view=diff
==============================================================================
---
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastMembership.java
(original)
+++
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastMembership.java
Tue Jun 30 16:52:32 2009
@@ -38,6 +38,8 @@
{
protected static final McastMember[] EMPTY_MEMBERS = new McastMember[0];
+ private final Object membersLock = new Object();
+
/**
* The name of this membership, has to be the same as the name for the
local
* member
@@ -113,7 +115,7 @@
* @param member The member to add
*/
protected void addMcastMember(McastMember member) {
- synchronized (members) {
+ synchronized (membersLock) {
McastMember results[] =
new McastMember[members.length + 1];
for (int i = 0; i < members.length; i++)
@@ -130,7 +132,7 @@
* @param member The member to remove
*/
protected void removeMcastMember(McastMember member) {
- synchronized (members) {
+ synchronized (membersLock) {
int n = -1;
for (int i = 0; i < members.length; i++) {
if (members[i] == member) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]