-
Bug
-
Resolution: Cannot Reproduce
-
P3
-
6
-
None
-
x86
-
windows_xp
Java Version: 1.6.0-b77
Platform: windowsXPpro
Prablems:
One awt test MouseButtonExTest is failing in winXP,
it got the following errors:
FAIL: Event was not fired. Component: class java.awt.Choice Key: CONTROL MouseBu
tton: BUTTON1
FAIL: Event was not fired. Component: class java.awt.Choice Key: CONTROL MouseBu
tton: BUTTON2
FAIL: Event was not fired. Component: class java.awt.Choice Key: CONTROL MouseBu
tton: BUTTON3
FAIL: Event was not fired. Component: class java.awt.TextArea Key: CONTROL Mouse
Button: BUTTON1
FAIL: Event was not fired. Component: class java.awt.TextArea Key: CONTROL Mouse
Button: BUTTON2
FAIL: Event was not fired. Component: class java.awt.TextArea Key: CONTROL Mouse
Button: BUTTON3
Test failed!
please see bug 6393307 also.
The test case is attached:
/**
* test 1.0 2001/08/12
* @summary To check whether
* getModifiersEx() returns the extended Modifiers flag for this event.
* Extended Modifiers represent state of all Mouse buttons just after the
* event occured.
*
* @author Vishal Byakod(###@###.###) area= AWT
* @run applet MouseButtonExTest.html
*/
import java.awt.*;
import java.awt.event.*;
public class MouseButtonExTest extends MouseAdapter {
private Frame frame;
private Panel panel;
private Button button;
private Label label;
private List list;
private Choice choice;
private Checkbox checkbox;
private Scrollbar scrollbar;
private TextField textfield;
private TextArea textarea;
private Component[] components;
private Component testedComponent;
private int[] keyTypes;
private String[] keyNames;
private int[] keyMasks;
private int[] mouseButtonTypes = {
InputEvent.BUTTON1_MASK,
InputEvent.BUTTON2_MASK,
InputEvent.BUTTON3_MASK
};
private String[] mouseButtonNames = {
"BUTTON1",
"BUTTON2",
"BUTTON3"
};
private int mouseMasks[] = {
InputEvent.BUTTON1_DOWN_MASK,
InputEvent.BUTTON2_DOWN_MASK,
InputEvent.BUTTON3_DOWN_MASK
};
private static String WORK_DIR = ".";
private int delay = 500;
private int keyDelay = 50;
private boolean passed = true;
private int modifier = 0;
private Object lock = new Object();
private boolean eventFired = false;
public MouseButtonExTest() {
if (System.getProperty("os.name").toUpperCase().equals("SUNOS") &&
! (System.getProperty("os.arch").equals("x86") ||
System.getProperty("os.arch").equals("amd64"))) {
keyTypes = new int[] {
KeyEvent.VK_CONTROL,
KeyEvent.VK_SHIFT,
KeyEvent.VK_META
};
keyNames = new String[] {
"CONTROL",
"SHIFT",
"META"
};
keyMasks = new int[] {
InputEvent.CTRL_DOWN_MASK,
InputEvent.SHIFT_DOWN_MASK,
InputEvent.META_DOWN_MASK
};
} else if (System.getProperty("os.name").toUpperCase().startsWith("WIN")) {
keyTypes = new int[] {
KeyEvent.VK_CONTROL,
KeyEvent.VK_SHIFT,
KeyEvent.VK_ALT
};
keyNames = new String[] {
"CONTROL",
"SHIFT",
"ALT"
};
keyMasks = new int[] {
InputEvent.CTRL_DOWN_MASK,
InputEvent.SHIFT_DOWN_MASK,
InputEvent.ALT_DOWN_MASK
};
} else {
keyTypes = new int[] {
KeyEvent.VK_CONTROL,
KeyEvent.VK_SHIFT
};
keyNames = new String[] {
"CONTROL",
"SHIFT"
};
keyMasks = new int[] {
InputEvent.CTRL_DOWN_MASK,
InputEvent.SHIFT_DOWN_MASK
};
}
try {
Toolkit.getDefaultToolkit().getSystemEventQueue().invokeAndWait(new Runnable() {
public void run() {
initializeGUI();
}
});
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
private void initializeGUI() {
frame = new Frame("Test Frame");
frame.setLayout(new FlowLayout());
panel = new Panel();
button = new Button("Button");
label = new Label("Label");
list = new List();
list.add("One");
list.add("Two");
list.add("Three");
choice = new Choice();
choice.add("Red");
choice.add("Orange");
choice.add("Yellow");
checkbox = new Checkbox("Checkbox");
scrollbar = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 255);
textfield = new TextField(15);
textarea = new TextArea(5, 15);
components = new Component[] {
panel, button, label, list, choice, checkbox, scrollbar, textfield, textarea
};
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.err.println("User closed the window");
System.exit(1);
}
});
for (int i = 0; i < components.length; i++) {
components[i].addMouseListener(this);
frame.add(components[i]);
}
frame.setSize(300, 300);
frame.setVisible(true);
}
public static void main(String[] args) {
WORK_DIR = System.getProperty("resultsDir");
if (WORK_DIR == null || WORK_DIR.equals("")) {
System.err.println("ERROR: resultsDir not set!");
System.exit(1);
}
try {
MouseButtonExTest test = new MouseButtonExTest();
test.doTest();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
public void mousePressed(MouseEvent event) {
if (! event.getSource().equals(testedComponent)) {
return;
}
modifier = event.getModifiersEx();
eventFired = true;
synchronized (lock) {
try {
lock.notifyAll();
} catch (Exception e) {
}
}
}
private void doTest() throws Exception {
Robot robot = null;
try {
robot = new Robot();
Thread.sleep(delay * 10);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
int keysToTest = keyTypes.length - 2;
for (int i = 0; i < components.length; i++) {
testedComponent = components[i];
robot.mouseMove((int) components[i].getLocationOnScreen().x + components[i].getSize().width / 2,
(int) components[i].getLocationOnScreen().y + components[i].getSize().height / 2);
robot.delay(delay);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(delay);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(delay);
robot.keyPress(KeyEvent.VK_ESCAPE);
robot.delay(keyDelay);
robot.keyRelease(KeyEvent.VK_ESCAPE);
robot.delay(delay * 5);
for (int j = 0; j < keysToTest; j++) {
for (int k = 0; k < mouseButtonTypes.length; k++) {
eventFired = false;
robot.keyPress(keyTypes[j]);
robot.delay(keyDelay);
robot.mousePress(mouseButtonTypes[k]);
robot.delay(delay);
if (! eventFired) {
synchronized (lock) {
try {
lock.wait(delay * 5);
} catch (Exception e) {
}
}
}
if (eventFired) {
if ((keyMasks[j] | mouseMasks[k]) != modifier) {
System.err.println("FAIL: getModifiersEx failed. Component: " +
components[i].getClass() + " Key: " +
keyNames[j] + " MouseButton: " +
mouseButtonNames[k]);
passed = false;
}
} else {
System.err.println("FAIL: Event was not fired. Component: " +
components[i].getClass() + " Key: " +
keyNames[j] + " MouseButton: " +
mouseButtonNames[k]);
passed = false;
}
robot.mouseRelease(mouseButtonTypes[k]);
robot.delay(delay);
robot.keyRelease(keyTypes[j]);
robot.delay(keyDelay);
robot.keyPress(KeyEvent.VK_ESCAPE);
robot.delay(keyDelay);
robot.keyRelease(KeyEvent.VK_ESCAPE);
robot.delay(keyDelay);
}
}
}
if (! passed) {
System.err.println("Test failed!");
captureScreenAndSave();
System.exit(1);
} else {
System.out.println("Test passed!");
System.exit(0);
}
}
/**
* Do screen capture and save it as image
*/
private static void captureScreenAndSave() {
try {
Robot robot = new Robot();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle rectangle = new Rectangle(0, 0, screenSize.width, screenSize.height);
System.out.println("About to screen capture - " + rectangle);
java.awt.image.BufferedImage image = robot.createScreenCapture(rectangle);
javax.imageio.ImageIO.write(image, "jpg", new java.io.File(WORK_DIR,
"ScreenImage.jpg"));
robot.delay(3000);
} catch (Throwable t) {
System.out.println("WARNING: Exception thrown while screen capture!");
t.printStackTrace();
}
}
}
Platform: windowsXPpro
Prablems:
One awt test MouseButtonExTest is failing in winXP,
it got the following errors:
FAIL: Event was not fired. Component: class java.awt.Choice Key: CONTROL MouseBu
tton: BUTTON1
FAIL: Event was not fired. Component: class java.awt.Choice Key: CONTROL MouseBu
tton: BUTTON2
FAIL: Event was not fired. Component: class java.awt.Choice Key: CONTROL MouseBu
tton: BUTTON3
FAIL: Event was not fired. Component: class java.awt.TextArea Key: CONTROL Mouse
Button: BUTTON1
FAIL: Event was not fired. Component: class java.awt.TextArea Key: CONTROL Mouse
Button: BUTTON2
FAIL: Event was not fired. Component: class java.awt.TextArea Key: CONTROL Mouse
Button: BUTTON3
Test failed!
please see bug 6393307 also.
The test case is attached:
/**
* test 1.0 2001/08/12
* @summary To check whether
* getModifiersEx() returns the extended Modifiers flag for this event.
* Extended Modifiers represent state of all Mouse buttons just after the
* event occured.
*
* @author Vishal Byakod(###@###.###) area= AWT
* @run applet MouseButtonExTest.html
*/
import java.awt.*;
import java.awt.event.*;
public class MouseButtonExTest extends MouseAdapter {
private Frame frame;
private Panel panel;
private Button button;
private Label label;
private List list;
private Choice choice;
private Checkbox checkbox;
private Scrollbar scrollbar;
private TextField textfield;
private TextArea textarea;
private Component[] components;
private Component testedComponent;
private int[] keyTypes;
private String[] keyNames;
private int[] keyMasks;
private int[] mouseButtonTypes = {
InputEvent.BUTTON1_MASK,
InputEvent.BUTTON2_MASK,
InputEvent.BUTTON3_MASK
};
private String[] mouseButtonNames = {
"BUTTON1",
"BUTTON2",
"BUTTON3"
};
private int mouseMasks[] = {
InputEvent.BUTTON1_DOWN_MASK,
InputEvent.BUTTON2_DOWN_MASK,
InputEvent.BUTTON3_DOWN_MASK
};
private static String WORK_DIR = ".";
private int delay = 500;
private int keyDelay = 50;
private boolean passed = true;
private int modifier = 0;
private Object lock = new Object();
private boolean eventFired = false;
public MouseButtonExTest() {
if (System.getProperty("os.name").toUpperCase().equals("SUNOS") &&
! (System.getProperty("os.arch").equals("x86") ||
System.getProperty("os.arch").equals("amd64"))) {
keyTypes = new int[] {
KeyEvent.VK_CONTROL,
KeyEvent.VK_SHIFT,
KeyEvent.VK_META
};
keyNames = new String[] {
"CONTROL",
"SHIFT",
"META"
};
keyMasks = new int[] {
InputEvent.CTRL_DOWN_MASK,
InputEvent.SHIFT_DOWN_MASK,
InputEvent.META_DOWN_MASK
};
} else if (System.getProperty("os.name").toUpperCase().startsWith("WIN")) {
keyTypes = new int[] {
KeyEvent.VK_CONTROL,
KeyEvent.VK_SHIFT,
KeyEvent.VK_ALT
};
keyNames = new String[] {
"CONTROL",
"SHIFT",
"ALT"
};
keyMasks = new int[] {
InputEvent.CTRL_DOWN_MASK,
InputEvent.SHIFT_DOWN_MASK,
InputEvent.ALT_DOWN_MASK
};
} else {
keyTypes = new int[] {
KeyEvent.VK_CONTROL,
KeyEvent.VK_SHIFT
};
keyNames = new String[] {
"CONTROL",
"SHIFT"
};
keyMasks = new int[] {
InputEvent.CTRL_DOWN_MASK,
InputEvent.SHIFT_DOWN_MASK
};
}
try {
Toolkit.getDefaultToolkit().getSystemEventQueue().invokeAndWait(new Runnable() {
public void run() {
initializeGUI();
}
});
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
private void initializeGUI() {
frame = new Frame("Test Frame");
frame.setLayout(new FlowLayout());
panel = new Panel();
button = new Button("Button");
label = new Label("Label");
list = new List();
list.add("One");
list.add("Two");
list.add("Three");
choice = new Choice();
choice.add("Red");
choice.add("Orange");
choice.add("Yellow");
checkbox = new Checkbox("Checkbox");
scrollbar = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 255);
textfield = new TextField(15);
textarea = new TextArea(5, 15);
components = new Component[] {
panel, button, label, list, choice, checkbox, scrollbar, textfield, textarea
};
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.err.println("User closed the window");
System.exit(1);
}
});
for (int i = 0; i < components.length; i++) {
components[i].addMouseListener(this);
frame.add(components[i]);
}
frame.setSize(300, 300);
frame.setVisible(true);
}
public static void main(String[] args) {
WORK_DIR = System.getProperty("resultsDir");
if (WORK_DIR == null || WORK_DIR.equals("")) {
System.err.println("ERROR: resultsDir not set!");
System.exit(1);
}
try {
MouseButtonExTest test = new MouseButtonExTest();
test.doTest();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
public void mousePressed(MouseEvent event) {
if (! event.getSource().equals(testedComponent)) {
return;
}
modifier = event.getModifiersEx();
eventFired = true;
synchronized (lock) {
try {
lock.notifyAll();
} catch (Exception e) {
}
}
}
private void doTest() throws Exception {
Robot robot = null;
try {
robot = new Robot();
Thread.sleep(delay * 10);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
int keysToTest = keyTypes.length - 2;
for (int i = 0; i < components.length; i++) {
testedComponent = components[i];
robot.mouseMove((int) components[i].getLocationOnScreen().x + components[i].getSize().width / 2,
(int) components[i].getLocationOnScreen().y + components[i].getSize().height / 2);
robot.delay(delay);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(delay);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(delay);
robot.keyPress(KeyEvent.VK_ESCAPE);
robot.delay(keyDelay);
robot.keyRelease(KeyEvent.VK_ESCAPE);
robot.delay(delay * 5);
for (int j = 0; j < keysToTest; j++) {
for (int k = 0; k < mouseButtonTypes.length; k++) {
eventFired = false;
robot.keyPress(keyTypes[j]);
robot.delay(keyDelay);
robot.mousePress(mouseButtonTypes[k]);
robot.delay(delay);
if (! eventFired) {
synchronized (lock) {
try {
lock.wait(delay * 5);
} catch (Exception e) {
}
}
}
if (eventFired) {
if ((keyMasks[j] | mouseMasks[k]) != modifier) {
System.err.println("FAIL: getModifiersEx failed. Component: " +
components[i].getClass() + " Key: " +
keyNames[j] + " MouseButton: " +
mouseButtonNames[k]);
passed = false;
}
} else {
System.err.println("FAIL: Event was not fired. Component: " +
components[i].getClass() + " Key: " +
keyNames[j] + " MouseButton: " +
mouseButtonNames[k]);
passed = false;
}
robot.mouseRelease(mouseButtonTypes[k]);
robot.delay(delay);
robot.keyRelease(keyTypes[j]);
robot.delay(keyDelay);
robot.keyPress(KeyEvent.VK_ESCAPE);
robot.delay(keyDelay);
robot.keyRelease(KeyEvent.VK_ESCAPE);
robot.delay(keyDelay);
}
}
}
if (! passed) {
System.err.println("Test failed!");
captureScreenAndSave();
System.exit(1);
} else {
System.out.println("Test passed!");
System.exit(0);
}
}
/**
* Do screen capture and save it as image
*/
private static void captureScreenAndSave() {
try {
Robot robot = new Robot();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle rectangle = new Rectangle(0, 0, screenSize.width, screenSize.height);
System.out.println("About to screen capture - " + rectangle);
java.awt.image.BufferedImage image = robot.createScreenCapture(rectangle);
javax.imageio.ImageIO.write(image, "jpg", new java.io.File(WORK_DIR,
"ScreenImage.jpg"));
robot.delay(3000);
} catch (Throwable t) {
System.out.println("WARNING: Exception thrown while screen capture!");
t.printStackTrace();
}
}
}