< prev index next >
test/java/awt/Mixing/AWT_Mixing/OverlappingTestBase.java
Print this page
@@ -23,16 +23,16 @@
import java.awt.*;
import java.awt.event.*;
import java.awt.peer.ComponentPeer;
import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import javax.swing.*;
-import sun.awt.AWTAccessor;
import sun.awt.EmbeddedFrame;
import java.io.*;
import test.java.awt.regtesthelpers.Util;
/**
@@ -72,10 +72,11 @@
private static final String[] simpleAwtControls = {"Button", "Checkbox", "Label", "TextArea"};
/**
* Generic strings array. To be used for population of List based controls.
*/
protected static final String[] petStrings = {"Bird", "Cat", "Dog", "Rabbit", "Rhynocephalia Granda", "Bear", "Tiger", "Mustang"};
+ static Field peerField;
// "properties"
/**
* Tests customization. Set this variable to test only control from java.awt
* <p>Usage of this variable should be marked with CR being the reason.
* <p>Do not use this variable simultaneously with {@link OverlappingTestBase#skipClassNames}
@@ -243,12 +244,11 @@
long frameWindow = 0;
String getWindowMethodName = "getHWnd";
if (Toolkit.getDefaultToolkit().getClass().getName().contains("XToolkit")) {
getWindowMethodName = "getWindow";
}
- ComponentPeer peer = AWTAccessor.getComponentAccessor()
- .getPeer(embedder);
+ ComponentPeer peer = (ComponentPeer) peerField.get(embedder);
// System.err.println("Peer: " + peer);
Method getWindowMethod = peer.getClass().getMethod(getWindowMethodName);
frameWindow = (Long) getWindowMethod.invoke(peer);
// System.err.println("frame peer ID: " + frameWindow);
@@ -566,10 +566,16 @@
* Starting point for test runs. See usage at {@link OverlappingTestBase }
* @param args regular main args, not used.
* @throws InterruptedException
*/
public static void doMain(String args[]) throws InterruptedException {
+ try {
+ peerField = Component.class.getDeclaredField("peer");
+ } catch (NoSuchFieldException e) {
+ throw new RuntimeException("peer field is not available");
+ }
+ peerField.setAccessible(true);
mainThread = Thread.currentThread();
try {
init();
} catch (TestPassedException e) {
//The test passed, so just return from main and harness will
< prev index next >