From: Sean B. <sbr...@ya...> - 2004-06-02 05:41:39
|
I fixed at least 1 case. To reproduce the bug, Start a client and a server on 1 machine, have the client play all players. Fight a battle, and have the attacker win. After the battle is over, the server will not see the territory change owner, or some of the units die. To fix, get the latest HistoryPanel.java Its a very subtle bug. In essence when the history panel recieves a change, it only performs the change if the displayed node is the last node. This is because if you are looking at a previous point in the history, you dont want to update with the changes as they arrive. The goToEnd() call was doing its work in a SwingUtilities.invokeLater() to make sure it was done in the swing event thread (where all updates to the ui should happen), but the problem was that the invoke later was being done twice, and the effect was that the goToEnd() was being called after the change was added to the history, and since the history wasnt at the end anymore, the changes werent getting performed. You can see it if you put a breakpoint on the server in the History.changeAdded() method. The changes at the end of the battle were not being performed because the m_currentNode == getLastNode() test failed. Sean |
From: NeKromancer -- G. <nek...@co...> - 2004-06-02 05:59:49
|
Good work on that. You mentioned that you fixed at least 1 case. I would assume there are other cases. Do you know what these other cases are and if it involves those methods you mentioned below? If you like, I can spend a few hours conducting tests to see what those other cases are and I can perform what you mentioned below, about adding the break points. I'll also look at the code changes you have done in games/strategy/triplea/ui/history/HistoryPanel.java And try to fix it if I should find one of those cases. Is there anything I need to know before starting? On Wed, 2004-06-02 at 00:41, Sean Bridges wrote: > I fixed at least 1 case. > > To reproduce the bug, > > Start a client and a server on 1 machine, have the > client play all players. > > Fight a battle, and have the attacker win. After the > battle is over, the server will not see the territory > change owner, or some of the units die. > > To fix, get the latest HistoryPanel.java > > > Its a very subtle bug. In essence when the history > panel recieves a change, it only performs the change > if the displayed node is the last node. This is > because if you are looking at a previous point in the > history, you dont want to update with the changes as > they arrive. > > The goToEnd() call was doing its work in a > SwingUtilities.invokeLater() to make sure it was done > in the swing event thread (where all updates to the ui > should happen), but the problem was that the invoke > later was being done twice, and the effect was that > the goToEnd() was being called after the change was > added to the history, and since the history wasnt at > the end anymore, the changes werent getting performed. > > You can see it if you put a breakpoint on the server > in the History.changeAdded() method. The changes at > the end of the battle were not being performed because > the m_currentNode == getLastNode() test failed. > > Sean > > > ------------------------------------------------------- > This SF.Net email is sponsored by the new InstallShield X. > >From Windows to Linux, servers to mobile, InstallShield X is the one > installation-authoring solution that does it all. Learn more and > evaluate today! http://www.installshield.com/Dev2Dev/0504 > _______________________________________________ > Triplea-developers mailing list > Tri...@li... > https://lists.sourceforge.net/lists/listinfo/triplea-developers -- The NeKromancer (also known as George) nek...@co... "Everything is never what it seems" "IRC, that cause of all problems" |