[jboss-cvs] JBossCache/src/org/jboss/cache ...
Manik Surtani
manik at jboss.org
Thu Apr 26 10:09:51 EDT 2007
User: msurtani
Date: 07/04/26 10:09:51
Modified: src/org/jboss/cache CacheImpl.java
Log:
Prevent leaking the list of members externally without proper sync controls.
Revision Changes Path
1.62 +19 -3 JBossCache/src/org/jboss/cache/CacheImpl.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: CacheImpl.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/CacheImpl.java,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- CacheImpl.java 26 Apr 2007 12:03:07 -0000 1.61
+++ CacheImpl.java 26 Apr 2007 14:09:51 -0000 1.62
@@ -315,7 +315,10 @@
*/
public List<Address> getMembers()
{
- return members;
+ synchronized (members)
+ {
+ return new ArrayList<Address>(members);
+ }
}
/**
@@ -855,8 +858,11 @@
}
if (members != null)
{
+ synchronized (members)
+ {
members.clear();
}
+ }
coordinator = false;
@@ -1924,7 +1930,17 @@
return null;
}
- validMembers = mbrs != null ? new Vector<Address>(mbrs) : new Vector<Address>(this.members);
+ validMembers = null;
+ if (mbrs != null)
+ validMembers = new Vector<Address>(mbrs);
+ else
+ {
+ synchronized (members)
+ {
+ validMembers = new Vector<Address>(this.members);
+ }
+ }
+
if (exclude_self && validMembers.size() > 0)
{
Object local_addr = getLocalAddress();
More information about the jboss-cvs-commits
mailing list