Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
93b1a838
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
93b1a838
编写于
5月 08, 2013
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
1d607ad5
c3a97d8c
变更
43
展开全部
显示空白变更内容
内联
并排
Showing
43 changed file
with
1051 addition
and
306 deletion
+1051
-306
.hgtags
.hgtags
+1
-0
makefiles/CompileNativeLibraries.gmk
makefiles/CompileNativeLibraries.gmk
+73
-48
makefiles/GensrcX11Wrappers.gmk
makefiles/GensrcX11Wrappers.gmk
+6
-1
makefiles/Images.gmk
makefiles/Images.gmk
+9
-3
src/macosx/classes/sun/awt/CGraphicsDevice.java
src/macosx/classes/sun/awt/CGraphicsDevice.java
+38
-12
src/macosx/classes/sun/awt/CGraphicsEnvironment.java
src/macosx/classes/sun/awt/CGraphicsEnvironment.java
+44
-35
src/macosx/classes/sun/lwawt/LWComponentPeer.java
src/macosx/classes/sun/lwawt/LWComponentPeer.java
+20
-25
src/macosx/classes/sun/lwawt/LWWindowPeer.java
src/macosx/classes/sun/lwawt/LWWindowPeer.java
+29
-7
src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java
src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java
+5
-1
src/macosx/native/sun/awt/AWTEvent.h
src/macosx/native/sun/awt/AWTEvent.h
+2
-1
src/macosx/native/sun/awt/AWTEvent.m
src/macosx/native/sun/awt/AWTEvent.m
+2
-3
src/macosx/native/sun/awt/CGraphicsEnv.m
src/macosx/native/sun/awt/CGraphicsEnv.m
+4
-3
src/macosx/native/sun/awt/CMenuItem.m
src/macosx/native/sun/awt/CMenuItem.m
+11
-2
src/macosx/native/sun/awt/CTextPipe.m
src/macosx/native/sun/awt/CTextPipe.m
+11
-0
src/macosx/native/sun/awt/awt.m
src/macosx/native/sun/awt/awt.m
+4
-1
src/macosx/native/sun/java2d/opengl/CGLLayer.m
src/macosx/native/sun/java2d/opengl/CGLLayer.m
+5
-1
src/share/classes/java/awt/Component.java
src/share/classes/java/awt/Component.java
+5
-5
src/share/classes/java/awt/Window.java
src/share/classes/java/awt/Window.java
+1
-1
src/share/classes/java/beans/MetaData.java
src/share/classes/java/beans/MetaData.java
+77
-70
src/share/classes/java/beans/XMLEncoder.java
src/share/classes/java/beans/XMLEncoder.java
+15
-1
src/share/classes/javax/swing/JDesktopPane.java
src/share/classes/javax/swing/JDesktopPane.java
+9
-0
src/share/classes/sun/java2d/pipe/AAShapePipe.java
src/share/classes/sun/java2d/pipe/AAShapePipe.java
+2
-2
src/share/classes/sun/security/provider/certpath/CertPathHelper.java
...lasses/sun/security/provider/certpath/CertPathHelper.java
+1
-1
src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
.../security/provider/certpath/DistributionPointFetcher.java
+9
-8
src/share/classes/sun/security/provider/certpath/OCSP.java
src/share/classes/sun/security/provider/certpath/OCSP.java
+4
-5
src/share/classes/sun/security/provider/certpath/OCSPResponse.java
.../classes/sun/security/provider/certpath/OCSPResponse.java
+27
-4
src/share/classes/sun/security/provider/certpath/URICertStore.java
.../classes/sun/security/provider/certpath/URICertStore.java
+30
-1
src/solaris/classes/sun/awt/X11/XWindowPeer.java
src/solaris/classes/sun/awt/X11/XWindowPeer.java
+3
-1
src/windows/classes/sun/awt/windows/WComponentPeer.java
src/windows/classes/sun/awt/windows/WComponentPeer.java
+12
-3
src/windows/classes/sun/awt/windows/WWindowPeer.java
src/windows/classes/sun/awt/windows/WWindowPeer.java
+6
-0
test/java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java
...impleWindowActivationTest/SimpleWindowActivationTest.java
+5
-5
test/java/awt/Toolkit/BadDisplayTest/BadDisplayTest.sh
test/java/awt/Toolkit/BadDisplayTest/BadDisplayTest.sh
+3
-2
test/java/awt/WMSpecificTests/Metacity/FullscreenDialogModality.java
...wt/WMSpecificTests/Metacity/FullscreenDialogModality.java
+144
-0
test/java/beans/XMLEncoder/AbstractTest.java
test/java/beans/XMLEncoder/AbstractTest.java
+22
-4
test/java/beans/XMLEncoder/BeanValidator.java
test/java/beans/XMLEncoder/BeanValidator.java
+15
-22
test/java/beans/XMLEncoder/Test4631471.java
test/java/beans/XMLEncoder/Test4631471.java
+0
-5
test/java/beans/XMLEncoder/Test4679556.java
test/java/beans/XMLEncoder/Test4679556.java
+0
-1
test/java/beans/XMLEncoder/java_awt_BorderLayout.java
test/java/beans/XMLEncoder/java_awt_BorderLayout.java
+2
-4
test/java/beans/XMLEncoder/java_awt_CardLayout.java
test/java/beans/XMLEncoder/java_awt_CardLayout.java
+83
-0
test/java/beans/XMLEncoder/java_awt_GridBagLayout.java
test/java/beans/XMLEncoder/java_awt_GridBagLayout.java
+101
-0
test/java/beans/XMLEncoder/javax_swing_DefaultCellEditor.java
.../java/beans/XMLEncoder/javax_swing_DefaultCellEditor.java
+6
-0
test/javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java
...swing/JInternalFrame/InternalFrameIsNotCollectedTest.java
+138
-0
test/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java
...ionListenerCalledTwice/ActionListenerCalledTwiceTest.java
+67
-18
未找到文件。
.hgtags
浏览文件 @
93b1a838
...
...
@@ -209,3 +209,4 @@ ac519af51769e92c51b597a730974e8607357709 jdk8-b83
296676d534c52888c36e305a2bf7f345c4ca70f8 jdk8-b85
7989cd0cc3a9149864589438ee2c949015d8aa9a jdk8-b86
d5228e624826a10ccc5b05f30ad8d839b58fe48d jdk8-b87
8dbb4b159e04de3c447c9242c70505e71f8624c7 jdk8-b88
makefiles/CompileNativeLibraries.gmk
浏览文件 @
93b1a838
...
...
@@ -63,7 +63,12 @@ WIN_AWT_LIB := $(JDK_OUTPUTDIR)/objs/libawt/awt.lib
# Use this variable to set DEBUG_SYMBOLS true on windows for all libraries, but
# not on other platforms.
ifeq ($(OPENJDK_TARGET_OS), windows)
WINDOWS_ONLY := true
DEBUG_ALL_BINARIES := true
endif
# Build everything with debugging on OpenJDK
ifdef OPENJDK
DEBUG_ALL_BINARIES := true
endif
#
...
...
@@ -91,7 +96,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM,\
-I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
CFLAGS_windows_debug:=-DLOGGING,\
ARFLAGS:=$(ARFLAGS),\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
else
...
...
@@ -105,7 +111,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC,\
CFLAGS:=$(CFLAGS_JDKLIB) \
-I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
LDFLAGS:=-nostdlib -r -arch x86_64,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBFDLIBM := $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
$(BUILD_LIBFDLIBM) : $(BUILD_LIBFDLIBM_MAC)
...
...
@@ -257,7 +264,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA,\
-D "JDK_FTYPE=0x2L",\
REORDER:=$(LIBJAVA_REORDER), \
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjava,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBJAVA)
...
...
@@ -308,7 +315,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE,\
-D "JDK_INTERNAL_NAME=mlib_image" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBMLIB_IMAGE) : $(BUILD_LIBJAVA)
...
...
@@ -431,7 +438,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V,\
$(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \
$(call SET_SHARED_LIBRARY_ORIGIN),\
LDFLAGS_SUFFIX_solaris:=-lc,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image_v))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image_v,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA)
...
...
@@ -739,7 +747,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAWT,\
-D "JDK_INTERNAL_NAME=awt" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBAWT) : $(BUILD_LIBJAVA)
...
...
@@ -895,7 +903,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT,\
-D "JDK_FNAME=xawt.dll" \
-D "JDK_INTERNAL_NAME=xawt" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_xawt))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_xawt,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(BUILD_LIBAWT_XAWT) : $(BUILD_LIBJAVA)
...
...
@@ -956,7 +965,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBZIP,\
-D "JDK_INTERNAL_NAME=zip" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libzip,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBZIP) : $(BUILD_LIBJAVA)
...
...
@@ -986,7 +995,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK,\
-D "JDK_FNAME=unpack.dll" \
-D "JDK_INTERNAL_NAME=unpack" \
-D "JDK_FTYPE=0x2L",\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBUNPACK) : $(BUILD_LIBJAVA)
...
...
@@ -1100,7 +1109,7 @@ ifeq ($(OPENJDK_TARGET_OS),windows)
-D "JDK_INTERNAL_NAME=dt_shmem" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdt_shmem,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM)
...
...
@@ -1134,7 +1143,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJDWP,\
-D "JDK_INTERNAL_NAME=jdwp" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjdwp,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBJDWP) : $(BUILD_LIBJAVA)
...
...
@@ -1175,7 +1184,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJAAS,\
-D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjaas,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBJAAS) : $(BUILD_LIBJAVA)
...
...
@@ -1240,7 +1249,7 @@ BUILD_LIBRARIES += $(BUILD_LIBJSDT)
-D "JDK_INTERNAL_NAME=lcms" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBLCMS)
...
...
@@ -1300,7 +1309,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
-D "JDK_FTYPE=0x2L",\
REORDER:=$(BUILD_LIBJPEG_REORDER),\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
...
...
@@ -1377,7 +1386,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER,\
-D "JDK_INTERNAL_NAME=fontmanager" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfontmanager,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT)
...
...
@@ -1434,7 +1443,7 @@ ifndef OPENJDK
-D "JDK_INTERNAL_NAME=t2k" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libt2k,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
# t2k is linked against fontmanager
$(BUILD_LIBT2K) : $(BUILD_LIBFONTMANAGER)
...
...
@@ -1472,7 +1481,7 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
-D "JDK_INTERNAL_NAME=jawt" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBJAWT) : $(BUILD_LIBAWT)
...
...
@@ -1521,7 +1530,8 @@ else # OPENJDK_TARGET_OS not windows
LDFLAGS_SUFFIX_solaris:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender,\
LDFLAGS_SUFFIX_macosx:=-Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
-framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX),\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
ifndef BUILD_HEADLESS_ONLY
$(BUILD_LIBJAWT) : $(BUILD_LIBAWT_XAWT)
...
...
@@ -1828,7 +1838,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBNET,\
-D "JDK_INTERNAL_NAME=net" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnet,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBNET) : $(BUILD_LIBJAVA)
...
...
@@ -1965,7 +1975,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBNIO,\
-D "JDK_INTERNAL_NAME=nio" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnio,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBNIO)
...
...
@@ -2002,7 +2012,8 @@ ifeq ($(OPENJDK_TARGET_OS_API),posix)
LDFLAGS_SUFFIX_posix:=-lnio -lnet,\
LDFLAGS_SUFFIX_solaris:=-lsocket -ljava -ljvm -lc,\
LDFLAGS_SUFFIX_macosx:=-ljava -ljvm,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsctp))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsctp,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBRARIES += $(BUILD_LIBSCTP)
...
...
@@ -2126,7 +2137,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJLI,\
-D "JDK_INTERNAL_NAME=jli" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBJLI)
...
...
@@ -2143,7 +2154,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
OPTIMIZATION:=HIGH, \
CFLAGS:=$(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS),\
ARFLAGS:=$(ARFLAGS),\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC)
...
...
@@ -2161,7 +2173,8 @@ else ifeq ($(OPENJDK_TARGET_OS),macosx)
OPTIMIZATION:=HIGH, \
CFLAGS:=$(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS),\
LDFLAGS:=-nostdlib -r,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(JDK_OUTPUTDIR)/objs/libjli_static.a : $(BUILD_LIBJLI_STATIC)
$(call install-file)
...
...
@@ -2192,7 +2205,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJFR,\
-D "JDK_INTERNAL_NAME=jfr" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjfr,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBJFR)
...
...
@@ -2244,7 +2257,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBKCMS,\
-D "JDK_INTERNAL_NAME=kcms" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkcms,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBKCMS) : $(BUILD_LIBJAVA)
...
...
@@ -2279,7 +2292,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBSUNWJDGA, \
LDFLAGS:=$(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_SUFFIX:=-L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunwjdga))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunwjdga,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA)
...
...
@@ -2369,7 +2383,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS,\
LDFLAGS_SUFFIX_linux:=-ljvm -lawt -lm $(LIBDL) -ljava,\
LDFLAGS_SUFFIX_solaris:=$(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc,\
LDFLAGS_SUFFIX_macosx:=-ljvm $(LIBCXX) -lawt $(LIBDL) -ljava,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(BUILD_LIBAWT_HEADLESS) : $(BUILD_LIBAWT)
...
...
@@ -2462,7 +2477,7 @@ $(eval $(call SetupNativeCompilation,LIBSPLASHSCREEN,\
-D "JDK_INTERNAL_NAME=splashscreen" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsplashscreen,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
...
...
@@ -2504,7 +2519,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBDCPR,\
-D "JDK_INTERNAL_NAME=dcpr" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdcpr,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBDCPR) : $(BUILD_LIBJAVA)
...
...
@@ -2538,7 +2553,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC,\
-D "JDK_INTERNAL_NAME=j2pcsc" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pcsc,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC)
...
...
@@ -2560,7 +2575,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS,\
$(call SET_SHARED_LIBRARY_ORIGIN),\
LDFLAGS_SUFFIX:=$(LIBDL),\
LDFLAGS_SUFFIX_solaris:=-lc,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBRARIES += $(BUILD_LIBJ2GSS)
endif
...
...
@@ -2599,7 +2615,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBKRB5,\
-D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkrb5,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBKRB5)
endif
...
...
@@ -2625,7 +2641,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI,\
-D "JDK_INTERNAL_NAME=sunmscapi" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunmscapi,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI)
endif
...
...
@@ -2657,7 +2673,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11,\
-D "JDK_INTERNAL_NAME=j2pkcs11" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pkcs11,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11)
...
...
@@ -2703,7 +2719,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC,\
-D "JDK_INTERNAL_NAME=sunec" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunec,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
BUILD_LIBRARIES += $(BUILD_LIBSUNEC)
endif
...
...
@@ -2847,7 +2863,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUND,\
-D "JDK_INTERNAL_NAME=jsound" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsound,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBJSOUND) : $(BUILD_LIBJAVA)
...
...
@@ -2882,7 +2898,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDALSA,\
LDFLAGS:=$(LDFLAGS_JDKLIB)\
$(call SET_SHARED_LIBRARY_ORIGIN),\
LDFLAGS_SUFFIX:=-lasound -ljava -ljvm,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundalsa))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundalsa,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(BUILD_LIBJSOUNDALSA) : $(BUILD_LIBJAVA)
...
...
@@ -2915,7 +2932,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDDS,\
-D "JDK_INTERNAL_NAME=jsoundds" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundds,\
DEBUG_SYMBOLS:=$(
WINDOWS_ONLY
)))
DEBUG_SYMBOLS:=$(
DEBUG_ALL_BINARIES
)))
$(BUILD_LIBJSOUNDDS) : $(BUILD_LIBJAVA)
...
...
@@ -2940,7 +2957,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO,\
LDFLAGS:=$(LDFLAGS_JDKLIB),\
LDFLAGS_SUFFIX:=$(LIBDL),\
LDFLAGS_SUFFIX_solaris:=-lc,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2ucrypto))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2ucrypto,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(BUILD_LIBJ2UCRYPTO) : $(BUILD_LIBJAVA)
...
...
@@ -2970,7 +2988,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAPPLESCRIPTENGINE,\
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \
$(LDFLAGS_JDKLIB_SUFFIX),\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libAppleScriptEngine))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libAppleScriptEngine,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(BUILD_LIBAPPLESCRIPTENGINE) : $(BUILD_LIBJAVA)
...
...
@@ -3009,7 +3028,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBOSXAPP,\
-framework OpenGL \
-framework IOSurface \
-framework QuartzCore, \
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxapp))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxapp,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBRARIES += $(BUILD_LIBOSXAPP)
...
...
@@ -3049,7 +3069,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBOSX,\
-framework Security \
-framework SystemConfiguration \
$(LDFLAGS_JDKLIB_SUFFIX), \
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosx))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosx,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBRARIES += $(BUILD_LIBOSX)
...
...
@@ -3182,7 +3203,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT,\
-framework JavaRuntimeSupport \
-framework OpenGL \
-framework QuartzCore -ljava,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_lwawt))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_lwawt,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT)
...
...
@@ -3222,7 +3244,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI,\
-framework JavaNativeFoundation \
-framework JavaRuntimeSupport \
-ljava -ljvm,\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxui))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxui,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
BUILD_LIBRARIES += $(BUILD_LIBOSXUI)
...
...
@@ -3262,7 +3285,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC32,\
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \
-lffi, \
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC64,\
LIBRARY:=JObjC,\
...
...
@@ -3286,7 +3310,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC64,\
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \
-lffi, \
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64))
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64,\
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
$(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX): $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
$(LIPO) -create -output $@ $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
...
...
makefiles/GensrcX11Wrappers.gmk
浏览文件 @
93b1a838
...
...
@@ -86,10 +86,15 @@ ifneq ($(COMPILE_TYPE),cross)
$(MKDIR) -p $(@D)
$(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $*
# use -m32/-m64 only if the compiler supports it
ifeq ($(COMPILER_SUPPORTS_TARGET_BITS_FLAG),true)
MEMORY_MODEL_FLAG="-m$*"
endif
# Compile the C code into an executable.
$(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe : $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
$(MKDIR) -p $(@D)
(cd $(@D) && $(CC)
-m$*
-o $@ $< \
(cd $(@D) && $(CC)
$(MEMORY_MODEL_FLAG)
-o $@ $< \
$(X_CFLAGS) \
$(X_LIBS) \
-I$(JDK_OUTPUTDIR)/include \
...
...
makefiles/Images.gmk
浏览文件 @
93b1a838
...
...
@@ -352,16 +352,22 @@ ifneq ($(OPENJDK_TARGET_OS),windows)
JDK_MAN_PAGES += jvisualvm.1
endif
ifndef OPENJDK
MAN_SRC_BASEDIR:=$(JDK_TOPDIR)/src/closed
else
MAN_SRC_BASEDIR:=$(JDK_TOPDIR)/src
endif
ifeq ($(OPENJDK_TARGET_OS), linux)
MAN_SRC_DIR:=$(
JDK_TOPDIR)/src
/linux/doc
MAN_SRC_DIR:=$(
MAN_SRC_BASEDIR)
/linux/doc
MAN1_SUBDIR:=man
endif
ifeq ($(OPENJDK_TARGET_OS), solaris)
MAN_SRC_DIR:=$(
JDK_TOPDIR)/src
/solaris/doc
MAN_SRC_DIR:=$(
MAN_SRC_BASEDIR)
/solaris/doc
MAN1_SUBDIR:=sun/man/man1
endif
ifeq ($(OPENJDK_TARGET_OS), macosx)
MAN_SRC_DIR:=$(
JDK_TOPDIR)/src
/bsd/doc
MAN_SRC_DIR:=$(
MAN_SRC_BASEDIR)
/bsd/doc
MAN1_SUBDIR:=man
JDK_MAN_PAGES := $(filter-out jcmd.1, $(JDK_MAN_PAGES))
JDK_MAN_PAGES := $(filter-out jvisualvm.1, $(JDK_MAN_PAGES))
...
...
src/macosx/classes/sun/awt/CGraphicsDevice.java
浏览文件 @
93b1a838
...
...
@@ -35,10 +35,18 @@ import java.util.Objects;
import
sun.java2d.opengl.CGLGraphicsConfig
;
public
final
class
CGraphicsDevice
extends
GraphicsDevice
{
public
final
class
CGraphicsDevice
extends
GraphicsDevice
implements
DisplayChangedListener
{
// CoreGraphics display ID
private
final
int
displayID
;
/**
* CoreGraphics display ID. This identifier can become non-valid at any time
* therefore methods, which is using this id should be ready to it.
*/
private
volatile
int
displayID
;
private
volatile
Insets
screenInsets
;
private
volatile
double
xResolution
;
private
volatile
double
yResolution
;
private
volatile
int
scale
;
// Array of all GraphicsConfig instances for this device
private
final
GraphicsConfiguration
[]
configs
;
...
...
@@ -51,7 +59,7 @@ public final class CGraphicsDevice extends GraphicsDevice {
// Save/restore DisplayMode for the Full Screen mode
private
DisplayMode
originalMode
;
public
CGraphicsDevice
(
int
displayID
)
{
public
CGraphicsDevice
(
final
int
displayID
)
{
this
.
displayID
=
displayID
;
configs
=
new
GraphicsConfiguration
[]
{
CGLGraphicsConfig
.
getConfig
(
this
,
0
)
...
...
@@ -89,7 +97,7 @@ public final class CGraphicsDevice extends GraphicsDevice {
*/
@Override
public
String
getIDstring
()
{
return
"Display "
+
this
.
displayID
;
return
"Display "
+
displayID
;
}
/**
...
...
@@ -104,15 +112,37 @@ public final class CGraphicsDevice extends GraphicsDevice {
}
public
double
getXResolution
()
{
return
nativeGetXResolution
(
displayID
)
;
return
xResolution
;
}
public
double
getYResolution
()
{
return
nativeGetYResolution
(
displayID
)
;
return
yResolution
;
}
public
Insets
getScreenInsets
()
{
return
nativeGetScreenInsets
(
displayID
);
return
screenInsets
;
}
public
int
getScaleFactor
()
{
return
scale
;
}
public
void
invalidate
(
final
int
defaultDisplayID
)
{
displayID
=
defaultDisplayID
;
}
@Override
public
void
displayChanged
()
{
xResolution
=
nativeGetXResolution
(
displayID
);
yResolution
=
nativeGetYResolution
(
displayID
);
screenInsets
=
nativeGetScreenInsets
(
displayID
);
scale
=
(
int
)
nativeGetScaleFactor
(
displayID
);
//TODO configs/fullscreenWindow/modes?
}
@Override
public
void
paletteChanged
()
{
// devices do not need to react to this event.
}
/**
...
...
@@ -219,10 +249,6 @@ public final class CGraphicsDevice extends GraphicsDevice {
return
nativeGetDisplayModes
(
displayID
);
}
public
int
getScaleFactor
()
{
return
(
int
)
nativeGetScaleFactor
(
displayID
);
}
private
static
native
double
nativeGetScaleFactor
(
int
displayID
);
private
static
native
void
nativeSetDisplayMode
(
int
displayID
,
int
w
,
int
h
,
int
bpp
,
int
refrate
);
...
...
src/macosx/classes/sun/awt/CGraphicsEnvironment.java
浏览文件 @
93b1a838
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011,
2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -26,19 +26,20 @@
package
sun.awt
;
import
java.awt.*
;
import
java.awt.print.*
;
import
java.util.*
;
import
sun.java2d.*
;
/**
* This is an implementation of a GraphicsEnvironment object for the default local GraphicsEnvironment used by the Java
* Runtime Environment for Mac OS X GUI environments.
* This is an implementation of a GraphicsEnvironment object for the default
* local GraphicsEnvironment used by the Java Runtime Environment for Mac OS X
* GUI environments.
*
* @see GraphicsDevice
* @see GraphicsConfiguration
*/
public
class
CGraphicsEnvironment
extends
SunGraphicsEnvironment
{
public
final
class
CGraphicsEnvironment
extends
SunGraphicsEnvironment
{
// Global initialization of the Cocoa runtime.
private
static
native
void
initCocoa
();
...
...
@@ -53,7 +54,8 @@ public class CGraphicsEnvironment extends SunGraphicsEnvironment {
private
static
native
int
getMainDisplayID
();
/**
* Noop function that just acts as an entry point for someone to force a static initialization of this class.
* Noop function that just acts as an entry point for someone to force a
* static initialization of this class.
*/
public
static
void
init
()
{
}
...
...
@@ -78,8 +80,9 @@ public class CGraphicsEnvironment extends SunGraphicsEnvironment {
}
/**
* Register the instance with CGDisplayRegisterReconfigurationCallback()
* The registration uses a weak global reference -- if our instance is garbage collected, the reference will be dropped.
* Register the instance with CGDisplayRegisterReconfigurationCallback().
* The registration uses a weak global reference -- if our instance is
* garbage collected, the reference will be dropped.
*
* @return Return the registration context (a pointer).
*/
...
...
@@ -91,7 +94,7 @@ public class CGraphicsEnvironment extends SunGraphicsEnvironment {
private
native
void
deregisterDisplayReconfiguration
(
long
context
);
/** Available CoreGraphics displays. */
private
final
Map
<
Integer
,
CGraphicsDevice
>
devices
=
new
HashMap
<
Integer
,
CGraphicsDevice
>(
);
private
final
Map
<
Integer
,
CGraphicsDevice
>
devices
=
new
HashMap
<
>(
5
);
/** Reference to the display reconfiguration callback context. */
private
final
long
displayReconfigContext
;
...
...
@@ -118,11 +121,18 @@ public class CGraphicsEnvironment extends SunGraphicsEnvironment {
/**
* Called by the CoreGraphics Display Reconfiguration Callback.
*
* @param displayId
*
CoreGraphics displayId
* @param displayId
CoreGraphics displayId
*
@param removed true if displayId was removed, false otherwise.
*/
void
_displayReconfiguration
(
long
displayId
)
{
displayChanged
();
void
_displayReconfiguration
(
final
int
displayId
,
final
boolean
removed
)
{
synchronized
(
this
)
{
if
(
removed
&&
devices
.
containsKey
(
displayId
))
{
final
CGraphicsDevice
gd
=
devices
.
remove
(
displayId
);
gd
.
invalidate
(
getMainDisplayID
());
gd
.
displayChanged
();
}
}
initDevices
();
}
@Override
...
...
@@ -135,11 +145,11 @@ public class CGraphicsEnvironment extends SunGraphicsEnvironment {
}
/**
* (Re)create all CGraphicsDevices
*
* @return
* (Re)create all CGraphicsDevices, reuses a devices if it is possible.
*/
private
synchronized
void
initDevices
()
{
private
void
initDevices
()
{
synchronized
(
this
)
{
final
Map
<
Integer
,
CGraphicsDevice
>
old
=
new
HashMap
<>(
devices
);
devices
.
clear
();
int
mainID
=
getMainDisplayID
();
...
...
@@ -149,17 +159,16 @@ public class CGraphicsEnvironment extends SunGraphicsEnvironment {
// of discrete video.
// So, we initialize the main display first, and then
// retrieve actual list of displays.
CGraphicsDevice
mainDevice
=
new
CGraphicsDevice
(
mainID
);
final
int
[]
displayIDs
=
getDisplayIDs
();
if
(!
old
.
containsKey
(
mainID
))
{
old
.
put
(
mainID
,
new
CGraphicsDevice
(
mainID
));
}
for
(
int
displayID
:
displayIDs
)
{
if
(
displayID
!=
mainID
)
{
devices
.
put
(
displayID
,
new
CGraphicsDevice
(
displayID
));
}
else
{
devices
.
put
(
mainID
,
mainDevice
);
for
(
final
int
id
:
getDisplayIDs
())
{
devices
.
put
(
id
,
old
.
containsKey
(
id
)
?
old
.
get
(
id
)
:
new
CGraphicsDevice
(
id
));
}
}
displayChanged
();
}
@Override
...
...
@@ -167,7 +176,7 @@ public class CGraphicsEnvironment extends SunGraphicsEnvironment {
final
int
mainDisplayID
=
getMainDisplayID
();
CGraphicsDevice
d
=
devices
.
get
(
mainDisplayID
);
if
(
d
==
null
)
{
// we do not ex
epct that this may happen, the only responc
e
// we do not ex
pect that this may happen, the only respons
e
// is to re-initialize the list of devices
initDevices
();
...
...
src/macosx/classes/sun/lwawt/LWComponentPeer.java
浏览文件 @
93b1a838
...
...
@@ -87,18 +87,22 @@ public abstract class LWComponentPeer<T extends Component, D extends JComponent>
private
final
T
target
;
// Container peer. It may not be the peer of the target's direct
// parent, for example, in the case of hw/lw mixing. However,
// let's skip this scenario for the time being. We also assume
// the container peer is not null, which might also be false if
// addNotify() is called for a component outside of the hierarchy.
// The exception is LWWindowPeers: their parents are always null
private
LWContainerPeer
containerPeer
;
// Handy reference to the top-level window peer. Window peer is
// borrowed from the containerPeer in constructor, and should also
// be updated when the component is reparented to another container
private
LWWindowPeer
windowPeer
;
/**
* Container peer. It may not be the peer of the target's direct parent, for
* example, in the case of hw/lw mixing. However, let's skip this scenario
* for the time being. We also assume the container peer is not null, which
* might also be false if addNotify() is called for a component outside of
* the hierarchy. The exception is LWWindowPeers: their containers are
* always null
*/
private
final
LWContainerPeer
containerPeer
;
/**
* Handy reference to the top-level window peer. Window peer is borrowed
* from the containerPeer in constructor, and should also be updated when
* the component is reparented to another container
*/
private
final
LWWindowPeer
windowPeer
;
private
final
AtomicBoolean
disposed
=
new
AtomicBoolean
(
false
);
...
...
@@ -183,13 +187,13 @@ public abstract class LWComponentPeer<T extends Component, D extends JComponent>
this
.
target
=
target
;
this
.
platformComponent
=
platformComponent
;
initializeContainerPeer
();
// Container peer is always null for LWWindowPeers, so
// windowPeer is always null for them as well. On the other
// hand, LWWindowPeer shouldn't use windowPeer at all
if
(
containerPeer
!=
null
)
{
windowPeer
=
containerPeer
.
getWindowPeerOrSelf
();
}
final
Container
container
=
SunToolkit
.
getNativeContainer
(
target
);
containerPeer
=
(
LWContainerPeer
)
LWToolkit
.
targetToPeer
(
container
);
windowPeer
=
containerPeer
!=
null
?
containerPeer
.
getWindowPeerOrSelf
()
:
null
;
// don't bother about z-order here as updateZOrder()
// will be called from addNotify() later anyway
if
(
containerPeer
!=
null
)
{
...
...
@@ -356,15 +360,6 @@ public abstract class LWComponentPeer<T extends Component, D extends JComponent>
return
containerPeer
;
}
// Just a helper method
// Overridden in LWWindowPeer to skip containerPeer initialization
protected
void
initializeContainerPeer
()
{
Container
parent
=
LWToolkit
.
getNativeContainer
(
target
);
if
(
parent
!=
null
)
{
containerPeer
=
(
LWContainerPeer
)
LWToolkit
.
targetToPeer
(
parent
);
}
}
public
PlatformWindow
getPlatformWindow
()
{
LWWindowPeer
windowPeer
=
getWindowPeer
();
return
windowPeer
.
getPlatformWindow
();
...
...
src/macosx/classes/sun/lwawt/LWWindowPeer.java
浏览文件 @
93b1a838
...
...
@@ -41,7 +41,7 @@ import sun.util.logging.PlatformLogger;
public
class
LWWindowPeer
extends
LWContainerPeer
<
Window
,
JComponent
>
implements
WindowPeer
,
FramePeer
,
DialogPeer
,
FullScreenCapable
implements
FramePeer
,
DialogPeer
,
FullScreenCapable
,
DisplayChangedListener
{
public
static
enum
PeerType
{
SIMPLEWINDOW
,
...
...
@@ -189,6 +189,7 @@ public class LWWindowPeer
if
(
getSurfaceData
()
==
null
)
{
replaceSurfaceData
(
false
);
}
activateDisplayListener
();
}
// Just a helper method
...
...
@@ -201,15 +202,11 @@ public class LWWindowPeer
return
this
;
}
@Override
protected
void
initializeContainerPeer
()
{
// No-op as LWWindowPeer doesn't have any containerPeer
}
// ---- PEER METHODS ---- //
@Override
protected
void
disposeImpl
()
{
deactivateDisplayListener
();
SurfaceData
oldData
=
getSurfaceData
();
synchronized
(
surfaceDataLock
){
surfaceData
=
null
;
...
...
@@ -880,6 +877,18 @@ public class LWWindowPeer
// ---- UTILITY METHODS ---- //
private
void
activateDisplayListener
()
{
final
GraphicsEnvironment
ge
=
GraphicsEnvironment
.
getLocalGraphicsEnvironment
();
((
SunGraphicsEnvironment
)
ge
).
addDisplayChangedListener
(
this
);
}
private
void
deactivateDisplayListener
()
{
final
GraphicsEnvironment
ge
=
GraphicsEnvironment
.
getLocalGraphicsEnvironment
();
((
SunGraphicsEnvironment
)
ge
).
removeDisplayChangedListener
(
this
);
}
private
void
postWindowStateChangedEvent
(
int
newWindowState
)
{
if
(
getTarget
()
instanceof
Frame
)
{
AWTAccessor
.
getFrameAccessor
().
setExtendedState
(
...
...
@@ -941,7 +950,6 @@ public class LWWindowPeer
graphicsDevice
=
newGraphicsDevice
;
}
// TODO: DisplayChangedListener stuff
final
GraphicsConfiguration
newGC
=
newGraphicsDevice
.
getDefaultConfiguration
();
if
(!
setGraphicsConfig
(
newGC
))
return
false
;
...
...
@@ -954,6 +962,20 @@ public class LWWindowPeer
return
true
;
}
@Override
public
final
void
displayChanged
()
{
updateGraphicsDevice
();
// Replace surface unconditionally, because internal state of the
// GraphicsDevice could be changed.
replaceSurfaceData
();
repaintPeer
();
}
@Override
public
final
void
paletteChanged
()
{
// components do not need to react to this event.
}
/*
* May be called by delegate to provide SD to Java2D code.
*/
...
...
src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java
浏览文件 @
93b1a838
...
...
@@ -32,6 +32,7 @@ import java.awt.peer.WindowPeer;
import
java.beans.*
;
import
java.lang.reflect.InvocationTargetException
;
import
java.util.List
;
import
java.util.Objects
;
import
javax.swing.*
;
...
...
@@ -916,9 +917,12 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
final
Rectangle
oldB
=
nativeBounds
;
nativeBounds
=
new
Rectangle
(
x
,
y
,
width
,
height
);
final
GraphicsConfiguration
oldGC
=
peer
.
getGraphicsConfiguration
();
peer
.
notifyReshape
(
x
,
y
,
width
,
height
);
final
GraphicsConfiguration
newGC
=
peer
.
getGraphicsConfiguration
();
// System-dependent appearance optimization.
if
((
byUser
&&
!
oldB
.
getSize
().
equals
(
nativeBounds
.
getSize
()))
||
isFullScreenAnimationOn
)
{
||
isFullScreenAnimationOn
||
!
Objects
.
equals
(
newGC
,
oldGC
)
)
{
flushBuffers
();
}
}
...
...
src/macosx/native/sun/awt/AWTEvent.h
浏览文件 @
93b1a838
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011,
2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -35,5 +35,6 @@ void SendAdditionalJavaEvents(JNIEnv *env, NSEvent *nsEvent, jobject peer);
jint
GetJavaMouseModifiers
(
NSInteger
button
,
NSUInteger
modifierFlags
);
jint
NsKeyModifiersToJavaModifiers
(
NSUInteger
nsFlags
,
BOOL
isExtMods
);
NSUInteger
JavaModifiersToNsKeyModifiers
(
jint
javaModifiers
,
BOOL
isExtMods
);
unichar
NsCharToJavaChar
(
unichar
nsChar
,
NSUInteger
modifiers
);
#endif
/* __AWTEVENT_H */
src/macosx/native/sun/awt/AWTEvent.m
浏览文件 @
93b1a838
/*
*
Copyright
(
c
)
2011
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
*
Copyright
(
c
)
2011
,
2013
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
*
DO
NOT
ALTER
OR
REMOVE
COPYRIGHT
NOTICES
OR
THIS
FILE
HEADER
.
*
*
This
code
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
...
...
@@ -341,8 +341,7 @@ const charTable[] = {
{
0
,
0
,
0
}
}
;
static
unichar
NsCharToJavaChar
(
unichar
nsChar
,
NSUInteger
modifiers
)
unichar
NsCharToJavaChar
(
unichar
nsChar
,
NSUInteger
modifiers
)
{
const
struct
_
char
*
cur
;
//
Mask
off
just
the
keyboard
modifiers
from
the
event
modifier
mask
.
...
...
src/macosx/native/sun/awt/CGraphicsEnv.m
浏览文件 @
93b1a838
...
...
@@ -124,10 +124,11 @@ static void displaycb_handle
jobject graphicsEnv = [wrapper jObjectWithEnv:env];
if (graphicsEnv == NULL) return; // ref already GC'd
static JNF_CLASS_CACHE(jc_CGraphicsEnvironment, "sun/awt/CGraphicsEnvironment");
static JNF_MEMBER_CACHE(jm_displayReconfiguration, jc_CGraphicsEnvironment, "_displayReconfiguration", "(J)V");
JNFCallVoidMethod(env, graphicsEnv, jm_displayReconfiguration);
static JNF_MEMBER_CACHE(jm_displayReconfiguration, jc_CGraphicsEnvironment, "_displayReconfiguration", "(IZ)V");
JNFCallVoidMethod(env, graphicsEnv, jm_displayReconfiguration,
(jint) display,
(jboolean) flags & kCGDisplayRemoveFlag);
});
}
...
...
src/macosx/native/sun/awt/CMenuItem.m
浏览文件 @
93b1a838
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011,
2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -77,6 +77,15 @@ JNF_COCOA_ENTER(env);
if
([
currEvent
type
]
==
NSKeyDown
)
{
NSString
*
menuKey
=
[
sender
keyEquivalent
];
NSString
*
eventKey
=
[
currEvent
charactersIgnoringModifiers
];
// Apple uses characters from private Unicode range for some of the
// keys, so we need to do the same translation here that we do
// for the regular key down events
if
([
eventKey
length
]
==
1
)
{
unichar
ch
=
NsCharToJavaChar
([
eventKey
characterAtIndex
:
0
],
0
);
eventKey
=
[
NSString
stringWithCharacters
:
&
ch
length
:
1
];
}
if
([
menuKey
isEqualToString
:
eventKey
])
{
return
;
}
...
...
src/macosx/native/sun/awt/CTextPipe.m
浏览文件 @
93b1a838
...
...
@@ -143,6 +143,8 @@ void JavaCT_DrawGlyphVector
CGContextRef
cgRef
=
qsdo
->
cgRef
;
CGAffineTransform
ctmText
=
CGContextGetTextMatrix
(
cgRef
);
BOOL
saved
=
false
;
/* Save and restore of graphics context is done before the iteration.
This seems to work using our test case (see bug ID 7158350) so we are restoring it at
the end of the for loop. If we find out that save/restore outside the loop
...
...
@@ -175,10 +177,19 @@ void JavaCT_DrawGlyphVector
CFRelease
(
fallback
);
if
(
cgFallback
)
{
if
(
!
saved
)
{
CGContextSaveGState
(
cgRef
);
saved
=
true
;
}
CGContextSetFont
(
cgRef
,
cgFallback
);
CFRelease
(
cgFallback
);
}
}
}
else
{
if
(
saved
)
{
CGContextRestoreGState
(
cgRef
);
saved
=
false
;
}
}
// if we have per-glyph transformations
...
...
src/macosx/native/sun/awt/awt.m
浏览文件 @
93b1a838
...
...
@@ -316,7 +316,10 @@ AWT_ASSERT_APPKIT_THREAD;
// its finishLaunching has initialized it.
// ApplicationDelegate is the support code for com.apple.eawt.
[
ThreadUtilities
performOnMainThreadWaiting
:
YES
block
:
^
(){
OSXAPP_SetApplicationDelegate
([
ApplicationDelegate
sharedDelegate
]);
id
<
NSApplicationDelegate
>
delegate
=
[
ApplicationDelegate
sharedDelegate
];
if
(
delegate
!=
nil
)
{
OSXAPP_SetApplicationDelegate
(
delegate
);
}
}];
}
...
...
src/macosx/native/sun/java2d/opengl/CGLLayer.m
浏览文件 @
93b1a838
...
...
@@ -216,7 +216,11 @@ Java_sun_java2d_opengl_CGLLayer_nativeSetScale
{
JNF_COCOA_ENTER
(
env
);
CGLLayer
*
layer
=
jlong_to_ptr
(
layerPtr
);
[
ThreadUtilities
performOnMainThreadWaiting
:
NO
block
:
^
(){
// We always call all setXX methods asynchronously, exception is only in
// this method where we need to change native texture size and layer's scale
// in one call on appkit, otherwise we'll get window's contents blinking,
// during screen-2-screen moving.
[
ThreadUtilities
performOnMainThreadWaiting
:[
NSThread
isMainThread
]
block
:
^
(){
layer
.
contentsScale
=
scale
;
}];
JNF_COCOA_EXIT
(
env
);
...
...
src/share/classes/java/awt/Component.java
浏览文件 @
93b1a838
...
...
@@ -1051,11 +1051,11 @@ public abstract class Component implements ImageObserver, MenuContainer,
return
parent
;
}
// This method is overriden in the Window class to return null,
// This method is overrid
d
en in the Window class to return null,
// because the parent field of the Window object contains
// the owner of the window, not its parent.
Container
getContainer
()
{
return
getParent
();
return
getParent
_NoClientCode
();
}
/**
...
...
@@ -8194,10 +8194,10 @@ public abstract class Component implements ImageObserver, MenuContainer,
* Fetches the native container somewhere higher up in the component
* tree that contains this component.
*/
Container
getNativeContainer
()
{
Container
p
=
parent
;
final
Container
getNativeContainer
()
{
Container
p
=
getContainer
()
;
while
(
p
!=
null
&&
p
.
peer
instanceof
LightweightPeer
)
{
p
=
p
.
get
Parent_NoClientCode
();
p
=
p
.
get
Container
();
}
return
p
;
}
...
...
src/share/classes/java/awt/Window.java
浏览文件 @
93b1a838
...
...
@@ -3914,7 +3914,7 @@ public class Window extends Container implements Accessible {
// ************************** MIXING CODE *******************************
// A window has a
parent
, but it does NOT have a container
// A window has a
n owner
, but it does NOT have a container
@Override
final
Container
getContainer
()
{
return
null
;
...
...
src/share/classes/java/beans/MetaData.java
浏览文件 @
93b1a838
此差异已折叠。
点击以展开。
src/share/classes/java/beans/XMLEncoder.java
浏览文件 @
93b1a838
...
...
@@ -604,7 +604,7 @@ public class XMLEncoder extends Encoder implements AutoCloseable {
return
;
}
Class
<?>
primitiveType
=
ReflectionUtils
.
primitiveTypeFor
(
value
.
getClass
());
Class
<?>
primitiveType
=
primitiveTypeFor
(
value
.
getClass
());
if
(
primitiveType
!=
null
&&
target
==
value
.
getClass
()
&&
methodName
.
equals
(
"new"
))
{
String
primitiveTypeName
=
primitiveType
.
getName
();
...
...
@@ -778,4 +778,18 @@ public class XMLEncoder extends Encoder implements AutoCloseable {
indentation
--;
writeln
(
"</"
+
tag
+
">"
);
}
@SuppressWarnings
(
"rawtypes"
)
static
Class
primitiveTypeFor
(
Class
wrapper
)
{
if
(
wrapper
==
Boolean
.
class
)
return
Boolean
.
TYPE
;
if
(
wrapper
==
Byte
.
class
)
return
Byte
.
TYPE
;
if
(
wrapper
==
Character
.
class
)
return
Character
.
TYPE
;
if
(
wrapper
==
Short
.
class
)
return
Short
.
TYPE
;
if
(
wrapper
==
Integer
.
class
)
return
Integer
.
TYPE
;
if
(
wrapper
==
Long
.
class
)
return
Long
.
TYPE
;
if
(
wrapper
==
Float
.
class
)
return
Float
.
TYPE
;
if
(
wrapper
==
Double
.
class
)
return
Double
.
TYPE
;
if
(
wrapper
==
Void
.
class
)
return
Void
.
TYPE
;
return
null
;
}
}
src/share/classes/javax/swing/JDesktopPane.java
浏览文件 @
93b1a838
...
...
@@ -427,6 +427,15 @@ public class JDesktopPane extends JLayeredPane implements Accessible
}
}
/**
* {@inheritDoc}
*/
@Override
public
void
remove
(
Component
comp
)
{
super
.
remove
(
comp
);
updateFramesCache
();
}
/**
* Selects the next <code>JInternalFrame</code> in this desktop pane.
*
...
...
src/share/classes/sun/java2d/pipe/AAShapePipe.java
浏览文件 @
93b1a838
...
...
@@ -127,7 +127,7 @@ public class AAShapePipe
private
static
byte
[]
theTile
;
p
ublic
synchronized
static
byte
[]
getAlphaTile
(
int
len
)
{
p
rivate
synchronized
static
byte
[]
getAlphaTile
(
int
len
)
{
byte
[]
t
=
theTile
;
if
(
t
==
null
||
t
.
length
<
len
)
{
t
=
new
byte
[
len
];
...
...
@@ -137,7 +137,7 @@ public class AAShapePipe
return
t
;
}
p
ublic
synchronized
static
void
dropAlphaTile
(
byte
[]
t
)
{
p
rivate
synchronized
static
void
dropAlphaTile
(
byte
[]
t
)
{
theTile
=
t
;
}
...
...
src/share/classes/sun/security/provider/certpath/CertPathHelper.java
浏览文件 @
93b1a838
...
...
@@ -64,7 +64,7 @@ public abstract class CertPathHelper {
instance
.
implSetPathToNames
(
sel
,
names
);
}
static
void
setDateAndTime
(
X509CRLSelector
sel
,
Date
date
,
long
skew
)
{
public
static
void
setDateAndTime
(
X509CRLSelector
sel
,
Date
date
,
long
skew
)
{
instance
.
implSetDateAndTime
(
sel
,
date
,
skew
);
}
}
src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
浏览文件 @
93b1a838
...
...
@@ -50,7 +50,7 @@ import sun.security.x509.*;
* @author Sean Mullan
* @since 1.4.2
*/
class
DistributionPointFetcher
{
public
class
DistributionPointFetcher
{
private
static
final
Debug
debug
=
Debug
.
getInstance
(
"certpath"
);
...
...
@@ -66,8 +66,9 @@ class DistributionPointFetcher {
* Return the X509CRLs matching this selector. The selector must be
* an X509CRLSelector with certificateChecking set.
*/
static
Collection
<
X509CRL
>
getCRLs
(
X509CRLSelector
selector
,
boolean
signFlag
,
PublicKey
prevKey
,
public
static
Collection
<
X509CRL
>
getCRLs
(
X509CRLSelector
selector
,
boolean
signFlag
,
PublicKey
prevKey
,
String
provider
,
List
<
CertStore
>
certStores
,
boolean
[]
reasonsMask
,
...
...
src/share/classes/sun/security/provider/certpath/OCSP.java
浏览文件 @
93b1a838
/*
* Copyright (c) 2009, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -85,10 +85,9 @@ public final class OCSP {
* value is negative, set the timeout length to the default.
*/
private
static
int
initializeTimeout
()
{
int
tmp
=
java
.
security
.
AccessController
.
doPrivileged
(
new
GetIntegerAction
(
"com.sun.security.ocsp.timeout"
,
DEFAULT_CONNECT_TIMEOUT
));
if
(
tmp
<
0
)
{
Integer
tmp
=
java
.
security
.
AccessController
.
doPrivileged
(
new
GetIntegerAction
(
"com.sun.security.ocsp.timeout"
));
if
(
tmp
==
null
||
tmp
<
0
)
{
return
DEFAULT_CONNECT_TIMEOUT
;
}
// Convert to milliseconds, as the system property will be
...
...
src/share/classes/sun/security/provider/certpath/OCSPResponse.java
浏览文件 @
93b1a838
/*
* Copyright (c) 2003, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -43,6 +43,7 @@ import java.util.Map;
import
javax.security.auth.x500.X500Principal
;
import
sun.misc.HexDumpEncoder
;
import
sun.security.action.GetIntegerAction
;
import
sun.security.x509.*
;
import
sun.security.util.*
;
...
...
@@ -144,9 +145,31 @@ public final class OCSPResponse {
// Object identifier for the OCSPSigning key purpose
private
static
final
String
KP_OCSP_SIGNING_OID
=
"1.3.6.1.5.5.7.3.9"
;
// Maximum clock skew in milliseconds (15 minutes) allowed when checking
// validity of OCSP responses
private
static
final
long
MAX_CLOCK_SKEW
=
900000
;
// Default maximum clock skew in milliseconds (15 minutes)
// allowed when checking validity of OCSP responses
private
static
final
int
DEFAULT_MAX_CLOCK_SKEW
=
900000
;
/**
* Integer value indicating the maximum allowable clock skew, in seconds,
* to be used for the OCSP check.
*/
private
static
final
int
MAX_CLOCK_SKEW
=
initializeClockSkew
();
/**
* Initialize the maximum allowable clock skew by getting the OCSP
* clock skew system property. If the property has not been set, or if its
* value is negative, set the skew to the default.
*/
private
static
int
initializeClockSkew
()
{
Integer
tmp
=
java
.
security
.
AccessController
.
doPrivileged
(
new
GetIntegerAction
(
"com.sun.security.ocsp.clockSkew"
));
if
(
tmp
==
null
||
tmp
<
0
)
{
return
DEFAULT_MAX_CLOCK_SKEW
;
}
// Convert to milliseconds, as the system property will be
// specified in seconds
return
tmp
*
1000
;
}
// an array of all of the CRLReasons (used in SingleResponse)
private
static
CRLReason
[]
values
=
CRLReason
.
values
();
...
...
src/share/classes/sun/security/provider/certpath/URICertStore.java
浏览文件 @
93b1a838
/*
* Copyright (c) 2006, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2006, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -51,6 +51,7 @@ import java.util.Collection;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Locale
;
import
sun.security.action.GetIntegerAction
;
import
sun.security.x509.AccessDescription
;
import
sun.security.x509.GeneralNameInterface
;
import
sun.security.x509.URIName
;
...
...
@@ -121,6 +122,33 @@ class URICertStore extends CertStoreSpi {
private
CertStore
ldapCertStore
;
private
String
ldapPath
;
// Default maximum connect timeout in milliseconds (15 seconds)
// allowed when downloading CRLs
private
static
final
int
DEFAULT_CRL_CONNECT_TIMEOUT
=
15000
;
/**
* Integer value indicating the connect timeout, in seconds, to be
* used for the CRL download. A timeout of zero is interpreted as
* an infinite timeout.
*/
private
static
final
int
CRL_CONNECT_TIMEOUT
=
initializeTimeout
();
/**
* Initialize the timeout length by getting the CRL timeout
* system property. If the property has not been set, or if its
* value is negative, set the timeout length to the default.
*/
private
static
int
initializeTimeout
()
{
Integer
tmp
=
java
.
security
.
AccessController
.
doPrivileged
(
new
GetIntegerAction
(
"com.sun.security.crl.timeout"
));
if
(
tmp
==
null
||
tmp
<
0
)
{
return
DEFAULT_CRL_CONNECT_TIMEOUT
;
}
// Convert to milliseconds, as the system property will be
// specified in seconds
return
tmp
*
1000
;
}
/**
* Creates a URICertStore.
*
...
...
@@ -364,6 +392,7 @@ class URICertStore extends CertStoreSpi {
connection
.
setIfModifiedSince
(
lastModified
);
}
long
oldLastModified
=
lastModified
;
connection
.
setConnectTimeout
(
CRL_CONNECT_TIMEOUT
);
try
(
InputStream
in
=
connection
.
getInputStream
())
{
lastModified
=
connection
.
getLastModified
();
if
(
oldLastModified
!=
0
)
{
...
...
src/solaris/classes/sun/awt/X11/XWindowPeer.java
浏览文件 @
93b1a838
...
...
@@ -1887,7 +1887,9 @@ class XWindowPeer extends XPanelPeer implements WindowPeer,
switch
(
getWindowType
())
{
case
NORMAL:
typeAtom
=
protocol
.
XA_NET_WM_WINDOW_TYPE_NORMAL
;
typeAtom
=
(
ownerPeer
==
null
)
?
protocol
.
XA_NET_WM_WINDOW_TYPE_NORMAL
:
protocol
.
XA_NET_WM_WINDOW_TYPE_DIALOG
;
break
;
case
UTILITY:
typeAtom
=
protocol
.
XA_NET_WM_WINDOW_TYPE_UTILITY
;
...
...
src/windows/classes/sun/awt/windows/WComponentPeer.java
浏览文件 @
93b1a838
...
...
@@ -759,9 +759,7 @@ public abstract class WComponentPeer extends WObjectPeer
WComponentPeer
(
Component
target
)
{
this
.
target
=
target
;
this
.
paintArea
=
new
RepaintArea
();
Container
parent
=
WToolkit
.
getNativeContainer
(
target
);
WComponentPeer
parentPeer
=
(
WComponentPeer
)
WToolkit
.
targetToPeer
(
parent
);
create
(
parentPeer
);
create
(
getNativeParent
());
// fix for 5088782: check if window object is created successfully
checkCreation
();
...
...
@@ -771,6 +769,17 @@ public abstract class WComponentPeer extends WObjectPeer
}
abstract
void
create
(
WComponentPeer
parent
);
/**
* Gets the native parent of this peer. We use the term "parent" explicitly,
* because we override the method in top-level window peer implementations.
*
* @return the parent container/owner of this peer.
*/
WComponentPeer
getNativeParent
()
{
Container
parent
=
SunToolkit
.
getNativeContainer
((
Component
)
target
);
return
(
WComponentPeer
)
WToolkit
.
targetToPeer
(
parent
);
}
protected
void
checkCreation
()
{
if
((
hwnd
==
0
)
||
(
pData
==
0
))
...
...
src/windows/classes/sun/awt/windows/WWindowPeer.java
浏览文件 @
93b1a838
...
...
@@ -215,6 +215,12 @@ public class WWindowPeer extends WPanelPeer implements WindowPeer,
createAwtWindow
(
parent
);
}
@Override
final
WComponentPeer
getNativeParent
()
{
final
Container
owner
=
((
Window
)
target
).
getOwner
();
return
(
WComponentPeer
)
WToolkit
.
targetToPeer
(
owner
);
}
// should be overriden in WDialogPeer
protected
void
realShow
()
{
super
.
show
();
...
...
test/java/awt/Focus/
OverrideRedirectWindowActivationTest/OverrideRedirect
WindowActivationTest.java
→
test/java/awt/Focus/
SimpleWindowActivationTest/Simple
WindowActivationTest.java
浏览文件 @
93b1a838
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012,
2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -28,7 +28,7 @@
* @author anton.tarasov@sun.com: area=awt.focus
* @library ../../regtesthelpers
* @build Util
* @run main
OverrideRedirect
WindowActivationTest
* @run main
Simple
WindowActivationTest
*/
import
java.awt.*
;
import
java.awt.event.*
;
...
...
@@ -37,7 +37,7 @@ import javax.swing.SwingUtilities;
import
sun.awt.SunToolkit
;
import
test.java.awt.regtesthelpers.Util
;
public
class
OverrideRedirect
WindowActivationTest
{
public
class
Simple
WindowActivationTest
{
private
static
Frame
frame
;
private
static
Window
window
;
...
...
@@ -115,7 +115,7 @@ public class OverrideRedirectWindowActivationTest {
wbutton
=
new
Button
(
"wbutton"
);
label
=
new
Label
(
"label"
);
window
.
setBounds
(
800
,
200
,
2
00
,
100
);
window
.
setBounds
(
800
,
200
,
3
00
,
100
);
window
.
setLayout
(
new
FlowLayout
());
window
.
add
(
wbutton
);
window
.
add
(
label
);
...
...
@@ -126,7 +126,7 @@ public class OverrideRedirectWindowActivationTest {
private
static
void
createAndShowFrame
()
{
fbutton
=
new
Button
(
"fbutton"
);
frame
.
setBounds
(
800
,
0
,
2
00
,
100
);
frame
.
setBounds
(
800
,
0
,
3
00
,
100
);
frame
.
setLayout
(
new
FlowLayout
());
frame
.
add
(
fbutton
);
frame
.
setVisible
(
true
);
...
...
test/java/awt/Toolkit/BadDisplayTest/BadDisplayTest.sh
浏览文件 @
93b1a838
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012,
2013,
Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -22,7 +22,8 @@
${
TESTJAVA
}
/bin/javac
-cp
${
TESTSRC
}
-d
.
${
TESTSRC
}
/BadDisplayTest.java
export
DISPLAY
=
DISPLAY
=
export
DISPLAY
OS
=
`
uname
-s
`
case
"
$OS
"
in
...
...
test/java/awt/WMSpecificTests/Metacity/FullscreenDialogModality.java
0 → 100644
浏览文件 @
93b1a838
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8012586
* @summary verify that modal dialog will appeared above fullscreen window under Metacity WM.
* @run main FullscreenDialogModality
* @run main/othervm FullscreenDialogModality
* @author vkravets
*/
import
test.java.awt.regtesthelpers.Util
;
import
java.awt.*
;
import
java.lang.reflect.InvocationTargetException
;
public
class
FullscreenDialogModality
extends
Frame
{
static
Robot
robot
=
null
;
public
void
enterFS
()
{
GraphicsDevice
gd
=
getGraphicsConfiguration
().
getDevice
();
final
boolean
fs
=
gd
.
isFullScreenSupported
();
System
.
out
.
println
(
"FullscreenSupported: "
+
(
fs
?
"yes"
:
"no"
));
gd
.
setFullScreenWindow
(
this
);
try
{
// Give the system time to set the FS window and display it
// properly
Thread
.
sleep
(
2000
);
}
catch
(
Exception
e
)
{}
}
public
void
exitFS
()
{
GraphicsDevice
gd
=
getGraphicsConfiguration
().
getDevice
();
// reset window
gd
.
setFullScreenWindow
(
null
);
try
{
// Give the system time to set the FS window and display it
// properly
Thread
.
sleep
(
2000
);
}
catch
(
Exception
e
)
{}
}
public
void
checkDialogModality
()
throws
InvocationTargetException
,
InterruptedException
{
// Dialog
final
Dialog
d
=
new
Dialog
(
FullscreenDialogModality
.
this
,
"Modal dialog"
,
Dialog
.
ModalityType
.
APPLICATION_MODAL
);
d
.
setBounds
(
500
,
500
,
160
,
160
);
d
.
setModal
(
true
);
d
.
setBackground
(
Color
.
red
);
EventQueue
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
d
.
setVisible
(
true
);
}
});
// Wait until the dialog is shown
EventQueue
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
// Empty
}
});
Util
.
waitForIdle
(
robot
);
try
{
//Check color
Point
checkPoint
=
new
Point
(
d
.
getX
()
+
d
.
getWidth
()
/
2
,
d
.
getY
()
+
d
.
getHeight
()
/
2
);
Color
actual
=
robot
.
getPixelColor
(
checkPoint
.
x
,
checkPoint
.
y
);
System
.
out
.
println
(
"Color = "
+
actual
);
if
(
actual
.
getRGB
()
==
Color
.
GREEN
.
getRGB
())
{
throw
new
RuntimeException
(
"Test FAILED: Modal dialog shown below fullscreen window"
);
}
else
if
(
actual
.
getRGB
()
==
Color
.
RED
.
getRGB
())
{
System
.
out
.
println
(
"Test PASSED: Modal dialog shown above fullscreen window"
);
}
else
{
System
.
out
.
println
(
"pixelColor "
+
Integer
.
toHexString
(
actual
.
getRGB
())
+
" at coordinates ("
+
checkPoint
.
x
+
", "
+
checkPoint
.
y
+
")"
);
throw
new
RuntimeException
(
"Test FAILED: Unexpected behavior"
);
}
robot
.
delay
(
2000
);
Util
.
waitForIdle
(
robot
);
}
finally
{
d
.
dispose
();
}
}
public
static
void
main
(
String
args
[])
throws
InvocationTargetException
,
InterruptedException
{
if
(
Util
.
getWMID
()
!=
Util
.
METACITY_WM
)
{
System
.
out
.
println
(
"This test is only useful on Metacity"
);
return
;
}
robot
=
Util
.
createRobot
();
Util
.
waitForIdle
(
robot
);
final
FullscreenDialogModality
frame
=
new
FullscreenDialogModality
();
frame
.
setUndecorated
(
true
);
frame
.
setBackground
(
Color
.
green
);
frame
.
setSize
(
500
,
500
);
frame
.
setVisible
(
true
);
try
{
robot
.
delay
(
100
);
Util
.
waitForIdle
(
robot
);
EventQueue
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
frame
.
enterFS
();
}
});
robot
.
delay
(
200
);
Util
.
waitForIdle
(
robot
);
frame
.
checkDialogModality
();
EventQueue
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
frame
.
exitFS
();
}
});
}
finally
{
frame
.
dispose
();
}
}
}
test/java/beans/XMLEncoder/AbstractTest.java
浏览文件 @
93b1a838
...
...
@@ -30,8 +30,10 @@ import java.io.ByteArrayOutputStream;
import
java.nio.charset.Charset
;
import
java.lang.reflect.Field
;
abstract
class
AbstractTest
<
T
>
implements
ExceptionListener
{
private
final
BeanValidator
validator
=
new
BeanValidator
();
final
BeanValidator
validator
=
new
BeanValidator
();
public
final
void
exceptionThrown
(
Exception
exception
)
{
throw
new
Error
(
"unexpected exception"
,
exception
);
...
...
@@ -59,7 +61,7 @@ abstract class AbstractTest<T> implements ExceptionListener {
}
/**
* This method should be overriden
* This method should be overrid
d
en
* if specified encoder should be initialized.
*
* @param encoder the XML encoder to initialize
...
...
@@ -68,7 +70,7 @@ abstract class AbstractTest<T> implements ExceptionListener {
}
/**
* This method should be overriden
* This method should be overrid
d
en
* if specified decoder should be initialized.
*
* @param decoder the XML decoder to initialize
...
...
@@ -77,7 +79,7 @@ abstract class AbstractTest<T> implements ExceptionListener {
}
/**
* This method should be overriden
* This method should be overrid
d
en
* for test-specific comparison.
*
* @param before the object before encoding
...
...
@@ -134,6 +136,7 @@ abstract class AbstractTest<T> implements ExceptionListener {
private
byte
[]
writeObject
(
Object
object
)
{
ByteArrayOutputStream
output
=
new
ByteArrayOutputStream
();
XMLEncoder
encoder
=
new
XMLEncoder
(
output
);
encoder
.
setExceptionListener
(
this
);
initialize
(
encoder
);
encoder
.
writeObject
(
object
);
encoder
.
close
();
...
...
@@ -143,9 +146,24 @@ abstract class AbstractTest<T> implements ExceptionListener {
private
Object
readObject
(
byte
[]
array
)
{
ByteArrayInputStream
input
=
new
ByteArrayInputStream
(
array
);
XMLDecoder
decoder
=
new
XMLDecoder
(
input
);
decoder
.
setExceptionListener
(
this
);
initialize
(
decoder
);
Object
object
=
decoder
.
readObject
();
decoder
.
close
();
return
object
;
}
static
Field
getField
(
String
name
)
{
try
{
int
index
=
name
.
lastIndexOf
(
'.'
);
String
className
=
name
.
substring
(
0
,
index
);
String
fieldName
=
name
.
substring
(
1
+
index
);
Field
field
=
Class
.
forName
(
className
).
getDeclaredField
(
fieldName
);
field
.
setAccessible
(
true
);
return
field
;
}
catch
(
Exception
exception
)
{
throw
new
Error
(
exception
);
}
}
}
test/java/beans/XMLEncoder/BeanValidator.java
浏览文件 @
93b1a838
...
...
@@ -63,6 +63,15 @@ final class BeanValidator {
}
Class
type
=
object1
.
getClass
();
if
(!
type
.
equals
(
object2
.
getClass
()))
{
// resolve different implementations of the Map.Entry interface
if
((
object1
instanceof
Map
.
Entry
)
&&
(
object2
instanceof
Map
.
Entry
))
{
log
(
"!!! special case"
,
"Map.Entry"
);
Map
.
Entry
entry1
=
(
Map
.
Entry
)
object1
;
Map
.
Entry
entry2
=
(
Map
.
Entry
)
object2
;
validate
(
entry1
.
getKey
(),
entry2
.
getKey
());
validate
(
entry1
.
getValue
(),
entry2
.
getValue
());
return
;
}
throw
new
IllegalStateException
(
"could not compare objects with different types"
);
}
// validate elements of arrays
...
...
@@ -82,10 +91,14 @@ final class BeanValidator {
}
return
;
}
// special case for collections: do not use equals
boolean
ignore
=
Collection
.
class
.
isAssignableFrom
(
type
)
||
Map
.
Entry
.
class
.
isAssignableFrom
(
type
)
||
Map
.
class
.
isAssignableFrom
(
type
);
// validate objects using equals()
// we assume that the method equals(Object) can be called,
// if the class declares such method
if
(
isDefined
(
type
,
"equals"
,
Object
.
class
))
{
if
(
!
ignore
&&
isDefined
(
type
,
"equals"
,
Object
.
class
))
{
if
(
object1
.
equals
(
object2
))
{
return
;
}
...
...
@@ -205,27 +218,7 @@ final class BeanValidator {
}
private
void
validate
(
Map
map1
,
Map
map2
,
boolean
sorted
)
{
if
(
map1
.
size
()
!=
map2
.
size
())
{
throw
new
IllegalStateException
(
"could not compare maps with different sizes"
);
}
if
(
sorted
)
{
Iterator
first
=
map1
.
entrySet
().
iterator
();
Iterator
second
=
map2
.
entrySet
().
iterator
();
int
index
=
0
;
while
(
first
.
hasNext
()
&&
second
.
hasNext
())
{
log
(
"validate map entry"
,
Integer
.
valueOf
(
index
++));
validate
(
first
.
next
(),
second
.
next
());
}
if
(
first
.
hasNext
()
||
second
.
hasNext
())
{
throw
new
IllegalStateException
(
"one map contains more entries than another one"
);
}
}
else
{
// assume that equals() can be used for keys
for
(
Object
key
:
map1
.
keySet
())
{
log
(
"validate map value for key"
,
key
);
validate
(
map1
.
get
(
key
),
map2
.
get
(
key
));
}
}
validate
(
map1
.
entrySet
(),
map2
.
entrySet
(),
sorted
);
}
private
boolean
isCyclic
(
Object
object1
,
Object
object2
)
{
...
...
test/java/beans/XMLEncoder/Test4631471.java
浏览文件 @
93b1a838
...
...
@@ -28,7 +28,6 @@
* @author Sergey Malenkov, Mark Davidson
*/
import
java.beans.XMLEncoder
;
import
javax.swing.JTree
;
import
javax.swing.tree.DefaultMutableTreeNode
;
import
javax.swing.tree.DefaultTreeModel
;
...
...
@@ -78,10 +77,6 @@ public abstract class Test4631471 extends AbstractTest {
// do not any validation
}
protected
final
void
initialize
(
XMLEncoder
encoder
)
{
encoder
.
setExceptionListener
(
this
);
}
public
static
TreeNode
getRoot
()
{
DefaultMutableTreeNode
node
=
new
DefaultMutableTreeNode
(
"root"
);
DefaultMutableTreeNode
first
=
new
DefaultMutableTreeNode
(
"first"
);
...
...
test/java/beans/XMLEncoder/Test4679556.java
浏览文件 @
93b1a838
...
...
@@ -103,7 +103,6 @@ public class Test4679556 extends AbstractTest {
}
protected
void
initialize
(
XMLEncoder
encoder
)
{
encoder
.
setExceptionListener
(
this
);
encoder
.
setPersistenceDelegate
(
C
.
class
,
new
DefaultPersistenceDelegate
()
{
protected
Expression
instantiate
(
Object
oldInstance
,
Encoder
out
)
{
C
c
=
(
C
)
oldInstance
;
...
...
test/java/beans/XMLEncoder/java_awt_BorderLayout.java
浏览文件 @
93b1a838
...
...
@@ -68,10 +68,8 @@ public final class java_awt_BorderLayout extends AbstractTest<BorderLayout> {
@Override
protected
void
validate
(
BorderLayout
before
,
BorderLayout
after
)
{
super
.
validate
(
before
,
after
);
BeanValidator
validator
=
new
BeanValidator
();
for
(
String
constraint
:
CONSTRAINTS
)
{
validator
.
validate
(
before
.
getLayoutComponent
(
constraint
),
super
.
validator
.
validate
(
before
.
getLayoutComponent
(
constraint
),
after
.
getLayoutComponent
(
constraint
));
}
}
...
...
src/share/classes/java/beans/ReflectionUtils
.java
→
test/java/beans/XMLEncoder/java_awt_CardLayout
.java
浏览文件 @
93b1a838
/*
* Copyright (c) 20
03, 2009
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 20
13
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
...
...
@@ -22,57 +20,64 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package
java.beans
;
/*
* @test
* @bug 8007458
* @summary Tests CardLayout encoding
* @author Sergey Malenkov
*/
import
java.awt.CardLayout
;
import
java.lang.reflect.Field
;
import
java.util.Vector
;
import
javax.swing.JLabel
;
/**
* A utility class for reflectively finding methods, constuctors and fields
* using reflection.
*/
class
ReflectionUtils
{
public
final
class
java_awt_CardLayout
extends
AbstractTest
<
CardLayout
>
{
private
static
final
Field
VECTOR
=
getField
(
"java.awt.CardLayout.vector"
);
private
static
final
Field
NAME
=
getField
(
"java.awt.CardLayout$Card.name"
);
private
static
final
Field
COMP
=
getField
(
"java.awt.CardLayout$Card.comp"
);
@SuppressWarnings
(
"rawtypes"
)
public
static
boolean
isPrimitive
(
Class
type
)
{
return
primitiveTypeFor
(
type
)
!=
null
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
new
java_awt_CardLayout
().
test
(
true
);
}
@SuppressWarnings
(
"rawtypes"
)
public
static
Class
primitiveTypeFor
(
Class
wrapper
)
{
if
(
wrapper
==
Boolean
.
class
)
return
Boolean
.
TYPE
;
if
(
wrapper
==
Byte
.
class
)
return
Byte
.
TYPE
;
if
(
wrapper
==
Character
.
class
)
return
Character
.
TYPE
;
if
(
wrapper
==
Short
.
class
)
return
Short
.
TYPE
;
if
(
wrapper
==
Integer
.
class
)
return
Integer
.
TYPE
;
if
(
wrapper
==
Long
.
class
)
return
Long
.
TYPE
;
if
(
wrapper
==
Float
.
class
)
return
Float
.
TYPE
;
if
(
wrapper
==
Double
.
class
)
return
Double
.
TYPE
;
if
(
wrapper
==
Void
.
class
)
return
Void
.
TYPE
;
return
null
;
@Override
protected
CardLayout
getObject
()
{
CardLayout
layout
=
new
CardLayout
();
layout
.
addLayoutComponent
(
new
JLabel
(
"a"
),
"a"
);
layout
.
addLayoutComponent
(
new
JLabel
(
"b"
),
"b"
);
layout
.
addLayoutComponent
(
new
JLabel
(
"c"
),
"c"
);
return
layout
;
}
/**
* Returns the value of a private field.
*
* @param instance object instance
* @param cls class
* @param name name of the field
* @param el an exception listener to handle exceptions; or null
* @return value of the field; null if not found or an error is encountered
*/
@SuppressWarnings
(
"rawtypes"
)
public
static
Object
getPrivateField
(
Object
instance
,
Class
cls
,
String
name
,
ExceptionListener
el
)
{
@Override
protected
CardLayout
getAnotherObject
()
{
CardLayout
layout
=
new
CardLayout
();
layout
.
addLayoutComponent
(
new
JLabel
(
"a"
),
"a"
);
layout
.
addLayoutComponent
(
new
JLabel
(
"b"
),
"b"
);
layout
.
addLayoutComponent
(
new
JLabel
(
"c"
),
"c"
);
layout
.
addLayoutComponent
(
new
JLabel
(
"d"
),
"d"
);
return
layout
;
}
@Override
protected
void
validate
(
CardLayout
before
,
CardLayout
after
)
{
super
.
validate
(
before
,
after
);
try
{
Field
f
=
cls
.
getDeclaredField
(
name
);
f
.
setAccessible
(
true
);
return
f
.
get
(
instance
);
Vector
a
=
(
Vector
)
VECTOR
.
get
(
after
);
Vector
b
=
(
Vector
)
VECTOR
.
get
(
before
);
int
size
=
a
.
size
();
if
(
size
!=
b
.
size
())
{
throw
new
Error
(
"different content"
);
}
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
super
.
validator
.
validate
(
NAME
.
get
(
a
.
get
(
i
)),
NAME
.
get
(
b
.
get
(
i
)));
super
.
validator
.
validate
(
COMP
.
get
(
a
.
get
(
i
)),
COMP
.
get
(
b
.
get
(
i
)));
}
catch
(
Exception
e
)
{
if
(
el
!=
null
)
{
el
.
exceptionThrown
(
e
);
}
catch
(
Exception
exception
)
{
throw
new
Error
(
exception
);
}
return
null
;
}
}
test/java/beans/XMLEncoder/java_awt_GridBagLayout.java
0 → 100644
浏览文件 @
93b1a838
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8007458
* @summary Tests GridBagLayout encoding
* @author Sergey Malenkov
*/
import
java.awt.Component
;
import
java.awt.GridBagConstraints
;
import
java.awt.GridBagLayout
;
import
java.lang.reflect.Field
;
import
java.util.Hashtable
;
import
java.util.Map
;
import
javax.swing.JLabel
;
public
final
class
java_awt_GridBagLayout
extends
AbstractTest
<
GridBagLayout
>
{
private
static
final
Field
HASHTABLE
=
getField
(
"java.awt.GridBagLayout.comptable"
);
public
static
void
main
(
String
[]
args
)
{
new
java_awt_GridBagLayout
().
test
(
true
);
}
@Override
protected
GridBagLayout
getObject
()
{
GridBagLayout
layout
=
new
GridBagLayout
();
update
(
layout
,
"1"
,
1
,
1
);
update
(
layout
,
"2"
,
2
,
2
);
update
(
layout
,
"3"
,
3
,
3
);
return
layout
;
}
@Override
protected
GridBagLayout
getAnotherObject
()
{
GridBagLayout
layout
=
new
GridBagLayout
();
update
(
layout
,
"11"
,
1
,
1
);
update
(
layout
,
"12"
,
1
,
2
);
update
(
layout
,
"21"
,
2
,
1
);
update
(
layout
,
"22"
,
2
,
2
);
return
layout
;
}
@Override
protected
void
validate
(
GridBagLayout
before
,
GridBagLayout
after
)
{
super
.
validate
(
before
,
after
);
try
{
Hashtable
a
=
(
Hashtable
)
HASHTABLE
.
get
(
after
);
Hashtable
b
=
(
Hashtable
)
HASHTABLE
.
get
(
before
);
super
.
validator
.
validate
(
a
,
b
);
// for (int i = 0; i < size; i++) {
// validator.validate(NAME.get(a.get(i)), NAME.get(b.get(i)));
// validator.validate(COMP.get(a.get(i)), COMP.get(b.get(i)));
// }
}
catch
(
Exception
exception
)
{
throw
new
Error
(
exception
);
}
// for (String name : names) {
// validator.validate(getConstraints(before, name), getConstraints(after, name));
// }
}
private
static
void
update
(
GridBagLayout
layout
,
String
id
,
int
x
,
int
y
)
{
GridBagConstraints
gbc
=
new
GridBagConstraints
();
gbc
.
gridx
=
x
;
gbc
.
gridy
=
y
;
layout
.
addLayoutComponent
(
new
JLabel
(
id
),
gbc
);
}
/*
private static GridBagConstraints getConstraints(GridBagLayout layout, String id) {
return (layout == null) ? null : ((MyGridBagLayout) layout).getConstraints(id);
}
*/
}
test/java/beans/XMLEncoder/javax_swing_DefaultCellEditor.java
浏览文件 @
93b1a838
...
...
@@ -28,6 +28,7 @@
* @author Sergey Malenkov
*/
import
java.beans.XMLEncoder
;
import
javax.swing.DefaultCellEditor
;
import
javax.swing.JTextField
;
import
javax.swing.text.JTextComponent
;
...
...
@@ -46,6 +47,11 @@ public final class javax_swing_DefaultCellEditor extends AbstractTest<DefaultCel
// return new DefaultCellEditor(new JTextField("Second"));
}
@Override
protected
void
initialize
(
XMLEncoder
encoder
)
{
encoder
.
setExceptionListener
(
null
);
// TODO: ignore non-public listener because of 4808251
}
protected
void
validate
(
DefaultCellEditor
before
,
DefaultCellEditor
after
)
{
String
text
=
((
JTextComponent
)
after
.
getComponent
()).
getText
();
if
(!
text
.
equals
(((
JTextComponent
)
before
.
getComponent
()).
getText
()))
...
...
test/javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java
0 → 100644
浏览文件 @
93b1a838
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* @test
@bug 8012004
@summary JINTERNALFRAME NOT BEING FINALIZED AFTER CLOSING
@author mcherkas
@run main InternalFrameIsNotCollectedTest
*/
import
sun.awt.SunToolkit
;
import
javax.swing.*
;
import
java.awt.*
;
import
java.awt.event.KeyEvent
;
import
java.beans.PropertyVetoException
;
import
java.util.Date
;
public
class
InternalFrameIsNotCollectedTest
{
public
static
final
int
waitTime
=
10000
;
private
static
Robot
robot
;
public
static
void
sync
()
{
SunToolkit
toolkit
=
(
SunToolkit
)
Toolkit
.
getDefaultToolkit
();
toolkit
.
realSync
();
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
initRobot
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
@Override
public
void
run
()
{
initUI
();
try
{
closeInternalFrame
();
}
catch
(
PropertyVetoException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
});
sync
();
invokeGC
();
Thread
.
sleep
(
1000
);
// it's better to wait 1 sec now then 10 sec later
Date
startWaiting
=
new
Date
();
synchronized
(
CustomInternalFrame
.
waiter
)
{
// Sync with finalization thread.
Date
now
=
new
Date
();
while
(
now
.
getTime
()
-
startWaiting
.
getTime
()
<
waitTime
&&
!
CustomInternalFrame
.
finalized
)
{
CustomInternalFrame
.
waiter
.
wait
(
waitTime
);
now
=
new
Date
();
}
}
if
(!
CustomInternalFrame
.
finalized
)
{
throw
new
RuntimeException
(
"Closed internal frame wasn't collected"
);
}
}
private
static
void
initRobot
()
throws
AWTException
{
robot
=
new
Robot
();
robot
.
setAutoDelay
(
100
);
}
private
static
void
closeInternalFrame
()
throws
PropertyVetoException
{
robot
.
keyPress
(
KeyEvent
.
VK_CONTROL
);
robot
.
keyPress
(
KeyEvent
.
VK_F4
);
robot
.
keyRelease
(
KeyEvent
.
VK_F4
);
robot
.
keyRelease
(
KeyEvent
.
VK_CONTROL
);
}
private
static
void
initUI
()
{
JFrame
frame
=
new
JFrame
(
"Internal Frame Test"
);
frame
.
getContentPane
().
setLayout
(
new
BorderLayout
());
JDesktopPane
desktopPane
=
new
JDesktopPane
();
desktopPane
.
setDesktopManager
(
new
DefaultDesktopManager
());
frame
.
getContentPane
().
add
(
desktopPane
,
BorderLayout
.
CENTER
);
CustomInternalFrame
iFrame
=
new
CustomInternalFrame
(
"Dummy Frame"
);
iFrame
.
setSize
(
200
,
200
);
iFrame
.
setDefaultCloseOperation
(
WindowConstants
.
DISPOSE_ON_CLOSE
);
desktopPane
.
add
(
iFrame
);
frame
.
setSize
(
800
,
600
);
frame
.
setDefaultCloseOperation
(
WindowConstants
.
DISPOSE_ON_CLOSE
);
frame
.
setVisible
(
true
);
iFrame
.
setVisible
(
true
);
}
private
static
void
invokeGC
()
{
System
.
out
.
println
(
"Firing garbage collection!"
);
try
{
StringBuilder
sb
=
new
StringBuilder
();
while
(
true
)
{
sb
.
append
(
"any string. some test. a little bit more text."
+
sb
.
toString
());
}
}
catch
(
Throwable
e
)
{
// do nothing
}
}
public
static
class
CustomInternalFrame
extends
JInternalFrame
{
public
static
volatile
boolean
finalized
=
false
;
public
static
Object
waiter
=
new
Object
();
public
CustomInternalFrame
(
String
title
)
{
super
(
title
,
true
,
true
,
true
,
true
);
}
protected
void
finalize
()
{
System
.
out
.
println
(
"Finalized!"
);
finalized
=
true
;
waiter
.
notifyAll
();
}
}
}
\ No newline at end of file
test/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java
浏览文件 @
93b1a838
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012,
2013,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -35,34 +35,62 @@ import java.awt.event.*;
import
javax.swing.*
;
public
class
ActionListenerCalledTwiceTest
{
static
String
menuItems
[]
=
{
"Item1"
,
"Item2"
};
static
KeyStroke
keyStrokes
[]
=
{
KeyStroke
.
getKeyStroke
(
KeyEvent
.
VK_E
,
InputEvent
.
META_MASK
),
KeyStroke
.
getKeyStroke
(
KeyEvent
.
VK_DELETE
,
0
)
};
static
volatile
int
listenerCallCounter
=
0
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
if
(
sun
.
awt
.
OSInfo
.
getOSType
()
!=
sun
.
awt
.
OSInfo
.
OSType
.
MACOSX
)
{
System
.
out
.
println
(
"This test is for MacOS only. Automatically passed on other platforms."
);
return
;
}
System
.
setProperty
(
"apple.laf.useScreenMenuBar"
,
"true"
);
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
createAndShowGUI
();
}
});
SunToolkit
toolkit
=
(
SunToolkit
)
Toolkit
.
getDefaultToolkit
();
Robot
robot
=
new
Robot
();
robot
.
setAutoDelay
(
100
);
robot
.
keyPress
(
KeyEvent
.
VK_META
);
robot
.
keyPress
(
KeyEvent
.
VK_E
);
robot
.
keyRelease
(
KeyEvent
.
VK_E
);
robot
.
keyRelease
(
KeyEvent
.
VK_META
);
for
(
int
i
=
0
;
i
<
menuItems
.
length
;
++
i
)
{
KeyStroke
ks
=
keyStrokes
[
i
];
int
modKeyCode
=
getModKeyCode
(
ks
.
getModifiers
());
if
(
modKeyCode
!=
0
)
{
robot
.
keyPress
(
modKeyCode
);
}
robot
.
keyPress
(
ks
.
getKeyCode
());
robot
.
keyRelease
(
ks
.
getKeyCode
());
if
(
modKeyCode
!=
0
)
{
robot
.
keyRelease
(
modKeyCode
);
}
toolkit
.
realSync
();
if
(
listenerCallCounter
!=
1
)
{
throw
new
Exception
(
"Test failed: ActionListener called "
+
listenerCallCounter
+
" times instead of 1!"
);
throw
new
Exception
(
"Test failed: ActionListener for "
+
menuItems
[
i
]
+
" called "
+
listenerCallCounter
+
" times instead of 1!"
);
}
listenerCallCounter
=
0
;
}
}
private
static
void
createAndShowGUI
()
{
JMenuItem
newItem
=
new
JMenuItem
(
"Exit"
);
newItem
.
setAccelerator
(
KeyStroke
.
getKeyStroke
(
KeyEvent
.
VK_E
,
InputEvent
.
META_MASK
));
JMenu
menu
=
new
JMenu
(
"Menu"
);
for
(
int
i
=
0
;
i
<
menuItems
.
length
;
++
i
)
{
JMenuItem
newItem
=
new
JMenuItem
(
menuItems
[
i
]);
newItem
.
setAccelerator
(
keyStrokes
[
i
]);
newItem
.
addActionListener
(
new
ActionListener
(){
public
void
actionPerformed
(
ActionEvent
e
)
{
...
...
@@ -70,8 +98,9 @@ public class ActionListenerCalledTwiceTest {
}
}
);
JMenu
menu
=
new
JMenu
(
"Menu"
);
menu
.
add
(
newItem
);
}
JMenuBar
bar
=
new
JMenuBar
();
bar
.
add
(
menu
);
JFrame
frame
=
new
JFrame
(
"Test"
);
...
...
@@ -80,4 +109,24 @@ public class ActionListenerCalledTwiceTest {
frame
.
pack
();
frame
.
setVisible
(
true
);
}
private
static
int
getModKeyCode
(
int
mod
)
{
if
((
mod
&
(
InputEvent
.
SHIFT_DOWN_MASK
|
InputEvent
.
SHIFT_MASK
))
!=
0
)
{
return
KeyEvent
.
VK_SHIFT
;
}
if
((
mod
&
(
InputEvent
.
CTRL_DOWN_MASK
|
InputEvent
.
CTRL_MASK
))
!=
0
)
{
return
KeyEvent
.
VK_CONTROL
;
}
if
((
mod
&
(
InputEvent
.
ALT_DOWN_MASK
|
InputEvent
.
ALT_MASK
))
!=
0
)
{
return
KeyEvent
.
VK_ALT
;
}
if
((
mod
&
(
InputEvent
.
META_DOWN_MASK
|
InputEvent
.
META_MASK
))
!=
0
)
{
return
KeyEvent
.
VK_META
;
}
return
0
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录