tn5250j/src/org/tn5250j/framework/tn5250 Screen5250.java,1.16,1.17

Patrick Bielen <[email protected]> Thu, 03 Nov 2005 13:25:30 +0000
Newsgroups gmane.comp.java.tn5250j.cvs
Message-ID <[email protected]>
Update of /cvsroot/tn5250j/tn5250j/src/org/tn5250j/framework/tn5250
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25438/src/org/tn5250j/framework/tn5250

Modified Files:
	Screen5250.java 
Log Message:
Bug-fix : ScreenListener removes itself during an onScreenChanged() call
Bug submitted by Mitch Blevins

Index: Screen5250.java
===================================================================
RCS file: /cvsroot/tn5250j/tn5250j/src/org/tn5250j/framework/tn5250/Screen5250.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** Screen5250.java	8 Jul 2005 06:16:23 -0000	1.16
--- Screen5250.java	3 Nov 2005 13:25:28 -0000	1.17
***************
*** 3925,3934 ****
     private void fireScreenChanged(int which, int startRow, int startCol,
                                   int endRow, int endCol) {
- 
        if (listeners != null) {
!          int size = listeners.size();
           for (int i = 0; i < size; i++) {
!             ScreenListener target =
!                     (ScreenListener)listeners.elementAt(i);
              target.onScreenChanged(1,startRow,startCol,endRow,endCol);
           }
--- 3925,3937 ----
     private void fireScreenChanged(int which, int startRow, int startCol,
                                   int endRow, int endCol) {
        if (listeners != null) {
!           // Patch below contributed by Mitch Blevins
!          //int size = listeners.size();
!          Vector lc = new Vector(listeners);
!          int size = lc.size();
           for (int i = 0; i < size; i++) {
!             //ScreenListener target =
!               //      (ScreenListener)listeners.elementAt(i);
!               ScreenListener target = (ScreenListener)lc.elementAt(i);
              target.onScreenChanged(1,startRow,startCol,endRow,endCol);
           }
***************
*** 3961,3968 ****
  
        if (listeners != null) {
!          int size = listeners.size();
           for (int i = 0; i < size; i++) {
              ScreenListener target =
!                     (ScreenListener)listeners.elementAt(i);
              target.onScreenChanged(update,startRow,startCol,startRow,startCol);
           }
--- 3964,3973 ----
  
        if (listeners != null) {
!          Vector lc = new Vector(listeners);
!           //int size = listeners.size();
!          int size = lc.size();
           for (int i = 0; i < size; i++) {
              ScreenListener target =
!                     (ScreenListener)lc.elementAt(i);
              target.onScreenChanged(update,startRow,startCol,startRow,startCol);
           }
***************
*** 3977,3984 ****
  
        if (listeners != null) {
!          int size = listeners.size();
           for (int i = 0; i < size; i++) {
              ScreenListener target =
!                   (ScreenListener)listeners.elementAt(i);
              target.onScreenSizeChanged(numRows,numCols);
           }
--- 3982,3991 ----
  
        if (listeners != null) {
!          Vector lc = new Vector(listeners);
!           //int size = listeners.size();
!          int size = lc.size();
           for (int i = 0; i < size; i++) {
              ScreenListener target =
!                   (ScreenListener)lc.elementAt(i);
              target.onScreenSizeChanged(numRows,numCols);
           }



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php