For websites with high traffic the following method can cause concurrency issues (resulting in corrupt group.xml) as it is not synchronized:
|
public void addMember(Item item) throws AccessManagementException { |
Possible solution:
The variable memberUserIDs should be created like this:
List<String> memberUserIDs = Collections.synchronizedList(new ArrayList<String>());
I suspect there are many locations in the Yanel code with similar concurrency issues...
For websites with high traffic the following method can cause concurrency issues (resulting in corrupt group.xml) as it is not synchronized:
security/src/impl/java/org/wyona/security/impl/yarep/YarepGroup.java
Line 194 in 13dabc3
Possible solution:
The variable
memberUserIDsshould be created like this:List<String> memberUserIDs = Collections.synchronizedList(new ArrayList<String>());I suspect there are many locations in the Yanel code with similar concurrency issues...