Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/java/awt/List/ActionAfterRemove/ActionAfterRemove.java
38828 views
/*1* Copyright (c) 2006, 2007, 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@bug 642618626@summary XToolkit: List throws ArrayIndexOutOfBoundsException on double clicking when the List is empty27@author Dmitry Cherepanov area=awt-list28@library ../../regtesthelpers29@build Util30@run main ActionAfterRemove31*/3233import java.awt.*;34import java.awt.event.*;35import test.java.awt.regtesthelpers.Util;3637public class ActionAfterRemove38{39private static volatile boolean passed = true;4041public static final void main(String args[])42{43// In order to handle all uncaught exceptions in the EDT44final Thread.UncaughtExceptionHandler eh = new Thread.UncaughtExceptionHandler()45{46@Override47public void uncaughtException(Thread t, Throwable e)48{49e.printStackTrace();50passed = false;51}52};5354final Frame frame = new Frame();55final List list = new List();56Robot robot = null;575859list.add("will be removed");60frame.add(list);6162frame.setLayout(new FlowLayout());63frame.setBounds(100,100,300,300);64frame.setVisible(true);6566list.select(0);67list.remove(0);6869try{70robot = new Robot();71}catch(AWTException e){72throw new RuntimeException(e);73}7475Util.clickOnComp(list, robot);76robot.waitForIdle();77Util.clickOnComp(list, robot);78robot.waitForIdle();7980if (!passed){81throw new RuntimeException("Test failed: exception was thrown on EDT.");82}8384}//End init()85}868788