Index: src/main/java/com/sun/enterprise/ee/cms/impl/base/ViewWindowImpl.java =================================================================== --- src/main/java/com/sun/enterprise/ee/cms/impl/base/ViewWindowImpl.java (revision 822) +++ src/main/java/com/sun/enterprise/ee/cms/impl/base/ViewWindowImpl.java (working copy) @@ -66,6 +66,7 @@ import java.util.List; import java.util.Map; import java.util.Vector; +import java.util.Collections; import java.util.concurrent.ArrayBlockingQueue; import java.util.logging.Level; import java.util.logging.Logger; @@ -80,7 +81,7 @@ static private Logger logger = GMSLogDomain.getLogger(GMSLogDomain.GMS_LOGGER); private static final int MAX_VIEWS = 100; // 100 is some default. private static final List EMPTY_GMS_MEMBER_LIST = new ArrayList(); - private final List> views = new Vector>(); + private final List> views = new Vector>(); private List signals = new Vector(); private final List currentCoreMembers = new ArrayList(); private final List allCurrentMembers = new ArrayList(); @@ -143,7 +144,7 @@ private void newViewObserved(final EventPacket packet) { final GMSMember member = Utility.getGMSMember(packet.getSystemAdvertisement()); synchronized (views) { - views.add(getMemberTokens(packet)); + views.add(Collections.unmodifiableList(getMemberTokens(packet))); if (views.size() > MAX_VIEWS) { views.remove(0); } Index: src/main/java/com/sun/enterprise/ee/cms/core/GroupLeadershipNotificationSignal.java =================================================================== --- src/main/java/com/sun/enterprise/ee/cms/core/GroupLeadershipNotificationSignal.java (revision 822) +++ src/main/java/com/sun/enterprise/ee/cms/core/GroupLeadershipNotificationSignal.java (working copy) @@ -48,14 +48,14 @@ */ public interface GroupLeadershipNotificationSignal extends Signal { /** - * provides a list of the previous view's snapshot at time signal arrives. + * provides a read-only list of the previous view's snapshot at time signal arrives. * * @return List containing the list of GMSMembers which are corresponding to the view */ List getPreviousView(); /** - * provides a list of the current view's snapshot at time signal arrives. + * provides a read-only list of the current view's snapshot at time signal arrives. * * @return List containing the list of GMSMembers which are corresponding to the view */