Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 410024
Collapse All | Expand All

(-)a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/widgets/TabFolder.java (-1 / +1 lines)
Lines 520-526 Link Here
520
      setSelection( -1, false );
520
      setSelection( -1, false );
521
    }
521
    }
522
    itemHolder.remove( item );
522
    itemHolder.remove( item );
523
    if( itemHolder.size() > 0 && index <= oldSelectionIndex ) {
523
    if( itemHolder.size() > 0 && index <= oldSelectionIndex && !isInDispose() ) {
524
      boolean notifySelectionChanged = index == oldSelectionIndex;
524
      boolean notifySelectionChanged = index == oldSelectionIndex;
525
      setSelection( Math.max( 0, oldSelectionIndex - 1 ), notifySelectionChanged );
525
      setSelection( Math.max( 0, oldSelectionIndex - 1 ), notifySelectionChanged );
526
    }
526
    }
(-)a/tests/org.eclipse.rap.rwt.test/src/org/eclipse/swt/widgets/TabFolder_Test.java (+16 lines)
Lines 17-23 Link Here
17
import static org.junit.Assert.assertSame;
17
import static org.junit.Assert.assertSame;
18
import static org.junit.Assert.assertTrue;
18
import static org.junit.Assert.assertTrue;
19
import static org.junit.Assert.fail;
19
import static org.junit.Assert.fail;
20
import static org.mockito.Matchers.any;
20
import static org.mockito.Mockito.mock;
21
import static org.mockito.Mockito.mock;
22
import static org.mockito.Mockito.times;
23
import static org.mockito.Mockito.verify;
21
24
22
import java.util.ArrayList;
25
import java.util.ArrayList;
23
26
Lines 219-225 Link Here
219
  @Test
222
  @Test
220
  public void testDispose() {
223
  public void testDispose() {
221
    TabItem item = new TabItem( folder, SWT.NONE );
224
    TabItem item = new TabItem( folder, SWT.NONE );
225
222
    folder.dispose();
226
    folder.dispose();
227
223
    assertTrue( item.isDisposed() );
228
    assertTrue( item.isDisposed() );
224
    assertEquals( 0, ItemHolder.getItemHolder( folder ).getItems().length );
229
    assertEquals( 0, ItemHolder.getItemHolder( folder ).getItems().length );
225
  }
230
  }
Lines 457-462 Link Here
457
    assertEquals( 2, folder.getItemCount() );
462
    assertEquals( 2, folder.getItemCount() );
458
  }
463
  }
459
464
465
  @Test
466
  public void testDispose_doesNotFireSelectionEvent() {
467
    createItems( folder, 3 );
468
    Listener listener = mock( Listener.class );
469
    folder.addListener( SWT.Selection, listener );
470
471
    folder.dispose();
472
473
    verify( listener, times( 0 ) ).handleEvent( any( Event.class ) );
474
  }
475
460
  private void createItems( TabFolder folder, int number ) {
476
  private void createItems( TabFolder folder, int number ) {
461
    for( int i = 0; i < number; i++ ) {
477
    for( int i = 0; i < number; i++ ) {
462
      TabItem item = new TabItem( folder, SWT.NONE );
478
      TabItem item = new TabItem( folder, SWT.NONE );

Return to bug 410024