Path: blob/master/test/jdk/java/awt/List/ActionAfterRemove/ActionAfterRemove.java
41154 views
/*1* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24@test25@key headful26@bug 642618627@summary XToolkit: List throws ArrayIndexOutOfBoundsException on double clicking when the List is empty28@author Dmitry Cherepanov area=awt-list29@library ../../regtesthelpers30@build Util31@run main ActionAfterRemove32*/3334import java.awt.*;35import java.awt.event.*;36import test.java.awt.regtesthelpers.Util;3738public class ActionAfterRemove39{40private static volatile boolean passed = true;4142public static final void main(String args[])43{44// In order to handle all uncaught exceptions in the EDT45final Thread.UncaughtExceptionHandler eh = new Thread.UncaughtExceptionHandler()46{47@Override48public void uncaughtException(Thread t, Throwable e)49{50e.printStackTrace();51passed = false;52}53};5455final Frame frame = new Frame();56final List list = new List();57Robot robot = null;585960list.add("will be removed");61frame.add(list);6263frame.setLayout(new FlowLayout());64frame.setBounds(100,100,300,300);65frame.setVisible(true);6667list.select(0);68list.remove(0);6970try{71robot = new Robot();72}catch(AWTException e){73throw new RuntimeException(e);74}7576Util.clickOnComp(list, robot);77robot.waitForIdle();78Util.clickOnComp(list, robot);79robot.waitForIdle();8081if (!passed){82throw new RuntimeException("Test failed: exception was thrown on EDT.");83}8485}//End init()86}878889