Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/awt/EmbeddedFrame/DisplayChangedTest/DisplayChangedTest.java
41153 views
1
/*
2
* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/**
25
* @test
26
* @key headful
27
* @bug 4980592 8171363
28
* @summary switching user in XP causes an NPE in
29
* sun.awt.windows.WWindowPeer.displayChanged
30
* @requires (os.family == "windows")
31
* @modules java.desktop/java.awt.peer
32
* @modules java.desktop/sun.awt.windows:open
33
* @modules java.desktop/sun.awt
34
* @author [email protected]: area=embedded
35
* @run main DisplayChangedTest
36
*/
37
38
import java.awt.Frame;
39
import java.awt.Dialog;
40
import java.awt.TextArea;
41
import java.awt.peer.ComponentPeer;
42
import java.awt.peer.FramePeer;
43
import java.lang.reflect.Constructor;
44
import java.lang.reflect.Method;
45
import java.lang.reflect.Field;
46
47
import sun.awt.AWTAccessor;
48
49
public class DisplayChangedTest {
50
51
/**
52
* Test fails if it throws any exception.
53
*
54
* @throws Exception
55
*/
56
private void init() throws Exception {
57
58
if (!System.getProperty("os.name").startsWith("Windows")) {
59
System.out.println("This is Windows only test.");
60
return;
61
}
62
63
Frame frame = new Frame("AWT Frame");
64
frame.pack();
65
66
FramePeer frame_peer = AWTAccessor.getComponentAccessor()
67
.getPeer(frame);
68
Class comp_peer_class = Class.forName("sun.awt.windows.WComponentPeer");
69
Field hwnd_field = comp_peer_class.getDeclaredField("hwnd");
70
hwnd_field.setAccessible(true);
71
long hwnd = hwnd_field.getLong(frame_peer);
72
73
Class clazz = Class.forName("sun.awt.windows.WEmbeddedFrame");
74
Constructor constructor = clazz
75
.getConstructor(new Class[]{long.class});
76
Frame embedded_frame = (Frame) constructor
77
.newInstance(new Object[]{new Long(hwnd)});
78
frame.setVisible(true);
79
80
ComponentPeer peer = AWTAccessor.getComponentAccessor().getPeer(
81
embedded_frame);
82
Class peerClass = peer.getClass();
83
Method displayChangedM = peerClass.getMethod("displayChanged",
84
new Class[0]);
85
displayChangedM.invoke(peer, null);
86
embedded_frame.dispose();
87
frame.dispose();
88
89
}
90
91
public static void main(String args[]) throws Exception {
92
new DisplayChangedTest().init();
93
}
94
95
}
96
97