CDV ❯ race condition when chatter initializes
-
Bug
-
Status: Closed
-
2 Major
-
Resolution: Fixed
-
-
-
kkannaiy
-
Reporter: tgautier
-
December 11, 2007
-
0
-
Watchers: 1
-
February 12, 2013
-
February 07, 2008
Description
046 public class Main extends JFrame implements ActionListener, ChatterDisplay, 047 WindowListener { 048 049 private final ChatManager chatManager = new ChatManager(); 050 051 private final JTextPane display = new JTextPane(); 052 053 private User user; 054 055 private final JList buddyList = new JList(); 056 057 private boolean isServerDown = false; 058 private static final String CHATTER_SYSTEM = “SYSTEM”; 059 060 public Main() { 061 try { 062 final String nodeId = registerForNotifications(); 063 user = new User(nodeId, this); 064 populateCurrentUsers(); 065 login(); 066 }
between lines 49 and 65, there is a race - since the login method sets up a local listener for all chat events, it’s easy to lose the other client login if execution of 1 node is between 49 and 65, and the other completes 65 (the login process)
Comments
Fiona OShea 2008-01-23
Kalai Kannaiyan 2008-01-24
Tested with 2.5.1 rev6793, it is working as expected.
- Install the kit
- Start the demo server
- Launch the chatter demo
Actual: username and client node Id are displayed in the chatter demo and in th admin console
demo.chatter.Main.chatManager(dem.chater.chatManager) demo.chatter.Main.chatManager.users(java.util.TreeMap value(demo.chatter.User) demo.chatter.User.name(String): user name is displayed demo.chatter.User.nodeId(String):clientID[0]
Fiona OShea 2008-01-29
Closing based on Kalai’s tests
Taylor Gautier 2008-02-07
You have to start the two clients at the same time. Human time will not show this race. Maven usually starts them close enough.
Fiona OShea 2008-02-07
See Glassfish changes.
To verify the fix on this the only way to see the issue is to start multiple instances, really really quickly/really at the same time.
The best way to do this is to automate it.
Hung Huynh 2008-02-07
Tim has fixed this in the tc-2.5 branch of this project. Juris/Jason just needs to make a new release.
Juris Galang 2008-02-08
I already ported this fix in the tc-2.5 branch of chatter in the Forge. This issue should be fixed in release-1.0.2 - Jason has to release the Forge core artifacts before we could create a new release.
Juris Galang 2008-02-08
Also, Kalai should be able to verify this by checking out: https://svn.terracotta.org/repo/forge/projects/chatter/branches/tc-2.5
Kalai Kannaiyan 2008-03-07
Retested this issue with chatter-1.0.3-SNAPSHOT.jar from tc-2.5 branch. It is working as expected.
Steps to reproduce:
- svn co https://svn.terracotta.org/repo/forge/projects/chatter/branches/tc-2.5
- Verify that the tc-2.5 is created
- cd tc-2.5
- mvn clean install
- mvn clean tc:run
Actual: DSO Server started successfully and chatter window1 and chatter window2 are displayed in the same time with list of names.
Kalai this may be related to the issue you saw in chatter this week?