Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
cf59ffe6
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看板
提交
cf59ffe6
编写于
8月 10, 2009
作者:
A
asaha
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
d3726449
085a8650
变更
119
展开全部
显示空白变更内容
内联
并排
Showing
119 changed file
with
1543 addition
and
1272 deletion
+1543
-1272
.hgtags
.hgtags
+1
-0
make/com/sun/crypto/provider/Makefile
make/com/sun/crypto/provider/Makefile
+34
-86
make/java/java/FILES_java.gmk
make/java/java/FILES_java.gmk
+1
-0
make/javax/crypto/Defs-jce.gmk
make/javax/crypto/Defs-jce.gmk
+2
-17
make/javax/crypto/Makefile
make/javax/crypto/Makefile
+51
-106
make/sun/net/FILES_java.gmk
make/sun/net/FILES_java.gmk
+1
-0
make/sun/security/mscapi/Makefile
make/sun/security/mscapi/Makefile
+16
-16
make/sun/security/pkcs11/Makefile
make/sun/security/pkcs11/Makefile
+16
-16
src/share/classes/com/sun/crypto/provider/AESCipher.java
src/share/classes/com/sun/crypto/provider/AESCipher.java
+1
-5
src/share/classes/com/sun/crypto/provider/AESKeyGenerator.java
...hare/classes/com/sun/crypto/provider/AESKeyGenerator.java
+2
-9
src/share/classes/com/sun/crypto/provider/AESWrapCipher.java
src/share/classes/com/sun/crypto/provider/AESWrapCipher.java
+1
-5
src/share/classes/com/sun/crypto/provider/ARCFOURCipher.java
src/share/classes/com/sun/crypto/provider/ARCFOURCipher.java
+1
-2
src/share/classes/com/sun/crypto/provider/BlowfishCipher.java
...share/classes/com/sun/crypto/provider/BlowfishCipher.java
+1
-5
src/share/classes/com/sun/crypto/provider/BlowfishKeyGenerator.java
...classes/com/sun/crypto/provider/BlowfishKeyGenerator.java
+2
-9
src/share/classes/com/sun/crypto/provider/DESCipher.java
src/share/classes/com/sun/crypto/provider/DESCipher.java
+1
-5
src/share/classes/com/sun/crypto/provider/DESKeyFactory.java
src/share/classes/com/sun/crypto/provider/DESKeyFactory.java
+3
-9
src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java
...hare/classes/com/sun/crypto/provider/DESKeyGenerator.java
+2
-9
src/share/classes/com/sun/crypto/provider/DESedeCipher.java
src/share/classes/com/sun/crypto/provider/DESedeCipher.java
+1
-5
src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java
...are/classes/com/sun/crypto/provider/DESedeKeyFactory.java
+2
-9
src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java
...e/classes/com/sun/crypto/provider/DESedeKeyGenerator.java
+2
-9
src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java
...are/classes/com/sun/crypto/provider/DESedeWrapCipher.java
+1
-5
src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java
...share/classes/com/sun/crypto/provider/DHKeyAgreement.java
+2
-9
src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
+2
-9
src/share/classes/com/sun/crypto/provider/HmacCore.java
src/share/classes/com/sun/crypto/provider/HmacCore.java
+1
-4
src/share/classes/com/sun/crypto/provider/HmacMD5.java
src/share/classes/com/sun/crypto/provider/HmacMD5.java
+1
-9
src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java
.../classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java
+2
-9
src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java
...re/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java
+1
-6
src/share/classes/com/sun/crypto/provider/HmacSHA1.java
src/share/classes/com/sun/crypto/provider/HmacSHA1.java
+1
-9
src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java
...classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java
+2
-9
src/share/classes/com/sun/crypto/provider/JarVerifier.java
src/share/classes/com/sun/crypto/provider/JarVerifier.java
+0
-72
src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java
...are/classes/com/sun/crypto/provider/KeyGeneratorCore.java
+1
-6
src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
+2
-9
src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java
...asses/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java
+1
-8
src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java
...com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java
+1
-10
src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java
...lasses/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java
+2
-9
src/share/classes/com/sun/crypto/provider/PKCS12PBECipherCore.java
.../classes/com/sun/crypto/provider/PKCS12PBECipherCore.java
+1
-3
src/share/classes/com/sun/crypto/provider/RC2Cipher.java
src/share/classes/com/sun/crypto/provider/RC2Cipher.java
+1
-2
src/share/classes/com/sun/crypto/provider/RSACipher.java
src/share/classes/com/sun/crypto/provider/RSACipher.java
+1
-2
src/share/classes/com/sun/crypto/provider/SslMacCore.java
src/share/classes/com/sun/crypto/provider/SslMacCore.java
+1
-7
src/share/classes/com/sun/crypto/provider/SunJCE.java
src/share/classes/com/sun/crypto/provider/SunJCE.java
+1
-22
src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java
...sses/com/sun/crypto/provider/TlsKeyMaterialGenerator.java
+1
-2
src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java
...ses/com/sun/crypto/provider/TlsMasterSecretGenerator.java
+1
-2
src/share/classes/com/sun/crypto/provider/TlsPrfGenerator.java
...hare/classes/com/sun/crypto/provider/TlsPrfGenerator.java
+1
-2
src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java
...m/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java
+1
-2
src/share/classes/javax/crypto/JarVerifier.java
src/share/classes/javax/crypto/JarVerifier.java
+1
-14
src/share/classes/javax/crypto/JceSecurity.java
src/share/classes/javax/crypto/JceSecurity.java
+1
-7
src/share/classes/javax/swing/JFileChooser.java
src/share/classes/javax/swing/JFileChooser.java
+6
-1
src/share/classes/javax/swing/JInternalFrame.java
src/share/classes/javax/swing/JInternalFrame.java
+15
-16
src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java
...re/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java
+1
-14
src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java
...e/classes/javax/swing/plaf/basic/BasicDirectoryModel.java
+7
-3
src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java
.../classes/javax/swing/plaf/basic/BasicInternalFrameUI.java
+27
-15
src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java
...are/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java
+7
-12
src/share/classes/javax/swing/plaf/basic/DesktopIconMover.java
...hare/classes/javax/swing/plaf/basic/DesktopIconMover.java
+0
-168
src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
...lasses/javax/swing/plaf/nimbus/AbstractRegionPainter.java
+34
-16
src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java
src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java
+2
-0
src/share/classes/javax/swing/text/GlyphView.java
src/share/classes/javax/swing/text/GlyphView.java
+3
-2
src/share/classes/javax/swing/text/ParagraphView.java
src/share/classes/javax/swing/text/ParagraphView.java
+0
-17
src/share/classes/sun/awt/shell/ShellFolder.java
src/share/classes/sun/awt/shell/ShellFolder.java
+52
-8
src/share/classes/sun/awt/shell/ShellFolderManager.java
src/share/classes/sun/awt/shell/ShellFolderManager.java
+3
-7
src/share/classes/sun/dyn/FilterGeneric.java
src/share/classes/sun/dyn/FilterGeneric.java
+1
-1
src/share/classes/sun/misc/URLClassPath.java
src/share/classes/sun/misc/URLClassPath.java
+16
-12
src/share/classes/sun/net/util/URLUtil.java
src/share/classes/sun/net/util/URLUtil.java
+80
-0
src/share/classes/sun/security/pkcs11/JarVerifier.java
src/share/classes/sun/security/pkcs11/JarVerifier.java
+0
-72
src/share/classes/sun/security/pkcs11/SunPKCS11.java
src/share/classes/sun/security/pkcs11/SunPKCS11.java
+1
-25
src/share/classes/sun/swing/FilePane.java
src/share/classes/sun/swing/FilePane.java
+3
-4
src/share/classes/sun/swing/MenuItemLayoutHelper.java
src/share/classes/sun/swing/MenuItemLayoutHelper.java
+2
-2
src/solaris/classes/sun/awt/X11/XRobotPeer.java
src/solaris/classes/sun/awt/X11/XRobotPeer.java
+4
-2
src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java
...aris/classes/sun/net/www/protocol/jar/JarFileFactory.java
+14
-12
src/solaris/native/sun/awt/awt_Robot.c
src/solaris/native/sun/awt/awt_Robot.c
+9
-12
src/windows/classes/sun/awt/shell/Win32ShellFolder2.java
src/windows/classes/sun/awt/shell/Win32ShellFolder2.java
+151
-145
src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java
...ndows/classes/sun/awt/shell/Win32ShellFolderManager2.java
+59
-34
src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java
...dows/classes/sun/net/www/protocol/jar/JarFileFactory.java
+14
-12
src/windows/classes/sun/security/mscapi/RSACipher.java
src/windows/classes/sun/security/mscapi/RSACipher.java
+1
-2
src/windows/classes/sun/security/mscapi/SunMSCAPI.java
src/windows/classes/sun/security/mscapi/SunMSCAPI.java
+1
-19
src/windows/native/sun/windows/awt_Component.cpp
src/windows/native/sun/windows/awt_Component.cpp
+4
-3
test/java/awt/EventQueue/6638195/bug6638195.java
test/java/awt/EventQueue/6638195/bug6638195.java
+15
-3
test/java/awt/Frame/FrameSize/TestFrameSize.java
test/java/awt/Frame/FrameSize/TestFrameSize.java
+53
-25
test/java/net/Authenticator/B4933582.sh
test/java/net/Authenticator/B4933582.sh
+7
-3
test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh
...ramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh
+4
-0
test/java/net/Socket/OldSocketImpl.sh
test/java/net/Socket/OldSocketImpl.sh
+4
-0
test/java/net/URL/B5086147.sh
test/java/net/URL/B5086147.sh
+4
-0
test/java/net/URL/runconstructor.sh
test/java/net/URL/runconstructor.sh
+4
-0
test/java/net/URLClassLoader/B5077773.sh
test/java/net/URLClassLoader/B5077773.sh
+4
-0
test/java/net/URLClassLoader/sealing/checksealed.sh
test/java/net/URLClassLoader/sealing/checksealed.sh
+8
-4
test/java/net/URLConnection/6212146/test.sh
test/java/net/URLConnection/6212146/test.sh
+4
-0
test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh
...urity/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh
+5
-1
test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh
test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh
+5
-1
test/java/security/Security/signedfirst/Dyn.sh
test/java/security/Security/signedfirst/Dyn.sh
+5
-1
test/java/security/Security/signedfirst/Static.sh
test/java/security/Security/signedfirst/Static.sh
+6
-2
test/javax/crypto/SecretKeyFactory/FailOverTest.sh
test/javax/crypto/SecretKeyFactory/FailOverTest.sh
+7
-2
test/javax/security/auth/Subject/doAs/Test.sh
test/javax/security/auth/Subject/doAs/Test.sh
+5
-0
test/javax/swing/JInternalFrame/Test6505027.java
test/javax/swing/JInternalFrame/Test6505027.java
+136
-0
test/javax/swing/JInternalFrame/Test6802868.java
test/javax/swing/JInternalFrame/Test6802868.java
+108
-0
test/javax/swing/JScrollPane/Test6526631.java
test/javax/swing/JScrollPane/Test6526631.java
+102
-0
test/javax/swing/SwingTest.java
test/javax/swing/SwingTest.java
+160
-0
test/lib/security/java.policy/Ext_AllPolicy.sh
test/lib/security/java.policy/Ext_AllPolicy.sh
+6
-0
test/sun/net/www/MarkResetTest.sh
test/sun/net/www/MarkResetTest.sh
+4
-0
test/sun/net/www/http/ChunkedInputStream/ChunkedCharEncoding.sh
...un/net/www/http/ChunkedInputStream/ChunkedCharEncoding.sh
+4
-0
test/sun/net/www/http/HttpClient/RetryPost.sh
test/sun/net/www/http/HttpClient/RetryPost.sh
+4
-0
test/sun/net/www/protocol/jar/B5105410.sh
test/sun/net/www/protocol/jar/B5105410.sh
+4
-0
test/sun/net/www/protocol/jar/jarbug/run.sh
test/sun/net/www/protocol/jar/jarbug/run.sh
+40
-9
test/sun/security/pkcs11/Provider/ConfigQuotedString.sh
test/sun/security/pkcs11/Provider/ConfigQuotedString.sh
+14
-0
test/sun/security/pkcs11/Provider/Login.sh
test/sun/security/pkcs11/Provider/Login.sh
+14
-0
test/sun/security/provider/PolicyFile/getinstance/getinstance.sh
...n/security/provider/PolicyFile/getinstance/getinstance.sh
+4
-0
test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh
...net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh
+16
-7
test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh
...et/www/protocol/https/HttpsURLConnection/PostThruProxy.sh
+6
-1
test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh
...rotocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh
+7
-1
test/sun/security/tools/jarsigner/AlgOptions.sh
test/sun/security/tools/jarsigner/AlgOptions.sh
+7
-0
test/sun/security/tools/jarsigner/PercentSign.sh
test/sun/security/tools/jarsigner/PercentSign.sh
+7
-0
test/sun/security/tools/jarsigner/oldsig.sh
test/sun/security/tools/jarsigner/oldsig.sh
+7
-0
test/sun/security/tools/keytool/AltProviderPath.sh
test/sun/security/tools/keytool/AltProviderPath.sh
+26
-5
test/sun/security/tools/keytool/CloneKeyAskPassword.sh
test/sun/security/tools/keytool/CloneKeyAskPassword.sh
+4
-0
test/sun/security/tools/keytool/NoExtNPE.sh
test/sun/security/tools/keytool/NoExtNPE.sh
+3
-0
test/sun/security/tools/keytool/SecretKeyKS.sh
test/sun/security/tools/keytool/SecretKeyKS.sh
+6
-0
test/sun/security/tools/keytool/StandardAlgName.sh
test/sun/security/tools/keytool/StandardAlgName.sh
+6
-0
test/sun/security/tools/keytool/i18n.sh
test/sun/security/tools/keytool/i18n.sh
+6
-0
test/sun/security/tools/keytool/printssl.sh
test/sun/security/tools/keytool/printssl.sh
+3
-0
test/sun/security/tools/keytool/resource.sh
test/sun/security/tools/keytool/resource.sh
+5
-0
test/sun/security/tools/keytool/standard.sh
test/sun/security/tools/keytool/standard.sh
+5
-1
未找到文件。
.hgtags
浏览文件 @
cf59ffe6
...
...
@@ -42,3 +42,4 @@ a50217eb3ee10b9f9547e0708e5c9625405083ef jdk7-b64
382a27aa78d3236fa123c60577797a887fe93e09 jdk7-b65
bd31b30a5b21f20e42965b1633f18a5c7946d398 jdk7-b66
a952aafd5181af953b0ef3010dbd2fcc28460e8a jdk7-b67
b23d905cb5d3b382295240d28ab0bfb266b4503c jdk7-b68
make/com/sun/crypto/provider/Makefile
浏览文件 @
cf59ffe6
#
# Copyright 2007-200
8
Sun Microsystems, Inc. All Rights Reserved.
# Copyright 2007-200
9
Sun Microsystems, Inc. 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
...
...
@@ -45,21 +45,18 @@
# For OpenJDK, the jar files built here are installed directly into the
# OpenJDK.
#
# For JDK, the binaries use pre-built/pre-signed/pre-obfuscated binary
# files stored in the closed workspace that are not shipped in the
# OpenJDK workspaces. We still build the JDK files here to verify the
# files compile, and in preparation for possible signing and
# obfuscation. Developers working on JCE in JDK must sign the JCE files
# before testing: obfuscation is optional during development. The JCE
# signing key is kept separate from the JDK workspace to prevent its
# disclosure. The obfuscation tool has not been licensed for general
# usage.
# For JDK, the binaries use pre-built/pre-signed binary files stored in
# the closed workspace that are not shipped in the OpenJDK workspaces.
# We still build the JDK files here to verify the files compile, and in
# preparation for possible signing. Developers working on JCE in JDK
# must sign the JCE files before testing. The JCE signing key is kept
# separate from the JDK workspace to prevent its disclosure.
#
# SPECIAL NOTE TO JCE/JDK developers: The source files must eventually
# be built
, obfuscated, signed, and then the resulting jar files MUST BE
#
CHECKED INTO THE CLOSED PART OF THE WORKSPACE*. This separate step
#
*MUST NOT BE FORGOTTEN*, otherwise a bug fixed in the source code will
#
not be
reflected in the shipped binaries. The "release" target should be
# be built
and signed, and the resulting jar files MUST BE CHECKED INTO
#
THE CLOSED PART OF THE WORKSPACE*. This separate step *MUST NOT BE
#
FORGOTTEN*, otherwise a bug fixed in the source code will not be
# reflected in the shipped binaries. The "release" target should be
# used to generate the required files.
#
# There are a number of targets to help both JDK/OpenJDK developers.
...
...
@@ -87,8 +84,6 @@
# sign Alias for sign-jar
# sign-jar Builds/signs sunjce_provider.jar (no install)
#
# obfus Builds/obfuscates/signs sunjce_provider.jar
#
# release Builds all targets in preparation
# for workspace integration.
#
...
...
@@ -103,7 +98,7 @@ PRODUCT = sun
#
# The following is for when we need to do postprocessing
# (signing
/obfuscation
) against a read-only build. If the OUTPUTDIR
# (signing) against a read-only build. If the OUTPUTDIR
# isn't writable, the build currently crashes out.
#
ifndef
OPENJDK
...
...
@@ -158,8 +153,8 @@ endif # OPENJDK
#
# We use a variety of subdirectories in the $(TEMPDIR) depending on what
# part of the build we're doing. Both OPENJDK/JDK builds are initially
# done in the unsigned area. When files are signed
or obfuscated in JDK,
#
they will be
placed in the appropriate areas.
# done in the unsigned area. When files are signed
in JDK, they will be
# placed in the appropriate areas.
#
UNSIGNED_DIR
=
$(TEMPDIR)
/unsigned
...
...
@@ -223,62 +218,15 @@ $(SIGNED_DIR)/sunjce_provider.jar:
endif
$(
call
sign-file,
$(UNSIGNED_DIR)
/sunjce_provider.jar
)
# =====================================================
# Obfuscate/sign/install the JDK build. Not needed for OpenJDK.
#
OBFUS_DIR
=
$(JCE_BUILD_DIR)
/obfus/sunjce
CLOSED_DIR
=
$(BUILDDIR)
/closed/com/sun/crypto/provider
obfus
:
$(OBFUS_DIR)/sunjce_provider.jar
$
(
release-warning
)
ifndef
ALT_JCE_BUILD_DIR
$(OBFUS_DIR)/sunjce_provider.jar
:
build-jar $(JCE_MANIFEST_FILE)
\
$(OBFUS_DIR)/sunjce.dox
else
$(OBFUS_DIR)/sunjce_provider.jar
:
$(JCE_MANIFEST_FILE) $(OBFUS_DIR)/sunjce.dox
@
if
[
!
-d
$(CLASSDESTDIR)
]
;
then
\
$(ECHO)
"Couldn't find
$(CLASSDESTDIR)
"
;
\
exit
1
;
\
fi
endif
@
$(ECHO)
">>>Obfuscating SunJCE Provider..."
$(presign)
$(preobfus)
$
(
prep-target
)
$(CD)
$(OBFUS_DIR)
;
\
$(OBFUSCATOR)
-fv
sunjce.dox
@
$(CD)
$(OBFUS_DIR)
;
$
(
java-vm-cleanup
)
$(BOOT_JAR_CMD)
cmf
$(JCE_MANIFEST_FILE)
$@
\
-C
$(OBFUS_DIR)
/build com
\
$(BOOT_JAR_JFLAGS)
$
(
sign-target
)
@
$
(
java-vm-cleanup
)
$(OBFUS_DIR)/sunjce.dox
:
$(CLOSED_DIR)/obfus/sunjce.dox
@
$(ECHO)
">>>Creating sunjce.dox"
$
(
prep-target
)
$(SED)
"s:@@TEMPDIR@@:
$(ABS_TEMPDIR)
:"
$<
>
$@
#
# The current obfuscator has a limitation in that it currently only
# supports up to v49 class file format. Force v49 classfiles in our
# builds for now.
#
SOURCE_LANGUAGE_VERSION
=
5
TARGET_CLASS_VERSION
=
5
# =====================================================
# Create the Release Engineering files.
Obfuscat
ed builds, etc.
# Create the Release Engineering files.
Sign
ed builds, etc.
#
release
:
$(
OBFUS
_DIR)/sunjce_provider.jar
release
:
$(
SIGNED
_DIR)/sunjce_provider.jar
$(RM)
$(JCE_BUILD_DIR)
/release/sunjce_provider.jar
$(MKDIR)
-p
$(JCE_BUILD_DIR)
/release
$(CP)
$(
OBFUS
_DIR)
/sunjce_provider.jar
$(JCE_BUILD_DIR)
/release
$(CP)
$(
SIGNED
_DIR)
/sunjce_provider.jar
$(JCE_BUILD_DIR)
/release
$
(
release-warning
)
endif
# OPENJDK
...
...
@@ -320,5 +268,5 @@ clobber clean::
.PHONY
:
build-jar jar install-jar
ifndef
OPENJDK
.PHONY
:
sign sign-jar
obfus
release install-prebuilt
.PHONY
:
sign sign-jar release install-prebuilt
endif
make/java/java/FILES_java.gmk
浏览文件 @
cf59ffe6
...
...
@@ -77,6 +77,7 @@ JAVA_JAVA_java = \
java/lang/Compiler.java \
java/lang/Throwable.java \
java/lang/Exception.java \
java/lang/ReflectiveOperationException.java \
java/lang/IllegalAccessException.java \
java/lang/InstantiationException.java \
java/lang/ClassNotFoundException.java \
...
...
make/javax/crypto/Defs-jce.gmk
浏览文件 @
cf59ffe6
#
# Copyright 2007-200
8
Sun Microsystems, Inc. All Rights Reserved.
# Copyright 2007-200
9
Sun Microsystems, Inc. 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
...
...
@@ -61,7 +61,7 @@ SIGNING_PASSPHRASE = $(SIGNING_KEY_DIR)/passphrase.txt
SIGNING_ALIAS = jce_rsa
#
# Defines for signing
/obfuscating
the various jar files.
# Defines for signing the various jar files.
#
define presign
...
...
@@ -100,19 +100,4 @@ define sign-file
$(sign-target)
endef
#
# Location for the Obfuscation product. JDK currently has
# the requirement that we obfuscate our JCE jars.
#
OBFUSCATOR = /security/tools/bin/obfus
OBFUS_DIR = $(TEMPDIR)/obfus
define preobfus
@if [ ! -f $(OBFUSCATOR) ]; then \
$(ECHO) "\n$(OBFUSCATOR): Obfuscator *NOT* available..." \
$(README-MAKEFILE_WARNING); \
exit 2; \
fi
endef
endif # !OPENJDK
make/javax/crypto/Makefile
浏览文件 @
cf59ffe6
#
# Copyright 2007-200
8
Sun Microsystems, Inc. All Rights Reserved.
# Copyright 2007-200
9
Sun Microsystems, Inc. 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
...
...
@@ -44,32 +44,35 @@
# For OpenJDK, the jar files built here are installed directly into the
# OpenJDK.
#
# For JDK, the binaries use pre-built/pre-signed/pre-obfuscated binary
# files stored in the closed workspace that are not shipped in the
# OpenJDK workspaces. We still build the JDK files here to verify the
# files compile, and in preparation for possible signing and
# obfuscation. Developers working on JCE in JDK must sign the JCE files
# before testing: obfuscation is optional during development. The JCE
# signing key is kept separate from the JDK workspace to prevent its
# disclosure. The obfuscation tool has not been licensed for general
# usage.
# For JDK, the binaries use pre-built/pre-signed binary files stored in
# the closed workspace that are not shipped in the OpenJDK workspaces.
# We still build the JDK files here to verify the files compile, and in
# preparation for possible signing. Developers working on JCE in JDK
# must sign the JCE files before testing. The JCE signing key is kept
# separate from the JDK workspace to prevent its disclosure.
#
# SPECIAL NOTE TO JCE/JDK developers: The source files must eventually
# be built
, obfuscated, signed, and the resulting jar files *MUST BE
#
CHECKED INTO THE CLOSED PART OF THE WORKSPACE*. This separate step
#
*MUST NOT BE FORGOTTEN*, otherwise a bug fixed in the source code will
#
not be reflected in the shipped binaries. The "release" target should
#
be
used to generate the required files.
# be built
and signed, and the resulting jar files *MUST BE CHECKED INTO
#
THE CLOSED PART OF THE WORKSPACE*. This separate step *MUST NOT BE
#
FORGOTTEN*, otherwise a bug fixed in the source code will not be
#
reflected in the shipped binaries. The "release" target should be
# used to generate the required files.
#
# There are a number of targets to help both JDK/OpenJDK developers.
#
# Main Targets (JDK/OPENJDK):
#
# all/clobber/clean The usual.
# If OpenJDK, installs
# jce.jar/limited policy files.
# If JDK, installs prebuilt
# If OpenJDK: builds/installs the
# jce.jar/limited policy files.
# If JDK: builds but does not install.
# During full tops-down builds,
# prebuilt/presigned jce.jar &
# limited policy files are copied
# in by make/java/redist/Makefile.
# If you are working in this directory
# and want to install the prebuilts,
# use the "install-prebuilt" target.
#
# jar Builds/installs jce.jar
# If OpenJDK, does not sign
...
...
@@ -96,8 +99,6 @@
# sign-jar Builds/signs jce.jar file (no install)
# sign-policy Builds/signs policy files (no install)
#
# obfus Builds/obfuscates/signs jce.jar
#
# release Builds all targets in preparation
# for workspace integration.
#
...
...
@@ -112,7 +113,7 @@ PRODUCT = sun
#
# The following is for when we need to do postprocessing
# (signing
/obfuscation
) against a read-only build. If the OUTPUTDIR
# (signing) against a read-only build. If the OUTPUTDIR
# isn't writable, the build currently crashes out.
#
ifndef
OPENJDK
...
...
@@ -169,8 +170,8 @@ endif # OPENJDK
#
# We use a variety of subdirectories in the $(TEMPDIR) depending on what
# part of the build we're doing. Both OPENJDK/JDK builds are initially
# done in the unsigned area. When files are signed
or obfuscated in JDK,
#
they will be
placed in the appropriate areas.
# done in the unsigned area. When files are signed
in JDK, they will be
# placed in the appropriate areas.
#
UNSIGNED_DIR
=
$(TEMPDIR)
/unsigned
...
...
@@ -178,7 +179,7 @@ include Defs-jce.gmk
# =====================================================
# Build the unsigned jce.jar file. Signing
/obfuscation
comes later.
# Build the unsigned jce.jar file. Signing comes later.
#
JAR_DESTFILE
=
$(LIBDIR)
/jce.jar
...
...
@@ -363,69 +364,13 @@ $(SIGNED_POLICY_BUILDDIR)/limited/local_policy.jar: \
# =====================================================
# Obfuscate/sign/install the JDK build. Not needed for OpenJDK.
# Create the Release Engineering files. Signed builds,
# unlimited policy file distribution, etc.
#
OBFUS_DIR
=
$(JCE_BUILD_DIR)
/obfus/jce
CLOSED_DIR
=
$(BUILDDIR)
/closed/javax/crypto
obfus
:
$(OBFUS_DIR)/jce.jar
$
(
release-warning
)
ifndef
ALT_JCE_BUILD_DIR
$(OBFUS_DIR)/jce.jar
:
build-jar $(JCE_MANIFEST_FILE) $(OBFUS_DIR)/framework.dox
else
#
# We have to remove the build dependency, otherwise, we'll try to rebuild it
# which we can't do on a read-only filesystem.
#
$(OBFUS_DIR)/jce.jar
:
$(JCE_MANIFEST_FILE) $(OBFUS_DIR)/framework.dox
@
if
[
!
-d
$(CLASSDESTDIR)
]
;
then
\
$(ECHO)
"Couldn't find
$(CLASSDESTDIR)
"
;
\
exit
1
;
\
fi
endif
@
$(ECHO)
">>>Obfuscating JCE framework..."
$(presign)
$(preobfus)
$
(
prep-target
)
$(CD)
$(OBFUS_DIR)
;
\
$(OBFUSCATOR)
-fv
framework.dox
@
$(CD)
$(OBFUS_DIR)
;
$
(
java-vm-cleanup
)
@
#
@
# The sun.security.internal classes are currently not obfuscated
@
# due to an obfus problem. Manually copy them to the build directory
@
# so that they are included in the jce.jar file.
@
#
$(CP)
-r
$(CLASSDESTDIR)
/sun
$(OBFUS_DIR)
/build
$(BOOT_JAR_CMD)
cmf
$(JCE_MANIFEST_FILE)
$@
\
-C
$(OBFUS_DIR)
/build javax
\
-C
$(OBFUS_DIR)
/build sun
\
$(BOOT_JAR_JFLAGS)
$
(
sign-target
)
@
$
(
java-vm-cleanup
)
$(OBFUS_DIR)/framework.dox
:
$(CLOSED_DIR)/obfus/framework.dox
@
$(ECHO)
">>>Creating framework.dox"
$
(
prep-target
)
$(SED)
"s:@@TEMPDIR@@:
$(ABS_TEMPDIR)
:"
$<
>
$@
#
# The current obfuscator has a limitation in that it currently only
# supports up to v49 class file format. Force v49 classfiles in our
# builds for now.
#
SOURCE_LANGUAGE_VERSION
=
5
TARGET_CLASS_VERSION
=
5
# =====================================================
# Create the Release Engineering files. Obfuscated builds,
# unlimited policy file distribution, etc.
#
release
:
$(OBFUS_DIR)/jce.jar sign-policy $(CLOSED_DIR)/doc/COPYRIGHT.html
\
release
:
$(SIGNED_DIR)/jce.jar sign-policy $(CLOSED_DIR)/doc/COPYRIGHT.html
\
$(CLOSED_DIR)/doc/README.txt
$(RM)
-r
\
$(JCE_BUILD_DIR)
/release/UnlimitedJCEPolicy
\
...
...
@@ -434,7 +379,7 @@ release: $(OBFUS_DIR)/jce.jar sign-policy $(CLOSED_DIR)/doc/COPYRIGHT.html \
$(JCE_BUILD_DIR)
/release/local_policy.jar
\
$(JCE_BUILD_DIR)
/release/UnlimitedJCEPolicy.zip
$(MKDIR)
-p
$(JCE_BUILD_DIR)
/release/UnlimitedJCEPolicy
$(CP)
$(
OBFUS
_DIR)
/jce.jar
$(JCE_BUILD_DIR)
/release
$(CP)
$(
SIGNED
_DIR)
/jce.jar
$(JCE_BUILD_DIR)
/release
$(CP)
\
$(SIGNED_POLICY_BUILDDIR)
/limited/US_export_policy.jar
\
$(SIGNED_POLICY_BUILDDIR)
/limited/local_policy.jar
\
...
...
@@ -530,5 +475,5 @@ clobber clean::
.PHONY
:
build-jar jar build-policy unlimited limited install-jar
\
install-limited install-unlimited
ifndef
OPENJDK
.PHONY
:
sign sign-jar sign-policy
obfus
release install-prebuilt
.PHONY
:
sign sign-jar sign-policy release install-prebuilt
endif
make/sun/net/FILES_java.gmk
浏览文件 @
cf59ffe6
...
...
@@ -41,6 +41,7 @@ FILES_java = \
sun/net/NetProperties.java \
sun/net/NetHooks.java \
sun/net/util/IPAddressUtil.java \
sun/net/util/URLUtil.java \
sun/net/dns/ResolverConfiguration.java \
sun/net/dns/ResolverConfigurationImpl.java \
sun/net/ftp/FtpClient.java \
...
...
make/sun/security/mscapi/Makefile
浏览文件 @
cf59ffe6
#
# Copyright 2005-200
8
Sun Microsystems, Inc. All Rights Reserved.
# Copyright 2005-200
9
Sun Microsystems, Inc. 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
...
...
make/sun/security/pkcs11/Makefile
浏览文件 @
cf59ffe6
#
# Copyright 2003-200
8
Sun Microsystems, Inc. All Rights Reserved.
# Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
src/share/classes/com/sun/crypto/provider/AESCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 2002-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2002-200
9
Sun Microsystems, Inc. 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
...
...
@@ -56,12 +56,8 @@ public final class AESCipher extends CipherSpi {
/**
* Creates an instance of AES cipher with default ECB mode and
* PKCS5Padding.
*
* @exception SecurityException if this constructor fails to verify
* its own integrity
*/
public
AESCipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
CipherCore
(
new
AESCrypt
(),
AESConstants
.
AES_BLOCK_SIZE
);
}
...
...
src/share/classes/com/sun/crypto/provider/AESKeyGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 2002-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2002-200
9
Sun Microsystems, Inc. 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
...
...
@@ -48,16 +48,9 @@ public final class AESKeyGenerator extends KeyGeneratorSpi {
private
int
keySize
=
16
;
// default keysize (in number of bytes)
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor.
*/
public
AESKeyGenerator
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/AESWrapCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 2004-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2004-200
9
Sun Microsystems, Inc. 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
...
...
@@ -65,12 +65,8 @@ public final class AESWrapCipher extends CipherSpi {
/**
* Creates an instance of AES KeyWrap cipher with default
* mode, i.e. "ECB" and padding scheme, i.e. "NoPadding".
*
* @exception SecurityException if this constructor fails to verify
* its own integrity
*/
public
AESWrapCipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
cipher
=
new
AESCrypt
();
}
...
...
src/share/classes/com/sun/crypto/provider/ARCFOURCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -62,7 +62,6 @@ public final class ARCFOURCipher extends CipherSpi {
// called by the JCE framework
public
ARCFOURCipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
S
=
new
int
[
256
];
}
...
...
src/share/classes/com/sun/crypto/provider/BlowfishCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 1998-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1998-200
9
Sun Microsystems, Inc. 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
...
...
@@ -60,12 +60,8 @@ public final class BlowfishCipher extends CipherSpi {
/**
* Creates an instance of Blowfish cipher with default ECB mode and
* PKCS5Padding.
*
* @exception SecurityException if this constructor fails to verify
* its own integrity
*/
public
BlowfishCipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
CipherCore
(
new
BlowfishCrypt
(),
BlowfishConstants
.
BLOWFISH_BLOCK_SIZE
);
}
...
...
src/share/classes/com/sun/crypto/provider/BlowfishKeyGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 1998-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1998-200
9
Sun Microsystems, Inc. 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
...
...
@@ -46,16 +46,9 @@ public final class BlowfishKeyGenerator extends KeyGeneratorSpi {
private
int
keysize
=
16
;
// default keysize (in number of bytes)
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
BlowfishKeyGenerator
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/DESCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -56,12 +56,8 @@ public final class DESCipher extends CipherSpi {
/**
* Creates an instance of DES cipher with default ECB mode and
* PKCS5Padding.
*
* @exception SecurityException if this constructor fails to verify
* its own integrity
*/
public
DESCipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
CipherCore
(
new
DESCrypt
(),
DESConstants
.
DES_BLOCK_SIZE
);
}
...
...
src/share/classes/com/sun/crypto/provider/DESKeyFactory.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -42,17 +42,11 @@ import java.security.spec.InvalidKeySpecException;
public
final
class
DESKeyFactory
extends
SecretKeyFactorySpi
{
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
DESKeyFactory
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
/**
* Generates a <code>SecretKey</code> object from the provided key
* specification (key material).
...
...
src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -46,16 +46,9 @@ public final class DESKeyGenerator extends KeyGeneratorSpi {
private
SecureRandom
random
=
null
;
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
DESKeyGenerator
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/DESedeCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -53,12 +53,8 @@ public final class DESedeCipher extends CipherSpi {
/**
* Creates an instance of DESede cipher with default ECB mode and
* PKCS5Padding.
*
* @exception SecurityException if this constructor fails to verify
* its own integrity
*/
public
DESedeCipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
CipherCore
(
new
DESedeCrypt
(),
DESConstants
.
DES_BLOCK_SIZE
);
}
...
...
src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -42,16 +42,9 @@ import java.security.spec.InvalidKeySpecException;
public
final
class
DESedeKeyFactory
extends
SecretKeyFactorySpi
{
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
DESedeKeyFactory
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have been "
+
"tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -47,16 +47,9 @@ public final class DESedeKeyGenerator extends KeyGeneratorSpi {
private
int
keysize
=
168
;
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
DESedeKeyGenerator
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have been "
+
"tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 2004-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2004-200
9
Sun Microsystems, Inc. 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
...
...
@@ -74,12 +74,8 @@ public final class DESedeWrapCipher extends CipherSpi {
/**
* Creates an instance of CMS DESede KeyWrap cipher with default
* mode, i.e. "CBC" and padding scheme, i.e. "NoPadding".
*
* @exception SecurityException if this constructor fails to verify
* its own integrity.
*/
public
DESedeWrapCipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
cipher
=
new
CipherBlockChaining
(
new
DESedeCrypt
());
}
...
...
src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -58,16 +58,9 @@ extends KeyAgreementSpi {
private
BigInteger
y
=
BigInteger
.
ZERO
;
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
DHKeyAgreement
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have been "
+
"tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -49,16 +49,9 @@ import javax.crypto.spec.DHParameterSpec;
public
final
class
DHKeyFactory
extends
KeyFactorySpi
{
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
DHKeyFactory
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/HmacCore.java
浏览文件 @
cf59ffe6
/*
* Copyright 2002-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2002-200
9
Sun Microsystems, Inc. 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
...
...
@@ -241,7 +241,6 @@ final class HmacCore implements Cloneable {
public
static
final
class
HmacSHA256
extends
MacSpi
implements
Cloneable
{
private
final
HmacCore
core
;
public
HmacSHA256
()
throws
NoSuchAlgorithmException
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
HmacCore
(
"SHA-256"
,
64
);
}
private
HmacSHA256
(
HmacSHA256
base
)
throws
CloneNotSupportedException
{
...
...
@@ -278,7 +277,6 @@ final class HmacCore implements Cloneable {
public
static
final
class
HmacSHA384
extends
MacSpi
implements
Cloneable
{
private
final
HmacCore
core
;
public
HmacSHA384
()
throws
NoSuchAlgorithmException
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
HmacCore
(
"SHA-384"
,
128
);
}
private
HmacSHA384
(
HmacSHA384
base
)
throws
CloneNotSupportedException
{
...
...
@@ -315,7 +313,6 @@ final class HmacCore implements Cloneable {
public
static
final
class
HmacSHA512
extends
MacSpi
implements
Cloneable
{
private
final
HmacCore
core
;
public
HmacSHA512
()
throws
NoSuchAlgorithmException
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
HmacCore
(
"SHA-512"
,
128
);
}
private
HmacSHA512
(
HmacSHA512
base
)
throws
CloneNotSupportedException
{
...
...
src/share/classes/com/sun/crypto/provider/HmacMD5.java
浏览文件 @
cf59ffe6
/*
* Copyright 1998-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1998-200
9
Sun Microsystems, Inc. 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
...
...
@@ -44,16 +44,8 @@ public final class HmacMD5 extends MacSpi implements Cloneable {
/**
* Standard constructor, creates a new HmacMD5 instance.
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
*/
public
HmacMD5
()
throws
NoSuchAlgorithmException
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
hmac
=
new
HmacCore
(
MessageDigest
.
getInstance
(
"MD5"
),
MD5_BLOCK_LENGTH
);
}
...
...
src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 1999-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1999-200
9
Sun Microsystems, Inc. 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
...
...
@@ -46,16 +46,9 @@ public final class HmacMD5KeyGenerator extends KeyGeneratorSpi {
private
int
keysize
=
64
;
// default keysize (in number of bytes)
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
HmacMD5KeyGenerator
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -48,13 +48,8 @@ public final class HmacPKCS12PBESHA1 extends MacSpi implements Cloneable {
/**
* Standard constructor, creates a new HmacSHA1 instance.
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
*/
public
HmacPKCS12PBESHA1
()
throws
NoSuchAlgorithmException
{
SunJCE
.
ensureIntegrity
(
this
.
getClass
());
this
.
hmac
=
new
HmacCore
(
MessageDigest
.
getInstance
(
"SHA1"
),
SHA1_BLOCK_LENGTH
);
}
...
...
src/share/classes/com/sun/crypto/provider/HmacSHA1.java
浏览文件 @
cf59ffe6
/*
* Copyright 1998-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1998-200
9
Sun Microsystems, Inc. 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
...
...
@@ -44,16 +44,8 @@ public final class HmacSHA1 extends MacSpi implements Cloneable {
/**
* Standard constructor, creates a new HmacSHA1 instance.
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
*/
public
HmacSHA1
()
throws
NoSuchAlgorithmException
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
this
.
hmac
=
new
HmacCore
(
MessageDigest
.
getInstance
(
"SHA1"
),
SHA1_BLOCK_LENGTH
);
}
...
...
src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 1999-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1999-200
9
Sun Microsystems, Inc. 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
...
...
@@ -46,16 +46,9 @@ public final class HmacSHA1KeyGenerator extends KeyGeneratorSpi {
private
int
keysize
=
64
;
// default keysize (in number of bytes)
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
HmacSHA1KeyGenerator
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/JarVerifier.java
已删除
100644 → 0
浏览文件 @
d3726449
/*
* Copyright 2007 Sun Microsystems, Inc. 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. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package
com.sun.crypto.provider
;
// NOTE: this class is duplicated amongst SunJCE, SunPKCS11, and SunMSCAPI.
// All files should be kept in sync.
import
java.io.*
;
import
java.util.*
;
import
java.util.jar.*
;
import
java.net.URL
;
import
java.net.JarURLConnection
;
import
java.net.MalformedURLException
;
import
java.security.*
;
import
java.security.cert.*
;
import
java.security.cert.Certificate
;
/**
* This class verifies JAR files (and any supporting JAR files), and
* determines whether they may be used in this implementation.
*
* The JCE in OpenJDK has an open cryptographic interface, meaning it
* does not restrict which providers can be used. Compliance with
* United States export controls and with local law governing the
* import/export of products incorporating the JCE in the OpenJDK is
* the responsibility of the licensee.
*
* @since 1.7
*/
final
class
JarVerifier
{
private
static
final
boolean
debug
=
false
;
/**
* Verify the JAR file is signed by an entity which has a certificate
* issued by a trusted CA.
*
* Note: this is a temporary method and will change soon to use the
* exception chaining mechanism, which can provide more details
* as to why the verification failed.
*
* @param c the class to be verified.
* @return true if verification is successful.
*/
static
boolean
verify
(
final
Class
c
)
{
return
true
;
}
}
src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -109,7 +109,6 @@ final class KeyGeneratorCore {
public
static
final
class
HmacSHA256KG
extends
KeyGeneratorSpi
{
private
final
KeyGeneratorCore
core
;
public
HmacSHA256KG
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
KeyGeneratorCore
(
"HmacSHA256"
,
256
);
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
@@ -131,7 +130,6 @@ final class KeyGeneratorCore {
public
static
final
class
HmacSHA384KG
extends
KeyGeneratorSpi
{
private
final
KeyGeneratorCore
core
;
public
HmacSHA384KG
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
KeyGeneratorCore
(
"HmacSHA384"
,
384
);
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
@@ -153,7 +151,6 @@ final class KeyGeneratorCore {
public
static
final
class
HmacSHA512KG
extends
KeyGeneratorSpi
{
private
final
KeyGeneratorCore
core
;
public
HmacSHA512KG
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
KeyGeneratorCore
(
"HmacSHA512"
,
512
);
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
@@ -175,7 +172,6 @@ final class KeyGeneratorCore {
public
static
final
class
RC2KeyGenerator
extends
KeyGeneratorSpi
{
private
final
KeyGeneratorCore
core
;
public
RC2KeyGenerator
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
KeyGeneratorCore
(
"RC2"
,
128
);
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
@@ -201,7 +197,6 @@ final class KeyGeneratorCore {
public
static
final
class
ARCFOURKeyGenerator
extends
KeyGeneratorSpi
{
private
final
KeyGeneratorCore
core
;
public
ARCFOURKeyGenerator
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
core
=
new
KeyGeneratorCore
(
"ARCFOUR"
,
128
);
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -49,16 +49,9 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi {
private
static
HashSet
<
String
>
validTypes
;
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Simple constructor
*/
private
PBEKeyFactory
(
String
keytype
)
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
type
=
keytype
;
}
...
...
src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -55,16 +55,9 @@ public final class PBEWithMD5AndDESCipher extends CipherSpi {
* unavailable
* @exception NoSuchPaddingException if the required padding mechanism
* (PKCS5Padding) is unavailable
*
* @exception SecurityException if this constructor fails to verify
* its own integrity
*/
public
PBEWithMD5AndDESCipher
()
throws
NoSuchAlgorithmException
,
NoSuchPaddingException
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
core
=
new
PBECipherCore
(
"DES"
);
}
...
...
src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 1998-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1998-200
9
Sun Microsystems, Inc. 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
...
...
@@ -61,23 +61,14 @@ public final class PBEWithMD5AndTripleDESCipher extends CipherSpi {
* Creates an instance of this cipher, and initializes its mode (CBC) and
* padding (PKCS5).
*
* Verify the SunJCE provider in the constructor.
*
* @exception NoSuchAlgorithmException if the required cipher mode (CBC) is
* unavailable
* @exception NoSuchPaddingException if the required padding mechanism
* (PKCS5Padding) is unavailable
* @exception SecurityException if fails to verify
* its own integrity
*/
public
PBEWithMD5AndTripleDESCipher
()
throws
NoSuchAlgorithmException
,
NoSuchPaddingException
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
// set the encapsulated cipher to do triple DES
core
=
new
PBECipherCore
(
"DESede"
);
}
...
...
src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java
浏览文件 @
cf59ffe6
/*
* Copyright 2005-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-200
9
Sun Microsystems, Inc. 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
...
...
@@ -45,16 +45,9 @@ import javax.crypto.spec.SecretKeySpec;
public
final
class
PBKDF2HmacSHA1Factory
extends
SecretKeyFactorySpi
{
/**
* Verify the SunJCE provider in the constructor.
*
* @exception SecurityException if fails to verify
* its own integrity
* Empty constructor
*/
public
PBKDF2HmacSHA1Factory
()
{
if
(!
SunJCE
.
verifySelfIntegrity
(
this
.
getClass
()))
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
/**
...
...
src/share/classes/com/sun/crypto/provider/PKCS12PBECipherCore.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -370,7 +370,6 @@ final class PKCS12PBECipherCore {
public
static
final
class
PBEWithSHA1AndDESede
extends
CipherSpi
{
private
final
PKCS12PBECipherCore
core
;
public
PBEWithSHA1AndDESede
()
throws
NoSuchAlgorithmException
{
SunJCE
.
ensureIntegrity
(
this
.
getClass
());
core
=
new
PKCS12PBECipherCore
(
"DESede"
,
24
);
}
protected
byte
[]
engineDoFinal
(
byte
[]
in
,
int
inOff
,
int
inLen
)
...
...
@@ -446,7 +445,6 @@ final class PKCS12PBECipherCore {
public
static
final
class
PBEWithSHA1AndRC2_40
extends
CipherSpi
{
private
final
PKCS12PBECipherCore
core
;
public
PBEWithSHA1AndRC2_40
()
throws
NoSuchAlgorithmException
{
SunJCE
.
ensureIntegrity
(
this
.
getClass
());
core
=
new
PKCS12PBECipherCore
(
"RC2"
,
5
);
}
protected
byte
[]
engineDoFinal
(
byte
[]
in
,
int
inOff
,
int
inLen
)
...
...
src/share/classes/com/sun/crypto/provider/RC2Cipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -45,7 +45,6 @@ public final class RC2Cipher extends CipherSpi {
private
final
RC2Crypt
embeddedCipher
;
public
RC2Cipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
embeddedCipher
=
new
RC2Crypt
();
core
=
new
CipherCore
(
embeddedCipher
,
8
);
}
...
...
src/share/classes/com/sun/crypto/provider/RSACipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -111,7 +111,6 @@ public final class RSACipher extends CipherSpi {
private
String
oaepHashAlgorithm
=
"SHA-1"
;
public
RSACipher
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
paddingType
=
PAD_PKCS1
;
}
...
...
src/share/classes/com/sun/crypto/provider/SslMacCore.java
浏览文件 @
cf59ffe6
/*
* Copyright 2005-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-200
9
Sun Microsystems, Inc. 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
...
...
@@ -226,9 +226,6 @@ final class SslMacCore {
static
final
byte
[]
md5Pad1
=
genPad
((
byte
)
0x36
,
48
);
static
final
byte
[]
md5Pad2
=
genPad
((
byte
)
0x5c
,
48
);
static
{
SunJCE
.
ensureIntegrity
(
SslMacMD5
.
class
);
}
}
// nested static class for the SslMacMD5 implementation
...
...
@@ -262,9 +259,6 @@ final class SslMacCore {
static
final
byte
[]
shaPad1
=
genPad
((
byte
)
0x36
,
40
);
static
final
byte
[]
shaPad2
=
genPad
((
byte
)
0x5c
,
40
);
static
{
SunJCE
.
ensureIntegrity
(
SslMacSHA1
.
class
);
}
}
}
src/share/classes/com/sun/crypto/provider/SunJCE.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -93,10 +93,6 @@ public final class SunJCE extends Provider {
static
final
SecureRandom
RANDOM
=
new
SecureRandom
();
// After the SunJCE passed self-integrity checking,
// verifiedSelfIntegrity will be set to true.
private
static
boolean
verifiedSelfIntegrity
=
false
;
public
SunJCE
()
{
/* We are the "SunJCE" provider */
super
(
"SunJCE"
,
1.7d
,
info
);
...
...
@@ -441,21 +437,4 @@ public final class SunJCE extends Provider {
}
});
}
// set to true once self verification is complete
private
static
volatile
boolean
integrityVerified
;
static
void
ensureIntegrity
(
Class
c
)
{
if
(
verifySelfIntegrity
(
c
)
==
false
)
{
throw
new
SecurityException
(
"The SunJCE provider may have "
+
"been tampered."
);
}
}
static
final
boolean
verifySelfIntegrity
(
Class
c
)
{
if
(
verifiedSelfIntegrity
)
{
return
true
;
}
return
(
integrityVerified
=
JarVerifier
.
verify
(
c
));
}
}
src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 2005-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-200
9
Sun Microsystems, Inc. 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
...
...
@@ -52,7 +52,6 @@ public final class TlsKeyMaterialGenerator extends KeyGeneratorSpi {
private
int
protocolVersion
;
public
TlsKeyMaterialGenerator
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 2005-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-200
9
Sun Microsystems, Inc. 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,7 +51,6 @@ public final class TlsMasterSecretGenerator extends KeyGeneratorSpi {
private
int
protocolVersion
;
public
TlsMasterSecretGenerator
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
src/share/classes/com/sun/crypto/provider/TlsPrfGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 2005-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-200
9
Sun Microsystems, Inc. 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
...
...
@@ -109,7 +109,6 @@ public final class TlsPrfGenerator extends KeyGeneratorSpi {
private
TlsPrfParameterSpec
spec
;
public
TlsPrfGenerator
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java
浏览文件 @
cf59ffe6
/*
* Copyright 2005-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-200
9
Sun Microsystems, Inc. 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
...
...
@@ -48,7 +48,6 @@ public final class TlsRsaPremasterSecretGenerator extends KeyGeneratorSpi {
private
SecureRandom
random
;
public
TlsRsaPremasterSecretGenerator
()
{
SunJCE
.
ensureIntegrity
(
getClass
());
}
protected
void
engineInit
(
SecureRandom
random
)
{
...
...
src/share/classes/javax/crypto/JarVerifier.java
浏览文件 @
cf59ffe6
/*
* Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2007
-2009
Sun Microsystems, Inc. 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,9 +28,7 @@ package javax.crypto;
import
java.io.*
;
import
java.net.*
;
import
java.security.*
;
import
java.util.*
;
import
java.util.jar.*
;
import
javax.crypto.CryptoPolicyParser.ParsingException
;
/**
* This class verifies JAR files (and any supporting JAR files), and
...
...
@@ -134,17 +132,6 @@ final class JarVerifier {
}
}
/**
* Verify that the provided JarEntry was indeed signed by the
* framework signing certificate.
*
* @param je the URL of the jar entry to be checked.
* @throws Exception if the jar entry was not signed by
* the proper certificate
*/
static
void
verifyFrameworkSigned
(
URL
je
)
throws
Exception
{
}
/**
* Verify that the provided certs include the
* framework signing certificate.
...
...
src/share/classes/javax/crypto/JceSecurity.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -25,7 +25,6 @@
package
javax.crypto
;
import
java.lang.ref.*
;
import
java.util.*
;
import
java.util.jar.*
;
import
java.io.*
;
...
...
@@ -256,11 +255,6 @@ final class JceSecurity {
(
"Cannot locate policy or framework files!"
);
}
// Enforce the signer restraint, i.e. signer of JCE framework
// jar should also be the signer of the two jurisdiction policy
// jar files.
JarVerifier
.
verifyFrameworkSigned
(
jceCipherURL
);
// Read jurisdiction policies.
CryptoPermissions
defaultExport
=
new
CryptoPermissions
();
CryptoPermissions
exemptExport
=
new
CryptoPermissions
();
...
...
src/share/classes/javax/swing/JFileChooser.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -739,6 +739,11 @@ public class JFileChooser extends JComponent implements Accessible {
dialog
.
show
();
firePropertyChange
(
"JFileChooserDialogIsClosingProperty"
,
dialog
,
null
);
// Remove all components from dialog. The MetalFileChooserUI.installUI() method (and other LAFs)
// registers AWT listener for dialogs and produces memory leaks. It happens when
// installUI invoked after the showDialog method.
dialog
.
getContentPane
().
removeAll
();
dialog
.
dispose
();
dialog
=
null
;
return
returnValue
;
...
...
src/share/classes/javax/swing/JInternalFrame.java
浏览文件 @
cf59ffe6
...
...
@@ -26,13 +26,10 @@
package
javax.swing
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.beans.PropertyVetoException
;
import
java.beans.PropertyChangeEvent
;
import
java.util.EventListener
;
import
javax.swing.border.Border
;
import
javax.swing.event.InternalFrameEvent
;
import
javax.swing.event.InternalFrameListener
;
import
javax.swing.plaf.*
;
...
...
@@ -40,7 +37,6 @@ import javax.swing.plaf.*;
import
javax.accessibility.*
;
import
java.io.ObjectOutputStream
;
import
java.io.ObjectInputStream
;
import
java.io.IOException
;
import
java.lang.StringBuilder
;
import
java.beans.PropertyChangeListener
;
...
...
@@ -1459,21 +1455,24 @@ public class JInternalFrame extends JComponent implements
SwingUtilities2
.
compositeRequestFocus
(
getDesktopIcon
());
}
else
{
Component
component
=
KeyboardFocusManager
.
getCurrentKeyboardFocusManager
().
getPermanentFocusOwner
();
if
((
component
==
null
)
||
!
SwingUtilities
.
isDescendingFrom
(
component
,
this
))
{
// FocusPropertyChangeListener will eventually update
// lastFocusOwner. As focus requests are asynchronous
// lastFocusOwner may be accessed before it has been correctly
// updated. To avoid any problems, lastFocusOwner is immediately
// set, assuming the request will succeed.
lastFocusOwner
=
getMostRecentFocusOwner
(
);
setLastFocusOwner
(
getMostRecentFocusOwner
()
);
if
(
lastFocusOwner
==
null
)
{
// Make sure focus is restored somewhere, so that
// we don't leave a focused component in another frame while
// this frame is selected.
lastFocusOwner
=
getContentPane
(
);
setLastFocusOwner
(
getContentPane
()
);
}
lastFocusOwner
.
requestFocus
();
}
}
}
private
void
setLastFocusOwner
(
Component
component
)
{
lastFocusOwner
=
component
;
...
...
src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -32,9 +32,6 @@ import javax.swing.event.*;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
java.beans.*
;
import
java.util.EventListener
;
import
java.io.Serializable
;
/**
* Basic L&F for a minimized window on a desktop.
...
...
@@ -47,7 +44,6 @@ public class BasicDesktopIconUI extends DesktopIconUI {
protected
JInternalFrame
.
JDesktopIcon
desktopIcon
;
protected
JInternalFrame
frame
;
private
DesktopIconMover
desktopIconMover
;
/**
* The title pane component used in the desktop icon.
...
...
@@ -128,21 +124,12 @@ public class BasicDesktopIconUI extends DesktopIconUI {
mouseInputListener
=
createMouseInputListener
();
desktopIcon
.
addMouseMotionListener
(
mouseInputListener
);
desktopIcon
.
addMouseListener
(
mouseInputListener
);
getDesktopIconMover
().
installListeners
();
}
protected
void
uninstallListeners
()
{
desktopIcon
.
removeMouseMotionListener
(
mouseInputListener
);
desktopIcon
.
removeMouseListener
(
mouseInputListener
);
mouseInputListener
=
null
;
getDesktopIconMover
().
uninstallListeners
();
}
private
DesktopIconMover
getDesktopIconMover
()
{
if
(
desktopIconMover
==
null
)
{
desktopIconMover
=
new
DesktopIconMover
(
desktopIcon
);
}
return
desktopIconMover
;
}
protected
void
installDefaults
()
{
...
...
src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java
浏览文件 @
cf59ffe6
/*
* Copyright 1998-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1998-200
9
Sun Microsystems, Inc. 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
...
...
@@ -232,6 +232,10 @@ public class BasicDirectoryModel extends AbstractListModel implements PropertyCh
public
void
run0
()
{
FileSystemView
fileSystem
=
filechooser
.
getFileSystemView
();
if
(
isInterrupted
())
{
return
;
}
File
[]
list
=
fileSystem
.
getFiles
(
currentDirectory
,
filechooser
.
isFileHidingEnabled
());
if
(
isInterrupted
())
{
...
...
@@ -268,8 +272,8 @@ public class BasicDirectoryModel extends AbstractListModel implements PropertyCh
// To avoid loads of synchronizations with Invoker and improve performance we
// execute the whole block on the COM thread
DoChangeContents
doChangeContents
=
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
DoChangeContents
>()
{
public
DoChangeContents
call
()
throws
Exception
{
DoChangeContents
doChangeContents
=
ShellFolder
.
invoke
(
new
Callable
<
DoChangeContents
>()
{
public
DoChangeContents
call
()
{
int
newSize
=
newFileCache
.
size
();
int
oldSize
=
fileCache
.
size
();
...
...
src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java
浏览文件 @
cf59ffe6
...
...
@@ -27,16 +27,10 @@ package javax.swing.plaf.basic;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.awt.peer.LightweightPeer
;
import
javax.swing.*
;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.event.*
;
import
java.beans.*
;
import
java.io.Serializable
;
import
sun.swing.DefaultLookup
;
import
sun.swing.UIAction
;
...
...
@@ -55,6 +49,7 @@ public class BasicInternalFrameUI extends InternalFrameUI
protected
MouseInputAdapter
borderListener
;
protected
PropertyChangeListener
propertyChangeListener
;
protected
LayoutManager
internalFrameLayout
;
protected
ComponentListener
componentListener
;
protected
MouseInputListener
glassPaneDispatcher
;
private
InternalFrameListener
internalFrameListener
;
...
...
@@ -66,9 +61,9 @@ public class BasicInternalFrameUI extends InternalFrameUI
protected
BasicInternalFrameTitlePane
titlePane
;
// access needs this
private
static
DesktopManager
sharedDesktopManager
;
private
boolean
componentListenerAdded
=
false
;
private
Rectangle
parentBounds
;
private
DesktopIconMover
desktopIconMover
;
private
boolean
dragging
=
false
;
private
boolean
resizing
=
false
;
...
...
@@ -209,17 +204,14 @@ public class BasicInternalFrameUI extends InternalFrameUI
frame
.
getGlassPane
().
addMouseListener
(
glassPaneDispatcher
);
frame
.
getGlassPane
().
addMouseMotionListener
(
glassPaneDispatcher
);
}
componentListener
=
createComponentListener
();
if
(
frame
.
getParent
()
!=
null
)
{
parentBounds
=
frame
.
getParent
().
getBounds
();
}
getDesktopIconMover
().
installListeners
();
}
private
DesktopIconMover
getDesktopIconMover
()
{
if
(
desktopIconMover
==
null
)
{
desktopIconMover
=
new
DesktopIconMover
(
frame
);
if
((
frame
.
getParent
()
!=
null
)
&&
!
componentListenerAdded
)
{
frame
.
getParent
().
addComponentListener
(
componentListener
);
componentListenerAdded
=
true
;
}
return
desktopIconMover
;
}
// Provide a FocusListener to listen for a WINDOW_LOST_FOCUS event,
...
...
@@ -290,7 +282,11 @@ public class BasicInternalFrameUI extends InternalFrameUI
* @since 1.3
*/
protected
void
uninstallListeners
()
{
getDesktopIconMover
().
uninstallListeners
();
if
((
frame
.
getParent
()
!=
null
)
&&
componentListenerAdded
)
{
frame
.
getParent
().
removeComponentListener
(
componentListener
);
componentListenerAdded
=
false
;
}
componentListener
=
null
;
if
(
glassPaneDispatcher
!=
null
)
{
frame
.
getGlassPane
().
removeMouseListener
(
glassPaneDispatcher
);
frame
.
getGlassPane
().
removeMouseMotionListener
(
glassPaneDispatcher
);
...
...
@@ -1228,6 +1224,15 @@ public class BasicInternalFrameUI extends InternalFrameUI
}
}
// Relocate the icon base on the new parent bounds.
if
(
icon
!=
null
)
{
Rectangle
iconBounds
=
icon
.
getBounds
();
int
y
=
iconBounds
.
y
+
(
parentNewBounds
.
height
-
parentBounds
.
height
);
icon
.
setBounds
(
iconBounds
.
x
,
y
,
iconBounds
.
width
,
iconBounds
.
height
);
}
// Update the new parent bounds for next resize.
if
(!
parentBounds
.
equals
(
parentNewBounds
))
{
parentBounds
=
parentNewBounds
;
...
...
@@ -1399,6 +1404,9 @@ public class BasicInternalFrameUI extends InternalFrameUI
// Cancel a resize in progress if the internal frame
// gets a setClosed(true) or dispose().
cancelResize
();
if
((
frame
.
getParent
()
!=
null
)
&&
componentListenerAdded
)
{
frame
.
getParent
().
removeComponentListener
(
componentListener
);
}
closeFrame
(
f
);
}
}
else
if
(
JInternalFrame
.
IS_MAXIMUM_PROPERTY
==
prop
)
{
...
...
@@ -1431,6 +1439,10 @@ public class BasicInternalFrameUI extends InternalFrameUI
}
else
{
parentBounds
=
null
;
}
if
((
frame
.
getParent
()
!=
null
)
&&
!
componentListenerAdded
)
{
f
.
getParent
().
addComponentListener
(
componentListener
);
componentListenerAdded
=
true
;
}
}
else
if
(
JInternalFrame
.
TITLE_PROPERTY
==
prop
||
prop
==
"closable"
||
prop
==
"iconable"
||
prop
==
"maximizable"
)
{
...
...
src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java
浏览文件 @
cf59ffe6
/*
* Copyright 1997-200
5
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
Sun Microsystems, Inc. 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
...
...
@@ -37,17 +37,12 @@ import java.beans.PropertyChangeListener;
import
java.beans.PropertyChangeEvent
;
import
java.awt.Component
;
import
java.awt.Container
;
import
java.awt.LayoutManager
;
import
java.awt.Rectangle
;
import
java.awt.Dimension
;
import
java.awt.Point
;
import
java.awt.Insets
;
import
java.awt.Graphics
;
import
java.awt.event.*
;
import
java.io.Serializable
;
import
java.awt.Toolkit
;
import
java.awt.ComponentOrientation
;
/**
* A default L&F implementation of ScrollPaneUI.
...
...
@@ -63,6 +58,7 @@ public class BasicScrollPaneUI
protected
ChangeListener
viewportChangeListener
;
protected
PropertyChangeListener
spPropertyChangeListener
;
private
MouseWheelListener
mouseScrollListener
;
private
int
oldExtent
=
Integer
.
MIN_VALUE
;
/**
* PropertyChangeListener installed on the vertical scrollbar.
...
...
@@ -327,9 +323,13 @@ public class BasicScrollPaneUI
* leave it until someone claims.
*/
value
=
Math
.
max
(
0
,
Math
.
min
(
max
-
extent
,
max
-
extent
-
viewPosition
.
x
));
if
(
oldExtent
>
extent
)
{
value
-=
oldExtent
-
extent
;
}
}
}
}
oldExtent
=
extent
;
hsb
.
setValues
(
value
,
extent
,
0
,
max
);
}
...
...
@@ -1020,7 +1020,7 @@ public class BasicScrollPaneUI
if
(
viewport
!=
null
)
{
if
(
e
.
getSource
()
==
viewport
)
{
viewportStateChanged
(
e
);
syncScrollPaneWithViewport
(
);
}
else
{
JScrollBar
hsb
=
scrollpane
.
getHorizontalScrollBar
();
...
...
@@ -1077,11 +1077,6 @@ public class BasicScrollPaneUI
viewport
.
setViewPosition
(
p
);
}
private
void
viewportStateChanged
(
ChangeEvent
e
)
{
syncScrollPaneWithViewport
();
}
//
// PropertyChangeListener: This is installed on both the JScrollPane
// and the horizontal/vertical scrollbars.
...
...
src/share/classes/javax/swing/plaf/basic/DesktopIconMover.java
已删除
100644 → 0
浏览文件 @
d3726449
/*
* Copyright 1997-2008 Sun Microsystems, Inc. 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. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package
javax.swing.plaf.basic
;
import
javax.swing.*
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.beans.*
;
/**
* DesktopIconMover is intended to move desktop icon
* when parent window is resized.
*/
class
DesktopIconMover
implements
ComponentListener
,
PropertyChangeListener
{
private
Component
parent
;
private
JInternalFrame
frame
;
// if not null, DesktopIconMover(frame)
// constructor was used
private
JInternalFrame
.
JDesktopIcon
icon
;
private
Rectangle
parentBounds
;
private
boolean
componentListenerAdded
=
false
;
public
DesktopIconMover
(
JInternalFrame
frame
)
{
if
(
frame
==
null
)
{
throw
new
NullPointerException
(
"Frame cannot be null"
);
}
this
.
frame
=
frame
;
this
.
icon
=
frame
.
getDesktopIcon
();
if
(
icon
==
null
)
{
throw
new
NullPointerException
(
"frame.getDesktopIcon() cannot be null"
);
}
this
.
parent
=
frame
.
getParent
();
if
(
this
.
parent
!=
null
)
{
parentBounds
=
this
.
parent
.
getBounds
();
}
}
public
DesktopIconMover
(
JInternalFrame
.
JDesktopIcon
icon
)
{
if
(
icon
==
null
)
{
throw
new
NullPointerException
(
"Icon cannot be null"
);
}
this
.
icon
=
icon
;
this
.
parent
=
icon
.
getParent
();
if
(
this
.
parent
!=
null
)
{
parentBounds
=
this
.
parent
.
getBounds
();
}
}
public
void
installListeners
()
{
if
(
frame
!=
null
)
{
frame
.
addPropertyChangeListener
(
this
);
}
else
{
icon
.
addPropertyChangeListener
(
this
);
}
addComponentListener
();
}
public
void
uninstallListeners
()
{
if
(
frame
!=
null
)
{
frame
.
removePropertyChangeListener
(
this
);
}
else
{
icon
.
removePropertyChangeListener
(
this
);
}
removeComponentListener
();
}
public
void
propertyChange
(
PropertyChangeEvent
evt
)
{
String
propName
=
evt
.
getPropertyName
();
if
(
"ancestor"
.
equals
(
propName
))
{
Component
newAncestor
=
(
Component
)
evt
.
getNewValue
();
// Remove component listener if parent is changing
Component
probablyNewParent
=
getCurrentParent
();
if
((
probablyNewParent
!=
null
)
&&
(!
probablyNewParent
.
equals
(
parent
)))
{
removeComponentListener
();
parent
=
probablyNewParent
;
}
if
(
newAncestor
==
null
)
{
removeComponentListener
();
}
else
{
addComponentListener
();
}
// Update parentBounds
if
(
parent
!=
null
)
{
parentBounds
=
parent
.
getBounds
();
}
else
{
parentBounds
=
null
;
}
}
else
if
(
JInternalFrame
.
IS_CLOSED_PROPERTY
.
equals
(
propName
))
{
removeComponentListener
();
}
}
private
void
addComponentListener
()
{
if
(!
componentListenerAdded
&&
(
parent
!=
null
))
{
parent
.
addComponentListener
(
this
);
componentListenerAdded
=
true
;
}
}
private
void
removeComponentListener
()
{
if
((
parent
!=
null
)
&&
componentListenerAdded
)
{
parent
.
removeComponentListener
(
this
);
componentListenerAdded
=
false
;
}
}
private
Component
getCurrentParent
()
{
if
(
frame
!=
null
)
{
return
frame
.
getParent
();
}
else
{
return
icon
.
getParent
();
}
}
public
void
componentResized
(
ComponentEvent
e
)
{
if
((
parent
==
null
)
||
(
parentBounds
==
null
))
{
return
;
}
Rectangle
parentNewBounds
=
parent
.
getBounds
();
if
((
parentNewBounds
==
null
)
||
parentNewBounds
.
equals
(
parentBounds
))
{
return
;
}
// Move desktop icon only in up-down direction
int
newIconY
=
icon
.
getLocation
().
y
+
(
parentNewBounds
.
height
-
parentBounds
.
height
);
icon
.
setLocation
(
icon
.
getLocation
().
x
,
newIconY
);
parentBounds
=
parentNewBounds
;
}
public
void
componentMoved
(
ComponentEvent
e
)
{
}
public
void
componentShown
(
ComponentEvent
e
)
{
}
public
void
componentHidden
(
ComponentEvent
e
)
{
}
}
src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
浏览文件 @
cf59ffe6
...
...
@@ -227,10 +227,10 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
*
* @param x an encoded x value (0...1, or 1...2, or 2...3)
* @return the decoded x value
* @throws IllegalArgumentException
* if {@code x < 0} or {@code x > 3}
*/
protected
final
float
decodeX
(
float
x
)
{
if
(
ctx
.
canvasSize
==
null
)
return
x
;
if
(
x
>=
0
&&
x
<=
1
)
{
return
x
*
leftWidth
;
}
else
if
(
x
>
1
&&
x
<
2
)
{
...
...
@@ -238,7 +238,7 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
}
else
if
(
x
>=
2
&&
x
<=
3
)
{
return
((
x
-
2
)
*
rightWidth
)
+
leftWidth
+
centerWidth
;
}
else
{
throw
new
AssertionError
(
"Invalid x"
);
throw
new
IllegalArgumentException
(
"Invalid x"
);
}
}
...
...
@@ -248,10 +248,10 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
*
* @param y an encoded y value (0...1, or 1...2, or 2...3)
* @return the decoded y value
* @throws IllegalArgumentException
* if {@code y < 0} or {@code y > 3}
*/
protected
final
float
decodeY
(
float
y
)
{
if
(
ctx
.
canvasSize
==
null
)
return
y
;
if
(
y
>=
0
&&
y
<=
1
)
{
return
y
*
topHeight
;
}
else
if
(
y
>
1
&&
y
<
2
)
{
...
...
@@ -259,7 +259,7 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
}
else
if
(
y
>=
2
&&
y
<=
3
)
{
return
((
y
-
2
)
*
bottomHeight
)
+
topHeight
+
centerHeight
;
}
else
{
throw
new
AssertionError
(
"Invalid y"
);
throw
new
IllegalArgumentException
(
"Invalid y"
);
}
}
...
...
@@ -271,10 +271,10 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
* @param x an encoded x value of the bezier control point (0...1, or 1...2, or 2...3)
* @param dx the offset distance to the anchor from the control point x
* @return the decoded x location of the control point
* @throws IllegalArgumentException
* if {@code x < 0} or {@code x > 3}
*/
protected
final
float
decodeAnchorX
(
float
x
,
float
dx
)
{
if
(
ctx
.
canvasSize
==
null
)
return
x
+
dx
;
if
(
x
>=
0
&&
x
<=
1
)
{
return
decodeX
(
x
)
+
(
dx
*
leftScale
);
}
else
if
(
x
>
1
&&
x
<
2
)
{
...
...
@@ -282,7 +282,7 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
}
else
if
(
x
>=
2
&&
x
<=
3
)
{
return
decodeX
(
x
)
+
(
dx
*
rightScale
);
}
else
{
throw
new
AssertionError
(
"Invalid x"
);
throw
new
IllegalArgumentException
(
"Invalid x"
);
}
}
...
...
@@ -294,10 +294,10 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
* @param y an encoded y value of the bezier control point (0...1, or 1...2, or 2...3)
* @param dy the offset distance to the anchor from the control point y
* @return the decoded y position of the control point
* @throws IllegalArgumentException
* if {@code y < 0} or {@code y > 3}
*/
protected
final
float
decodeAnchorY
(
float
y
,
float
dy
)
{
if
(
ctx
.
canvasSize
==
null
)
return
y
+
dy
;
if
(
y
>=
0
&&
y
<=
1
)
{
return
decodeY
(
y
)
+
(
dy
*
topScale
);
}
else
if
(
y
>
1
&&
y
<
2
)
{
...
...
@@ -305,7 +305,7 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
}
else
if
(
y
>=
2
&&
y
<=
3
)
{
return
decodeY
(
y
)
+
(
dy
*
bottomScale
);
}
else
{
throw
new
AssertionError
(
"Invalid y"
);
throw
new
IllegalArgumentException
(
"Invalid y"
);
}
}
...
...
@@ -363,6 +363,15 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
* @param midpoints
* @param colors
* @return a valid LinearGradientPaint. This method never returns null.
* @throws NullPointerException
* if {@code midpoints} array is null,
* or {@code colors} array is null,
* @throws IllegalArgumentException
* if start and end points are the same points,
* or {@code midpoints.length != colors.length},
* or {@code colors} is less than 2 in size,
* or a {@code midpoints} value is less than 0.0 or greater than 1.0,
* or the {@code midpoints} are not provided in strictly increasing order
*/
protected
final
LinearGradientPaint
decodeGradient
(
float
x1
,
float
y1
,
float
x2
,
float
y2
,
float
[]
midpoints
,
Color
[]
colors
)
{
if
(
x1
==
x2
&&
y1
==
y2
)
{
...
...
@@ -384,6 +393,15 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
* @param midpoints
* @param colors
* @return a valid RadialGradientPaint. This method never returns null.
* @throws NullPointerException
* if {@code midpoints} array is null,
* or {@code colors} array is null
* @throws IllegalArgumentException
* if {@code r} is non-positive,
* or {@code midpoints.length != colors.length},
* or {@code colors} is less than 2 in size,
* or a {@code midpoints} value is less than 0.0 or greater than 1.0,
* or the {@code midpoints} are not provided in strictly increasing order
*/
protected
final
RadialGradientPaint
decodeRadialGradient
(
float
x
,
float
y
,
float
r
,
float
[]
midpoints
,
Color
[]
colors
)
{
if
(
r
==
0
f
)
{
...
...
@@ -537,10 +555,10 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
this
.
maxVerticalScaleFactor
=
maxV
;
if
(
canvasSize
!=
null
)
{
a
=
i
nsets
.
left
;
b
=
canvasSize
.
width
-
i
nsets
.
right
;
c
=
i
nsets
.
top
;
d
=
canvasSize
.
height
-
i
nsets
.
bottom
;
a
=
stretchingI
nsets
.
left
;
b
=
canvasSize
.
width
-
stretchingI
nsets
.
right
;
c
=
stretchingI
nsets
.
top
;
d
=
canvasSize
.
height
-
stretchingI
nsets
.
bottom
;
this
.
canvasSize
=
canvasSize
;
this
.
inverted
=
inverted
;
if
(
inverted
)
{
...
...
src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java
浏览文件 @
cf59ffe6
...
...
@@ -84,6 +84,8 @@ class NimbusIcon extends SynthIcon {
translatex
=
1
;
}
}
}
else
if
(
c
instanceof
JMenu
)
{
flip
=
!
c
.
getComponentOrientation
().
isLeftToRight
();
}
if
(
g
instanceof
Graphics2D
){
Graphics2D
gfx
=
(
Graphics2D
)
g
;
...
...
src/share/classes/javax/swing/text/GlyphView.java
浏览文件 @
cf59ffe6
...
...
@@ -719,8 +719,9 @@ public class GlyphView extends View implements TabableView, Cloneable {
checkPainter
();
int
p0
=
getStartOffset
();
int
p1
=
painter
.
getBoundedPosition
(
this
,
p0
,
pos
,
len
);
return
((
p1
>
p0
)
&&
(
getBreakSpot
(
p0
,
p1
)
!=
BreakIterator
.
DONE
))
?
View
.
ExcellentBreakWeight
:
View
.
BadBreakWeight
;
return
p1
==
p0
?
View
.
BadBreakWeight
:
getBreakSpot
(
p0
,
p1
)
!=
BreakIterator
.
DONE
?
View
.
ExcellentBreakWeight
:
View
.
GoodBreakWeight
;
}
return
super
.
getBreakWeight
(
axis
,
pos
,
len
);
}
...
...
src/share/classes/javax/swing/text/ParagraphView.java
浏览文件 @
cf59ffe6
...
...
@@ -174,23 +174,6 @@ public class ParagraphView extends FlowView implements TabExpander {
return
layoutPool
.
getView
(
index
);
}
/**
* Adjusts the given row if possible to fit within the
* layout span. By default this will try to find the
* highest break weight possible nearest the end of
* the row. If a forced break is encountered, the
* break will be positioned there.
* <p>
* This is meant for internal usage, and should not be used directly.
*
* @param r the row to adjust to the current layout
* span
* @param desiredSpan the current layout span >= 0
* @param x the location r starts at
*/
protected
void
adjustRow
(
Row
r
,
int
desiredSpan
,
int
x
)
{
}
/**
* Returns the next visual position for the cursor, in
* either the east or west direction.
...
...
src/share/classes/sun/awt/shell/ShellFolder.java
浏览文件 @
cf59ffe6
/*
* Copyright 2000-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2000-200
9
Sun Microsystems, Inc. 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
...
...
@@ -289,8 +289,8 @@ public abstract class ShellFolder extends File {
// To avoid loads of synchronizations with Invoker and improve performance we
// synchronize the whole code of the sort method once
getInvoker
().
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
throws
Exception
{
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
{
// Check that we can use the ShellFolder.sortChildren() method:
// 1. All files have the same non-null parent
// 2. All files is ShellFolders
...
...
@@ -330,8 +330,8 @@ public abstract class ShellFolder extends File {
public
void
sortChildren
(
final
List
<?
extends
File
>
files
)
{
// To avoid loads of synchronizations with Invoker and improve performance we
// synchronize the whole code of the sort method once
getInvoker
().
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
throws
Exception
{
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
{
Collections
.
sort
(
files
,
FILE_COMPARATOR
);
return
null
;
...
...
@@ -501,18 +501,62 @@ public abstract class ShellFolder extends File {
return
invoker
;
}
/**
* Invokes the {@code task} which doesn't throw checked exceptions
* from its {@code call} method. If invokation is interrupted then Thread.currentThread().isInterrupted() will
* be set and result will be {@code null}
*/
public
static
<
T
>
T
invoke
(
Callable
<
T
>
task
)
{
try
{
return
invoke
(
task
,
RuntimeException
.
class
);
}
catch
(
InterruptedException
e
)
{
return
null
;
}
}
/**
* Invokes the {@code task} which throws checked exceptions from its {@code call} method.
* If invokation is interrupted then Thread.currentThread().isInterrupted() will
* be set and InterruptedException will be thrown as well.
*/
public
static
<
T
,
E
extends
Throwable
>
T
invoke
(
Callable
<
T
>
task
,
Class
<
E
>
exceptionClass
)
throws
InterruptedException
,
E
{
try
{
return
getInvoker
().
invoke
(
task
);
}
catch
(
Exception
e
)
{
if
(
e
instanceof
RuntimeException
)
{
// Rethrow unchecked exceptions
throw
(
RuntimeException
)
e
;
}
if
(
e
instanceof
InterruptedException
)
{
// Set isInterrupted flag for current thread
Thread
.
currentThread
().
interrupt
();
// Rethrow InterruptedException
throw
(
InterruptedException
)
e
;
}
if
(
exceptionClass
.
isInstance
(
e
))
{
throw
exceptionClass
.
cast
(
e
);
}
throw
new
RuntimeException
(
"Unexpected error"
,
e
);
}
}
/**
* Interface allowing to invoke tasks in different environments on different platforms.
*/
public
static
interface
Invoker
{
/**
* Invokes a callable task. If the {@code task} throws a checked exception,
* it will be wrapped into a {@link RuntimeException}
* Invokes a callable task.
*
* @param task a task to invoke
* @throws Exception {@code InterruptedException} or an exception that was thrown from the {@code task}
* @return the result of {@code task}'s invokation
*/
<
T
>
T
invoke
(
Callable
<
T
>
task
);
<
T
>
T
invoke
(
Callable
<
T
>
task
)
throws
Exception
;
}
/**
...
...
src/share/classes/sun/awt/shell/ShellFolderManager.java
浏览文件 @
cf59ffe6
/*
* Copyright 2000-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2000-200
9
Sun Microsystems, Inc. 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
...
...
@@ -108,12 +108,8 @@ class ShellFolderManager {
}
private
static
class
DirectInvoker
implements
ShellFolder
.
Invoker
{
public
<
T
>
T
invoke
(
Callable
<
T
>
task
)
{
try
{
public
<
T
>
T
invoke
(
Callable
<
T
>
task
)
throws
Exception
{
return
task
.
call
();
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
}
src/share/classes/sun/dyn/FilterGeneric.java
浏览文件 @
cf59ffe6
...
...
@@ -16,7 +16,7 @@
*
* 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 S
f, t
ifth Floor, Boston, MA 02110-1301 USA.
* Inc., 51 Franklin S
t, F
ifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
...
...
src/share/classes/sun/misc/URLClassPath.java
浏览文件 @
cf59ffe6
...
...
@@ -51,6 +51,7 @@ import java.security.PrivilegedAction;
import
java.security.PrivilegedExceptionAction
;
import
java.security.cert.Certificate
;
import
sun.misc.FileURLMapper
;
import
sun.net.util.URLUtil
;
/**
* This class is used to maintain a search path of URLs for loading classes
...
...
@@ -80,7 +81,7 @@ public class URLClassPath {
ArrayList
<
Loader
>
loaders
=
new
ArrayList
<
Loader
>();
/* Map of each URL opened to its corresponding Loader */
HashMap
<
URL
,
Loader
>
lmap
=
new
HashMap
<
URL
,
Loader
>();
HashMap
<
String
,
Loader
>
lmap
=
new
HashMap
<
String
,
Loader
>();
/* The jar protocol handler to use when creating new URLs */
private
URLStreamHandler
jarHandler
;
...
...
@@ -317,7 +318,8 @@ public class URLClassPath {
// Skip this URL if it already has a Loader. (Loader
// may be null in the case where URL has not been opened
// but is referenced by a JAR index.)
if
(
lmap
.
containsKey
(
url
))
{
String
urlNoFragString
=
URLUtil
.
urlNoFragString
(
url
);
if
(
lmap
.
containsKey
(
urlNoFragString
))
{
continue
;
}
// Otherwise, create a new Loader for the URL.
...
...
@@ -336,7 +338,7 @@ public class URLClassPath {
}
// Finally, add the Loader to the search path.
loaders
.
add
(
loader
);
lmap
.
put
(
url
,
loader
);
lmap
.
put
(
url
NoFragString
,
loader
);
}
return
loaders
.
get
(
index
);
}
...
...
@@ -576,7 +578,7 @@ public class URLClassPath {
private
JarIndex
index
;
private
MetaIndex
metaIndex
;
private
URLStreamHandler
handler
;
private
HashMap
<
URL
,
Loader
>
lmap
;
private
HashMap
<
String
,
Loader
>
lmap
;
private
boolean
closed
=
false
;
/*
...
...
@@ -584,7 +586,7 @@ public class URLClassPath {
* a JAR file.
*/
JarLoader
(
URL
url
,
URLStreamHandler
jarHandler
,
HashMap
<
URL
,
Loader
>
loaderMap
)
HashMap
<
String
,
Loader
>
loaderMap
)
throws
IOException
{
super
(
new
URL
(
"jar"
,
""
,
-
1
,
url
+
"!/"
,
jarHandler
));
...
...
@@ -663,8 +665,9 @@ public class URLClassPath {
try
{
URL
jarURL
=
new
URL
(
csu
,
jarfiles
[
i
]);
// If a non-null loader already exists, leave it alone.
if
(!
lmap
.
containsKey
(
jarURL
))
{
lmap
.
put
(
jarURL
,
null
);
String
urlNoFragString
=
URLUtil
.
urlNoFragString
(
jarURL
);
if
(!
lmap
.
containsKey
(
urlNoFragString
))
{
lmap
.
put
(
urlNoFragString
,
null
);
}
}
catch
(
MalformedURLException
e
)
{
continue
;
...
...
@@ -806,7 +809,7 @@ public class URLClassPath {
if
(
index
==
null
)
return
null
;
HashSet
<
URL
>
visited
=
new
HashSet
<
URL
>();
HashSet
<
String
>
visited
=
new
HashSet
<
String
>();
return
getResource
(
name
,
check
,
visited
);
}
...
...
@@ -818,7 +821,7 @@ public class URLClassPath {
* non-existent resource
*/
Resource
getResource
(
final
String
name
,
boolean
check
,
Set
<
URL
>
visited
)
{
Set
<
String
>
visited
)
{
Resource
res
;
Object
[]
jarFiles
;
...
...
@@ -843,7 +846,8 @@ public class URLClassPath {
try
{
url
=
new
URL
(
csu
,
jarName
);
if
((
newLoader
=
(
JarLoader
)
lmap
.
get
(
url
))
==
null
)
{
String
urlNoFragString
=
URLUtil
.
urlNoFragString
(
url
);
if
((
newLoader
=
(
JarLoader
)
lmap
.
get
(
urlNoFragString
))
==
null
)
{
/* no loader has been set up for this jar file
* before
*/
...
...
@@ -867,7 +871,7 @@ public class URLClassPath {
}
/* put it in the global hashtable */
lmap
.
put
(
url
,
newLoader
);
lmap
.
put
(
url
NoFragString
,
newLoader
);
}
}
catch
(
java
.
security
.
PrivilegedActionException
pae
)
{
continue
;
...
...
@@ -879,7 +883,7 @@ public class URLClassPath {
/* Note that the addition of the url to the list of visited
* jars incorporates a check for presence in the hashmap
*/
boolean
visitedURL
=
!
visited
.
add
(
url
);
boolean
visitedURL
=
!
visited
.
add
(
URLUtil
.
urlNoFragString
(
url
)
);
if
(!
visitedURL
)
{
try
{
newLoader
.
ensureOpen
();
...
...
src/
windows/classes/sun/security/mscapi/JarVerifier
.java
→
src/
share/classes/sun/net/util/URLUtil
.java
浏览文件 @
cf59ffe6
/*
* Copyright 200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 200
9
Sun Microsystems, Inc. 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
...
...
@@ -23,51 +23,58 @@
* have any questions.
*/
package
sun.net.util
;
package
sun.security.mscapi
;
// NOTE: this class is duplicated amongst SunJCE, SunPKCS11, and SunMSCAPI.
// All files should be kept in sync.
import
java.io.*
;
import
java.util.*
;
import
java.util.jar.*
;
import
java.net.URL
;
import
java.net.JarURLConnection
;
import
java.net.MalformedURLException
;
import
java.security.*
;
import
java.security.cert.*
;
import
java.security.cert.Certificate
;
/**
* This class verifies JAR files (and any supporting JAR files), and
* determines whether they may be used in this implementation.
*
* The JCE in OpenJDK has an open cryptographic interface, meaning it
* does not restrict which providers can be used. Compliance with
* United States export controls and with local law governing the
* import/export of products incorporating the JCE in the OpenJDK is
* the responsibility of the licensee.
*
* @since 1.7
* URL Utility class.
*/
final
class
JarVerifier
{
private
static
final
boolean
debug
=
false
;
public
class
URLUtil
{
/**
* Verify the JAR file is signed by an entity which has a certificate
* issued by a trusted CA.
* Returns a string form of the url suitable for use as a key in HashMap/Sets.
*
* Note: this is a temporary method and will change soon to use the
* exception chaining mechanism, which can provide more details
* as to why the verification failed.
* The string form should be behave in the same manner as the URL when
* compared for equality in a HashMap/Set, except that no nameservice
* lookup is done on the hostname (only string comparison), and the fragment
* is not considered.
*
* @param c the class to be verified.
* @return true if verification is successful.
* @see java.net.URLStreamHandler.sameFile(java.net.URL)
*/
static
boolean
verify
(
final
Class
c
)
{
return
true
;
public
static
String
urlNoFragString
(
URL
url
)
{
StringBuilder
strForm
=
new
StringBuilder
();
String
protocol
=
url
.
getProtocol
();
if
(
protocol
!=
null
)
{
/* protocol is compared case-insensitive, so convert to lowercase */
protocol
=
protocol
.
toLowerCase
();
strForm
.
append
(
protocol
);
strForm
.
append
(
"://"
);
}
String
host
=
url
.
getHost
();
if
(
host
!=
null
)
{
/* host is compared case-insensitive, so convert to lowercase */
host
=
host
.
toLowerCase
();
strForm
.
append
(
host
);
int
port
=
url
.
getPort
();
if
(
port
==
-
1
)
{
/* if no port is specificed then use the protocols
* default, if there is one */
port
=
url
.
getDefaultPort
();
}
if
(
port
!=
-
1
)
{
strForm
.
append
(
":"
).
append
(
port
);
}
}
String
file
=
url
.
getFile
();
if
(
file
!=
null
)
{
strForm
.
append
(
file
);
}
return
strForm
.
toString
();
}
}
src/share/classes/sun/security/pkcs11/JarVerifier.java
已删除
100644 → 0
浏览文件 @
d3726449
/*
* Copyright 2007 Sun Microsystems, Inc. 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. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package
sun.security.pkcs11
;
// NOTE: this class is duplicated amongst SunJCE, SunPKCS11, and SunMSCAPI.
// All files should be kept in sync.
import
java.io.*
;
import
java.util.*
;
import
java.util.jar.*
;
import
java.net.URL
;
import
java.net.JarURLConnection
;
import
java.net.MalformedURLException
;
import
java.security.*
;
import
java.security.cert.*
;
import
java.security.cert.Certificate
;
/**
* This class verifies JAR files (and any supporting JAR files), and
* determines whether they may be used in this implementation.
*
* The JCE in OpenJDK has an open cryptographic interface, meaning it
* does not restrict which providers can be used. Compliance with
* United States export controls and with local law governing the
* import/export of products incorporating the JCE in the OpenJDK is
* the responsibility of the licensee.
*
* @since 1.7
*/
final
class
JarVerifier
{
private
static
final
boolean
debug
=
false
;
/**
* Verify the JAR file is signed by an entity which has a certificate
* issued by a trusted CA.
*
* Note: this is a temporary method and will change soon to use the
* exception chaining mechanism, which can provide more details
* as to why the verification failed.
*
* @param c the class to be verified.
* @return true if verification is successful.
*/
static
boolean
verify
(
final
Class
c
)
{
return
true
;
}
}
src/share/classes/sun/security/pkcs11/SunPKCS11.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -390,24 +390,6 @@ public final class SunPKCS11 extends AuthProvider {
return
sb
.
toString
();
}
// set to true once self verification is complete
private
static
volatile
boolean
integrityVerified
;
static
void
verifySelfIntegrity
(
Class
c
)
{
if
(
integrityVerified
)
{
return
;
}
doVerifySelfIntegrity
(
c
);
}
private
static
synchronized
void
doVerifySelfIntegrity
(
Class
c
)
{
integrityVerified
=
JarVerifier
.
verify
(
c
);
if
(
integrityVerified
==
false
)
{
throw
new
ProviderException
(
"The SunPKCS11 provider may have been tampered with."
);
}
}
public
boolean
equals
(
Object
obj
)
{
return
this
==
obj
;
}
...
...
@@ -923,7 +905,6 @@ public final class SunPKCS11 extends AuthProvider {
if
(
type
==
MD
)
{
return
new
P11Digest
(
token
,
algorithm
,
mechanism
);
}
else
if
(
type
==
CIP
)
{
verifySelfIntegrity
(
getClass
());
if
(
algorithm
.
startsWith
(
"RSA"
))
{
return
new
P11RSACipher
(
token
,
algorithm
,
mechanism
);
}
else
{
...
...
@@ -932,12 +913,10 @@ public final class SunPKCS11 extends AuthProvider {
}
else
if
(
type
==
SIG
)
{
return
new
P11Signature
(
token
,
algorithm
,
mechanism
);
}
else
if
(
type
==
MAC
)
{
verifySelfIntegrity
(
getClass
());
return
new
P11Mac
(
token
,
algorithm
,
mechanism
);
}
else
if
(
type
==
KPG
)
{
return
new
P11KeyPairGenerator
(
token
,
algorithm
,
mechanism
);
}
else
if
(
type
==
KA
)
{
verifySelfIntegrity
(
getClass
());
if
(
algorithm
.
equals
(
"ECDH"
))
{
return
new
P11ECDHKeyAgreement
(
token
,
algorithm
,
mechanism
);
}
else
{
...
...
@@ -946,11 +925,8 @@ public final class SunPKCS11 extends AuthProvider {
}
else
if
(
type
==
KF
)
{
return
token
.
getKeyFactory
(
algorithm
);
}
else
if
(
type
==
SKF
)
{
verifySelfIntegrity
(
getClass
());
return
new
P11SecretKeyFactory
(
token
,
algorithm
);
}
else
if
(
type
==
KG
)
{
verifySelfIntegrity
(
getClass
());
// reference equality
if
(
algorithm
==
"SunTlsRsaPremasterSecret"
)
{
return
new
P11TlsRsaPremasterSecretGenerator
(
...
...
src/share/classes/sun/swing/FilePane.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -905,8 +904,8 @@ public class FilePane extends JPanel implements PropertyChangeListener {
@Override
public
void
sort
()
{
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
throws
Exception
{
ShellFolder
.
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
{
DetailsTableRowSorter
.
super
.
sort
();
return
null
;
}
...
...
src/share/classes/sun/swing/MenuItemLayoutHelper.java
浏览文件 @
cf59ffe6
...
...
@@ -718,10 +718,10 @@ public class MenuItemLayoutHelper {
}
private
void
alignRect
(
Rectangle
rect
,
int
alignment
,
int
origWidth
)
{
if
(
alignment
!=
SwingUtilities
.
LEF
T
)
{
if
(
alignment
==
SwingConstants
.
RIGH
T
)
{
rect
.
x
=
rect
.
x
+
rect
.
width
-
origWidth
;
rect
.
width
=
origWidth
;
}
rect
.
width
=
origWidth
;
}
protected
void
layoutIconAndTextInLabelRect
(
LayoutResult
lr
)
{
...
...
src/solaris/classes/sun/awt/X11/XRobotPeer.java
浏览文件 @
cf59ffe6
...
...
@@ -27,6 +27,7 @@ package sun.awt.X11;
import
java.awt.*
;
import
java.awt.peer.*
;
import
sun.awt.X11GraphicsConfig
;
import
sun.awt.SunToolkit
;
class
XRobotPeer
implements
RobotPeer
{
private
X11GraphicsConfig
xgc
=
null
;
...
...
@@ -38,7 +39,8 @@ class XRobotPeer implements RobotPeer {
XRobotPeer
(
GraphicsConfiguration
gc
)
{
this
.
xgc
=
(
X11GraphicsConfig
)
gc
;
setup
();
SunToolkit
tk
=
(
SunToolkit
)
Toolkit
.
getDefaultToolkit
();
setup
(
tk
.
getNumberOfButtons
());
}
public
void
dispose
()
{
...
...
@@ -81,7 +83,7 @@ class XRobotPeer implements RobotPeer {
return
pixelArray
;
}
private
static
native
synchronized
void
setup
();
private
static
native
synchronized
void
setup
(
int
numberOfButtons
);
private
static
native
synchronized
void
mouseMoveImpl
(
X11GraphicsConfig
xgc
,
int
x
,
int
y
);
private
static
native
synchronized
void
mousePressImpl
(
int
buttons
);
...
...
src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java
浏览文件 @
cf59ffe6
...
...
@@ -25,12 +25,14 @@
package
sun.net.www.protocol.jar
;
import
java.io.*
;
import
java.net.*
;
import
java.util.*
;
import
java.util.jar.*
;
import
java.util.zip.ZipFile
;
import
java.io.IOException
;
import
java.io.FileNotFoundException
;
import
java.net.URL
;
import
java.net.URLConnection
;
import
java.util.HashMap
;
import
java.util.jar.JarFile
;
import
java.security.Permission
;
import
sun.net.util.URLUtil
;
/* A factory for cached JAR file. This class is used to both retrieve
* and cache Jar files.
...
...
@@ -41,13 +43,13 @@ import java.security.Permission;
class
JarFileFactory
implements
URLJarFile
.
URLJarFileCloseController
{
/* the url to file cache */
private
static
HashMap
fileCache
=
new
HashMap
();
private
static
HashMap
<
String
,
JarFile
>
fileCache
=
new
HashMap
<
String
,
JarFile
>
();
/* the file to url cache */
private
static
HashMap
urlCache
=
new
HashMap
();
private
static
HashMap
<
JarFile
,
URL
>
urlCache
=
new
HashMap
<
JarFile
,
URL
>
();
URLConnection
getConnection
(
JarFile
jarFile
)
throws
IOException
{
URL
u
=
(
URL
)
urlCache
.
get
(
jarFile
);
URL
u
=
urlCache
.
get
(
jarFile
);
if
(
u
!=
null
)
return
u
.
openConnection
();
...
...
@@ -72,7 +74,7 @@ class JarFileFactory implements URLJarFile.URLJarFileCloseController {
synchronized
(
this
)
{
result
=
getCachedJarFile
(
url
);
if
(
result
==
null
)
{
fileCache
.
put
(
url
,
local_result
);
fileCache
.
put
(
URLUtil
.
urlNoFragString
(
url
)
,
local_result
);
urlCache
.
put
(
local_result
,
url
);
result
=
local_result
;
}
else
{
...
...
@@ -97,15 +99,15 @@ class JarFileFactory implements URLJarFile.URLJarFileCloseController {
* remove the JarFile from the cache
*/
public
void
close
(
JarFile
jarFile
)
{
URL
urlRemoved
=
(
URL
)
urlCache
.
remove
(
jarFile
);
URL
urlRemoved
=
urlCache
.
remove
(
jarFile
);
if
(
urlRemoved
!=
null
)
{
fileCache
.
remove
(
urlRemoved
);
fileCache
.
remove
(
URLUtil
.
urlNoFragString
(
urlRemoved
)
);
}
}
private
JarFile
getCachedJarFile
(
URL
url
)
{
JarFile
result
=
(
JarFile
)
fileCache
.
get
(
url
);
JarFile
result
=
fileCache
.
get
(
URLUtil
.
urlNoFragString
(
url
)
);
/* if the JAR file is cached, the permission will always be there */
if
(
result
!=
null
)
{
...
...
src/solaris/native/sun/awt/awt_Robot.c
浏览文件 @
cf59ffe6
...
...
@@ -51,9 +51,8 @@
extern
struct
X11GraphicsConfigIDs
x11GraphicsConfigIDs
;
extern
int32_t
getNumButtons
();
static
jint
*
masks
;
static
jint
num_buttons
;
static
int32_t
isXTestAvailable
()
{
int32_t
major_opcode
,
first_event
,
first_error
;
...
...
@@ -164,34 +163,34 @@ static XImage *getWindowImage(Display * display, Window window,
/*********************************************************************************************/
// this should be called from XRobotPeer constructor
JNIEXPORT
void
JNICALL
Java_sun_awt_X11_XRobotPeer_setup
(
JNIEnv
*
env
,
jclass
cls
)
{
Java_sun_awt_X11_XRobotPeer_setup
(
JNIEnv
*
env
,
jclass
cls
,
jint
numberOfButtons
)
{
int32_t
xtestAvailable
;
// this should be called from XRobotPeer constructor
DTRACE_PRINTLN
(
"RobotPeer: setup()"
);
num_buttons
=
numberOfButtons
;
jclass
inputEventClazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/event/InputEvent"
);
jmethodID
getButtonDownMasksID
=
(
*
env
)
->
GetStaticMethodID
(
env
,
inputEventClazz
,
"getButtonDownMasks"
,
"()[I"
);
jintArray
obj
=
(
jintArray
)(
*
env
)
->
CallStaticObjectMethod
(
env
,
inputEventClazz
,
getButtonDownMasksID
);
jsize
len
=
(
*
env
)
->
GetArrayLength
(
env
,
obj
);
jint
*
tmp
=
(
*
env
)
->
GetIntArrayElements
(
env
,
obj
,
JNI_FALSE
);
masks
=
(
jint
*
)
malloc
(
sizeof
(
jint
)
*
len
);
masks
=
(
jint
*
)
malloc
(
sizeof
(
jint
)
*
num_buttons
);
if
(
masks
==
(
jint
*
)
NULL
)
{
JNU_ThrowOutOfMemoryError
((
JNIEnv
*
)
JNU_GetEnv
(
jvm
,
JNI_VERSION_1_2
),
NULL
);
goto
finally
;
}
int
i
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
for
(
i
=
0
;
i
<
num_buttons
;
i
++
)
{
masks
[
i
]
=
tmp
[
i
];
}
(
*
env
)
->
ReleaseIntArrayElements
(
env
,
obj
,
tmp
,
0
);
(
*
env
)
->
DeleteLocalRef
(
env
,
obj
);
DTRACE_PRINTLN
(
"RobotPeer: setup()"
);
AWT_LOCK
();
xtestAvailable
=
isXTestAvailable
();
DTRACE_PRINTLN1
(
"RobotPeer: XTest available = %d"
,
xtestAvailable
);
if
(
!
xtestAvailable
)
{
...
...
@@ -338,8 +337,6 @@ void mouseAction(JNIEnv *env,
{
AWT_LOCK
();
int32_t
num_buttons
=
getNumButtons
();
//from XToolkit.c
DTRACE_PRINTLN1
(
"RobotPeer: mouseAction(%i)"
,
buttonMask
);
DTRACE_PRINTLN1
(
"RobotPeer: mouseAction, press = %d"
,
isMousePress
);
...
...
src/windows/classes/sun/awt/shell/Win32ShellFolder2.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -29,7 +29,6 @@ import java.awt.Image;
import
java.awt.Toolkit
;
import
java.awt.image.BufferedImage
;
import
java.io.File
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.concurrent.*
;
...
...
@@ -185,8 +184,8 @@ final class Win32ShellFolder2 extends ShellFolder {
boolean
disposed
;
public
void
dispose
()
{
if
(
disposed
)
return
;
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
throws
Exception
{
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
{
if
(
relativePIDL
!=
0
)
{
releasePIDL
(
relativePIDL
);
}
...
...
@@ -224,7 +223,7 @@ final class Win32ShellFolder2 extends ShellFolder {
*/
private
boolean
isPersonal
;
private
static
String
composePathForCsidl
(
int
csidl
)
throws
IOException
{
private
static
String
composePathForCsidl
(
int
csidl
)
throws
IOException
,
InterruptedException
{
String
path
=
getFileSystemPath
(
csidl
);
return
path
==
null
?
(
"ShellFolder: 0x"
+
Integer
.
toHexString
(
csidl
))
...
...
@@ -235,12 +234,13 @@ final class Win32ShellFolder2 extends ShellFolder {
* Create a system special shell folder, such as the
* desktop or Network Neighborhood.
*/
Win32ShellFolder2
(
final
int
csidl
)
throws
IOException
{
Win32ShellFolder2
(
final
int
csidl
)
throws
IOException
,
InterruptedException
{
// Desktop is parent of DRIVES and NETWORK, not necessarily
// other special shell folders.
super
(
null
,
composePathForCsidl
(
csidl
));
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
throws
Exception
{
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
throws
InterruptedException
{
if
(
csidl
==
DESKTOP
)
{
initDesktop
();
}
else
{
...
...
@@ -276,7 +276,7 @@ final class Win32ShellFolder2 extends ShellFolder {
}
return
null
;
}
});
}
,
InterruptedException
.
class
);
sun
.
java2d
.
Disposer
.
addRecord
(
this
,
disposer
);
}
...
...
@@ -296,13 +296,13 @@ final class Win32ShellFolder2 extends ShellFolder {
/**
* Creates a shell folder with a parent and relative PIDL
*/
Win32ShellFolder2
(
final
Win32ShellFolder2
parent
,
final
long
relativePIDL
)
{
Win32ShellFolder2
(
final
Win32ShellFolder2
parent
,
final
long
relativePIDL
)
throws
InterruptedException
{
super
(
parent
,
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
throws
Exception
{
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
{
return
getFileSystemPath
(
parent
.
getIShellFolder
(),
relativePIDL
);
}
})
}
,
RuntimeException
.
class
)
);
this
.
disposer
.
relativePIDL
=
relativePIDL
;
getAbsolutePath
();
...
...
@@ -335,8 +335,8 @@ final class Win32ShellFolder2 extends ShellFolder {
* drive (normally "C:\").
*/
protected
Object
writeReplace
()
throws
java
.
io
.
ObjectStreamException
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
File
>()
{
public
File
call
()
throws
Exception
{
return
invoke
(
new
Callable
<
File
>()
{
public
File
call
()
{
if
(
isFileSystem
())
{
return
new
File
(
getPath
());
}
else
{
...
...
@@ -398,11 +398,11 @@ final class Win32ShellFolder2 extends ShellFolder {
/**
* Accessor for IShellFolder
*/
p
ublic
long
getIShellFolder
()
{
p
rivate
long
getIShellFolder
()
{
if
(
disposer
.
pIShellFolder
==
0
)
{
disposer
.
pIShellFolder
=
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Long
>()
{
public
Long
call
()
throws
Exception
{
try
{
disposer
.
pIShellFolder
=
invoke
(
new
Callable
<
Long
>()
{
public
Long
call
()
{
assert
(
isDirectory
());
assert
(
parent
!=
null
);
long
parentIShellFolder
=
getParentIShellFolder
();
...
...
@@ -421,7 +421,10 @@ final class Win32ShellFolder2 extends ShellFolder {
}
return
pIShellFolder
;
}
});
},
RuntimeException
.
class
);
}
catch
(
InterruptedException
e
)
{
// Ignore error
}
}
return
disposer
.
pIShellFolder
;
}
...
...
@@ -505,18 +508,23 @@ final class Win32ShellFolder2 extends ShellFolder {
}
if
(
parent
==
rhs
.
parent
||
parent
.
equals
(
rhs
.
parent
))
{
try
{
return
pidlsEqual
(
getParentIShellFolder
(),
disposer
.
relativePIDL
,
rhs
.
disposer
.
relativePIDL
);
}
catch
(
InterruptedException
e
)
{
return
false
;
}
}
return
false
;
}
private
static
boolean
pidlsEqual
(
final
long
pIShellFolder
,
final
long
pidl1
,
final
long
pidl2
)
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Boolean
>()
{
public
Boolean
call
()
throws
Exception
{
return
(
compareIDs
(
pIShellFolder
,
pidl1
,
pidl2
)
==
0
);
private
static
boolean
pidlsEqual
(
final
long
pIShellFolder
,
final
long
pidl1
,
final
long
pidl2
)
throws
InterruptedException
{
return
invoke
(
new
Callable
<
Boolean
>()
{
public
Boolean
call
()
{
return
compareIDs
(
pIShellFolder
,
pidl1
,
pidl2
)
==
0
;
}
});
}
,
RuntimeException
.
class
);
}
// NOTE: this method uses COM and must be called on the 'COM thread'. See ComInvoker for the details
...
...
@@ -539,14 +547,16 @@ final class Win32ShellFolder2 extends ShellFolder {
* Return whether the given attribute flag is set for this object
*/
public
boolean
hasAttribute
(
final
int
attribute
)
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Boolean
>()
{
public
Boolean
call
()
throws
Exception
{
Boolean
result
=
invoke
(
new
Callable
<
Boolean
>()
{
public
Boolean
call
()
{
// Caching at this point doesn't seem to be cost efficient
return
(
getAttributes0
(
getParentIShellFolder
(),
getRelativePIDL
(),
attribute
)
&
attribute
)
!=
0
;
}
});
return
result
!=
null
&&
result
;
}
/**
...
...
@@ -561,9 +571,8 @@ final class Win32ShellFolder2 extends ShellFolder {
private
static
native
int
getAttributes0
(
long
pParentIShellFolder
,
long
pIDL
,
int
attrsMask
);
// Return the path to the underlying file system object
// Should be called from the COM thread
private
static
String
getFileSystemPath
(
final
long
parentIShellFolder
,
final
long
relativePIDL
)
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
throws
Exception
{
int
linkedFolder
=
ATTRIB_LINK
|
ATTRIB_FOLDER
;
if
(
parentIShellFolder
==
Win32ShellFolderManager2
.
getNetwork
().
getIShellFolder
()
&&
getAttributes0
(
parentIShellFolder
,
relativePIDL
,
linkedFolder
)
==
linkedFolder
)
{
...
...
@@ -577,16 +586,14 @@ final class Win32ShellFolder2 extends ShellFolder {
}
return
getDisplayNameOf
(
parentIShellFolder
,
relativePIDL
,
SHGDN_FORPARSING
);
}
});
}
// Needs to be accessible to Win32ShellFolderManager2
static
String
getFileSystemPath
(
final
int
csidl
)
throws
IOException
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
throws
Exception
{
static
String
getFileSystemPath
(
final
int
csidl
)
throws
IOException
,
InterruptedException
{
return
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
throws
IO
Exception
{
return
getFileSystemPath0
(
csidl
);
}
});
}
,
IOException
.
class
);
}
// NOTE: this method uses COM and must be called on the 'COM thread'. See ComInvoker for the details
...
...
@@ -630,13 +637,14 @@ final class Win32ShellFolder2 extends ShellFolder {
*/
// Returns an IEnumIDList interface for an IShellFolder. The value
// returned must be released using releaseEnumObjects().
private
long
getEnumObjects
(
long
pIShellFolder
,
final
boolean
includeHiddenFiles
)
{
final
boolean
isDesktop
=
(
disposer
.
pIShellFolder
==
getDesktopIShellFolder
());
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Long
>()
{
public
Long
call
()
throws
Exception
{
private
long
getEnumObjects
(
final
boolean
includeHiddenFiles
)
throws
InterruptedException
{
return
invoke
(
new
Callable
<
Long
>()
{
public
Long
call
()
{
boolean
isDesktop
=
disposer
.
pIShellFolder
==
getDesktopIShellFolder
();
return
getEnumObjects
(
disposer
.
pIShellFolder
,
isDesktop
,
includeHiddenFiles
);
}
});
}
,
RuntimeException
.
class
);
}
// Returns an IEnumIDList interface for an IShellFolder. The value
...
...
@@ -670,8 +678,9 @@ final class Win32ShellFolder2 extends ShellFolder {
security
.
checkRead
(
getPath
());
}
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
File
[]>()
{
public
File
[]
call
()
throws
Exception
{
try
{
return
invoke
(
new
Callable
<
File
[]>()
{
public
File
[]
call
()
throws
InterruptedException
{
if
(!
isDirectory
())
{
return
null
;
}
...
...
@@ -691,7 +700,7 @@ final class Win32ShellFolder2 extends ShellFolder {
long
pIShellFolder
=
getIShellFolder
();
// Now we can enumerate the objects in this folder.
ArrayList
<
Win32ShellFolder2
>
list
=
new
ArrayList
<
Win32ShellFolder2
>();
long
pEnumObjects
=
getEnumObjects
(
pIShellFolder
,
includeHiddenFiles
);
long
pEnumObjects
=
getEnumObjects
(
includeHiddenFiles
);
if
(
pEnumObjects
!=
0
)
{
long
childPIDL
;
int
testedAttrs
=
ATTRIB_FILESYSTEM
|
ATTRIB_FILESYSANCESTOR
;
...
...
@@ -721,7 +730,10 @@ final class Win32ShellFolder2 extends ShellFolder {
?
new
File
[
0
]
:
list
.
toArray
(
new
ShellFolder
[
list
.
size
()]);
}
});
},
InterruptedException
.
class
);
}
catch
(
InterruptedException
e
)
{
return
new
File
[
0
];
}
}
...
...
@@ -730,13 +742,13 @@ final class Win32ShellFolder2 extends ShellFolder {
*
* @return The child shellfolder, or null if not found.
*/
Win32ShellFolder2
getChildByPath
(
final
String
filePath
)
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Win32ShellFolder2
>()
{
public
Win32ShellFolder2
call
()
throws
Exception
{
Win32ShellFolder2
getChildByPath
(
final
String
filePath
)
throws
InterruptedException
{
return
invoke
(
new
Callable
<
Win32ShellFolder2
>()
{
public
Win32ShellFolder2
call
()
throws
Interrupted
Exception
{
long
pIShellFolder
=
getIShellFolder
();
long
pEnumObjects
=
getEnumObjects
(
pIShellFolder
,
true
);
long
pEnumObjects
=
getEnumObjects
(
true
);
Win32ShellFolder2
child
=
null
;
long
childPIDL
=
0
;
long
childPIDL
;
while
((
childPIDL
=
getNextChild
(
pEnumObjects
))
!=
0
)
{
if
(
getAttributes0
(
pIShellFolder
,
childPIDL
,
ATTRIB_FILESYSTEM
)
!=
0
)
{
...
...
@@ -753,7 +765,7 @@ final class Win32ShellFolder2 extends ShellFolder {
releaseEnumObjects
(
pEnumObjects
);
return
child
;
}
});
}
,
InterruptedException
.
class
);
}
private
Boolean
cachedIsLink
;
...
...
@@ -791,8 +803,8 @@ final class Win32ShellFolder2 extends ShellFolder {
}
private
ShellFolder
getLinkLocation
(
final
boolean
resolve
)
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
ShellFolder
>()
{
public
ShellFolder
call
()
throws
Exception
{
return
invoke
(
new
Callable
<
ShellFolder
>()
{
public
ShellFolder
call
()
{
if
(!
isLink
())
{
return
null
;
}
...
...
@@ -805,6 +817,8 @@ final class Win32ShellFolder2 extends ShellFolder {
location
=
Win32ShellFolderManager2
.
createShellFolderFromRelativePIDL
(
getDesktop
(),
linkLocationPIDL
);
}
catch
(
InterruptedException
e
)
{
// Return null
}
catch
(
InternalError
e
)
{
// Could be a link to a non-bindable object, such as a network connection
// TODO: getIShellFolder() should throw FileNotFoundException instead
...
...
@@ -816,19 +830,12 @@ final class Win32ShellFolder2 extends ShellFolder {
}
// Parse a display name into a PIDL relative to the current IShellFolder.
long
parseDisplayName
(
final
String
name
)
throws
FileNotFoundException
{
try
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Long
>()
{
public
Long
call
()
throws
Exception
{
long
parseDisplayName
(
final
String
name
)
throws
IOException
,
InterruptedException
{
return
invoke
(
new
Callable
<
Long
>()
{
public
Long
call
()
throws
IOException
{
return
parseDisplayName0
(
getIShellFolder
(),
name
);
}
});
}
catch
(
RuntimeException
e
)
{
if
(
e
.
getCause
()
instanceof
IOException
)
{
throw
new
FileNotFoundException
(
"Could not find file "
+
name
);
}
throw
e
;
}
},
IOException
.
class
);
}
// NOTE: this method uses COM and must be called on the 'COM thread'. See ComInvoker for the details
...
...
@@ -846,8 +853,8 @@ final class Win32ShellFolder2 extends ShellFolder {
public
String
getDisplayName
()
{
if
(
displayName
==
null
)
{
displayName
=
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
throws
Exception
{
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
{
return
getDisplayNameOf
(
getParentIShellFolder
(),
getRelativePIDL
(),
SHGDN_NORMAL
);
}
...
...
@@ -867,8 +874,8 @@ final class Win32ShellFolder2 extends ShellFolder {
if
(
folderType
==
null
)
{
final
long
absolutePIDL
=
getAbsolutePIDL
();
folderType
=
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
throws
Exception
{
invoke
(
new
Callable
<
String
>()
{
public
String
call
()
{
return
getFolderType
(
absolutePIDL
);
}
});
...
...
@@ -926,15 +933,12 @@ final class Win32ShellFolder2 extends ShellFolder {
public
static
native
int
[]
getFileChooserBitmapBits
();
// Should be called from the COM thread
private
long
getIShellIcon
()
{
if
(
pIShellIcon
==
-
1L
)
{
pIShellIcon
=
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Long
>()
{
public
Long
call
()
throws
Exception
{
return
getIShellIcon
(
getIShellFolder
());
}
});
pIShellIcon
=
getIShellIcon
(
getIShellFolder
());
}
return
pIShellIcon
;
}
...
...
@@ -988,8 +992,8 @@ final class Win32ShellFolder2 extends ShellFolder {
Image
icon
=
getLargeIcon
?
largeIcon
:
smallIcon
;
if
(
icon
==
null
)
{
icon
=
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Image
>()
{
public
Image
call
()
throws
Exception
{
invoke
(
new
Callable
<
Image
>()
{
public
Image
call
()
{
Image
newIcon
=
null
;
if
(
isFileSystem
())
{
long
parentIShellIcon
=
(
parent
!=
null
)
...
...
@@ -1113,8 +1117,8 @@ final class Win32ShellFolder2 extends ShellFolder {
private
static
final
int
LVCFMT_CENTER
=
2
;
public
ShellFolderColumnInfo
[]
getFolderColumns
()
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
ShellFolderColumnInfo
[]>()
{
public
ShellFolderColumnInfo
[]
call
()
throws
Exception
{
return
invoke
(
new
Callable
<
ShellFolderColumnInfo
[]>()
{
public
ShellFolderColumnInfo
[]
call
()
{
ShellFolderColumnInfo
[]
columns
=
doGetColumnInfo
(
getIShellFolder
());
if
(
columns
!=
null
)
{
...
...
@@ -1143,8 +1147,8 @@ final class Win32ShellFolder2 extends ShellFolder {
}
public
Object
getFolderColumnValue
(
final
int
column
)
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Object
>()
{
public
Object
call
()
throws
Exception
{
return
invoke
(
new
Callable
<
Object
>()
{
public
Object
call
()
{
return
doGetColumnValue
(
getParentIShellFolder
(),
getRelativePIDL
(),
column
);
}
});
...
...
@@ -1163,8 +1167,8 @@ final class Win32ShellFolder2 extends ShellFolder {
public
void
sortChildren
(
final
List
<?
extends
File
>
files
)
{
// To avoid loads of synchronizations with Invoker and improve performance we
// synchronize the whole code of the sort method once
getInvoker
().
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
throws
Exception
{
invoke
(
new
Callable
<
Void
>()
{
public
Void
call
()
{
Collections
.
sort
(
files
,
new
ColumnComparator
(
getIShellFolder
(),
0
));
return
null
;
...
...
@@ -1184,8 +1188,8 @@ final class Win32ShellFolder2 extends ShellFolder {
// compares 2 objects within this folder by the specified column
public
int
compare
(
final
File
o
,
final
File
o1
)
{
return
ShellFolder
.
getInvoker
().
invoke
(
new
Callable
<
Integer
>()
{
public
Integer
call
()
throws
Exception
{
Integer
result
=
invoke
(
new
Callable
<
Integer
>()
{
public
Integer
call
()
{
if
(
o
instanceof
Win32ShellFolder2
&&
o1
instanceof
Win32ShellFolder2
)
{
// delegates comparison to native method
...
...
@@ -1197,6 +1201,8 @@ final class Win32ShellFolder2 extends ShellFolder {
return
0
;
}
});
return
result
==
null
?
0
:
result
;
}
}
}
src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java
浏览文件 @
cf59ffe6
/*
* Copyright 2003-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-200
9
Sun Microsystems, Inc. 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
...
...
@@ -58,10 +58,15 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
}
public
ShellFolder
createShellFolder
(
File
file
)
throws
FileNotFoundException
{
try
{
return
createShellFolder
(
getDesktop
(),
file
);
}
catch
(
InterruptedException
e
)
{
throw
new
FileNotFoundException
(
"Execution was interrupted"
);
}
}
static
Win32ShellFolder2
createShellFolder
(
Win32ShellFolder2
parent
,
File
file
)
throws
FileNotFoundException
{
static
Win32ShellFolder2
createShellFolder
(
Win32ShellFolder2
parent
,
File
file
)
throws
FileNotFoundException
,
InterruptedException
{
long
pIDL
;
try
{
pIDL
=
parent
.
parseDisplayName
(
file
.
getCanonicalPath
());
...
...
@@ -77,7 +82,8 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
return
folder
;
}
static
Win32ShellFolder2
createShellFolderFromRelativePIDL
(
Win32ShellFolder2
parent
,
long
pIDL
)
{
static
Win32ShellFolder2
createShellFolderFromRelativePIDL
(
Win32ShellFolder2
parent
,
long
pIDL
)
throws
InterruptedException
{
// Walk down this relative pIDL, creating new nodes for each of the entries
while
(
pIDL
!=
0
)
{
long
curPIDL
=
Win32ShellFolder2
.
copyFirstPIDLEntry
(
pIDL
);
...
...
@@ -108,7 +114,9 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
try
{
desktop
=
new
Win32ShellFolder2
(
DESKTOP
);
}
catch
(
IOException
e
)
{
desktop
=
null
;
// Ignore error
}
catch
(
InterruptedException
e
)
{
// Ignore error
}
}
return
desktop
;
...
...
@@ -119,7 +127,9 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
try
{
drives
=
new
Win32ShellFolder2
(
DRIVES
);
}
catch
(
IOException
e
)
{
drives
=
null
;
// Ignore error
}
catch
(
InterruptedException
e
)
{
// Ignore error
}
}
return
drives
;
...
...
@@ -132,8 +142,10 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
if
(
path
!=
null
)
{
recent
=
createShellFolder
(
getDesktop
(),
new
File
(
path
));
}
}
catch
(
InterruptedException
e
)
{
// Ignore error
}
catch
(
IOException
e
)
{
recent
=
null
;
// Ignore error
}
}
return
recent
;
...
...
@@ -144,7 +156,9 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
try
{
network
=
new
Win32ShellFolder2
(
NETWORK
);
}
catch
(
IOException
e
)
{
network
=
null
;
// Ignore error
}
catch
(
InterruptedException
e
)
{
// Ignore error
}
}
return
network
;
...
...
@@ -164,8 +178,10 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
personal
.
setIsPersonal
();
}
}
}
catch
(
InterruptedException
e
)
{
// Ignore error
}
catch
(
IOException
e
)
{
personal
=
null
;
// Ignore error
}
}
return
personal
;
...
...
@@ -267,6 +283,9 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
}
}
catch
(
IOException
e
)
{
// Skip this value
}
catch
(
InterruptedException
e
)
{
// Return empty result
return
new
File
[
0
];
}
}
while
(
value
!=
null
);
...
...
@@ -476,33 +495,39 @@ public class Win32ShellFolderManager2 extends ShellFolderManager {
return
comThread
;
}
public
<
T
>
T
invoke
(
Callable
<
T
>
task
)
{
try
{
public
<
T
>
T
invoke
(
Callable
<
T
>
task
)
throws
Exception
{
if
(
Thread
.
currentThread
()
==
comThread
)
{
// if it's already called from the COM
// thread, we don't need to delegate the task
return
task
.
call
();
}
else
{
while
(
true
)
{
Future
<
T
>
future
=
submit
(
task
);
Future
<
T
>
future
;
try
{
future
=
submit
(
task
);
}
catch
(
RejectedExecutionException
e
)
{
throw
new
InterruptedException
(
e
.
getMessage
());
}
try
{
return
future
.
get
();
}
catch
(
InterruptedException
e
)
{
// Repeat the attempt
future
.
cancel
(
true
);
throw
e
;
}
catch
(
ExecutionException
e
)
{
Throwable
cause
=
e
.
getCause
();
if
(
cause
instanceof
Exception
)
{
throw
(
Exception
)
cause
;
}
}
}
}
catch
(
Exception
e
)
{
Throwable
cause
=
(
e
instanceof
ExecutionException
)
?
e
.
getCause
()
:
e
;
if
(
cause
instanceof
RuntimeException
)
{
throw
(
RuntimeException
)
cause
;
}
if
(
cause
instanceof
Error
)
{
throw
(
Error
)
cause
;
}
throw
new
RuntimeException
(
cause
);
throw
new
RuntimeException
(
"Unexpected error"
,
cause
);
}
}
}
}
...
...
src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java
浏览文件 @
cf59ffe6
...
...
@@ -25,12 +25,14 @@
package
sun.net.www.protocol.jar
;
import
java.io.*
;
import
java.net.*
;
import
java.util.*
;
import
java.util.jar.*
;
import
java.util.zip.ZipFile
;
import
java.io.IOException
;
import
java.io.FileNotFoundException
;
import
java.net.URL
;
import
java.net.URLConnection
;
import
java.util.HashMap
;
import
java.util.jar.JarFile
;
import
java.security.Permission
;
import
sun.net.util.URLUtil
;
/* A factory for cached JAR file. This class is used to both retrieve
* and cache Jar files.
...
...
@@ -41,13 +43,13 @@ import java.security.Permission;
class
JarFileFactory
implements
URLJarFile
.
URLJarFileCloseController
{
/* the url to file cache */
private
static
HashMap
fileCache
=
new
HashMap
();
private
static
HashMap
<
String
,
JarFile
>
fileCache
=
new
HashMap
<
String
,
JarFile
>
();
/* the file to url cache */
private
static
HashMap
urlCache
=
new
HashMap
();
private
static
HashMap
<
JarFile
,
URL
>
urlCache
=
new
HashMap
<
JarFile
,
URL
>
();
URLConnection
getConnection
(
JarFile
jarFile
)
throws
IOException
{
URL
u
=
(
URL
)
urlCache
.
get
(
jarFile
);
URL
u
=
urlCache
.
get
(
jarFile
);
if
(
u
!=
null
)
return
u
.
openConnection
();
...
...
@@ -82,7 +84,7 @@ class JarFileFactory implements URLJarFile.URLJarFileCloseController {
synchronized
(
this
)
{
result
=
getCachedJarFile
(
url
);
if
(
result
==
null
)
{
fileCache
.
put
(
url
,
local_result
);
fileCache
.
put
(
URLUtil
.
urlNoFragString
(
url
)
,
local_result
);
urlCache
.
put
(
local_result
,
url
);
result
=
local_result
;
}
else
{
...
...
@@ -107,14 +109,14 @@ class JarFileFactory implements URLJarFile.URLJarFileCloseController {
* remove the JarFile from the cache
*/
public
void
close
(
JarFile
jarFile
)
{
URL
urlRemoved
=
(
URL
)
urlCache
.
remove
(
jarFile
);
URL
urlRemoved
=
urlCache
.
remove
(
jarFile
);
if
(
urlRemoved
!=
null
)
{
fileCache
.
remove
(
urlRemoved
);
fileCache
.
remove
(
URLUtil
.
urlNoFragString
(
urlRemoved
)
);
}
}
private
JarFile
getCachedJarFile
(
URL
url
)
{
JarFile
result
=
(
JarFile
)
fileCache
.
get
(
url
);
JarFile
result
=
fileCache
.
get
(
URLUtil
.
urlNoFragString
(
url
)
);
/* if the JAR file is cached, the permission will always be there */
if
(
result
!=
null
)
{
...
...
src/windows/classes/sun/security/mscapi/RSACipher.java
浏览文件 @
cf59ffe6
/*
* Copyright 2005-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-200
9
Sun Microsystems, Inc. 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
...
...
@@ -93,7 +93,6 @@ public final class RSACipher extends CipherSpi {
private
sun
.
security
.
mscapi
.
Key
privateKey
;
public
RSACipher
()
{
SunMSCAPI
.
verifySelfIntegrity
(
getClass
());
paddingType
=
PAD_PKCS1
;
}
...
...
src/windows/classes/sun/security/mscapi/SunMSCAPI.java
浏览文件 @
cf59ffe6
/*
* Copyright 2005-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2005-200
9
Sun Microsystems, Inc. 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
...
...
@@ -117,22 +117,4 @@ public final class SunMSCAPI extends Provider {
AccessController
.
doPrivileged
(
new
PutAllAction
(
this
,
map
));
}
}
// set to true once self verification is complete
private
static
volatile
boolean
integrityVerified
;
static
void
verifySelfIntegrity
(
Class
c
)
{
if
(
integrityVerified
)
{
return
;
}
doVerifySelfIntegrity
(
c
);
}
private
static
synchronized
void
doVerifySelfIntegrity
(
Class
c
)
{
integrityVerified
=
JarVerifier
.
verify
(
c
);
if
(
integrityVerified
==
false
)
{
throw
new
ProviderException
(
"The SunMSCAPI provider may have been tampered with."
);
}
}
}
src/windows/native/sun/windows/awt_Component.cpp
浏览文件 @
cf59ffe6
...
...
@@ -3739,11 +3739,12 @@ void AwtComponent::SetCandidateWindow(int iCandType, int x, int y)
MsgRouting
AwtComponent
::
WmImeSetContext
(
BOOL
fSet
,
LPARAM
*
lplParam
)
{
//
This message causes native status window shown even it is disabled. So don't
//
let DefWindowProc process this message if this IMC is disabled
.
//
If the Windows input context is disabled, do not let Windows
//
display any UIs
.
HIMC
hIMC
=
ImmGetContext
();
if
(
hIMC
==
NULL
)
{
return
mrConsume
;
*
lplParam
=
0
;
return
mrDoDefault
;
}
if
(
fSet
)
{
...
...
test/java/awt/EventQueue/6638195/bug6638195.java
浏览文件 @
cf59ffe6
/*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2008
-2009
Sun Microsystems, Inc. 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
...
...
@@ -23,7 +23,7 @@
/* @test
*
* @bug 6638195
* @bug 6638195
6844297
* @author Igor Kushnirskiy
* @summary tests if EventQueueDelegate.Delegate is invoked.
*/
...
...
@@ -47,11 +47,22 @@ public class bug6638195 {
}
private
static
void
runTest
(
MyEventQueueDelegate
delegate
)
throws
Exception
{
// We need an empty runnable here, so the next event is
// processed with a new EventQueueDelegate. See 6844297
// for details
EventQueue
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
}
});
// The following event is expected to be processed by
// the EventQueueDelegate instance
EventQueue
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
}
});
// Finally, proceed on the main thread
final
CountDownLatch
latch
=
new
CountDownLatch
(
1
);
EventQueue
.
invokeLater
(
new
Runnable
()
{
...
...
@@ -60,7 +71,7 @@ public class bug6638195 {
}
});
latch
.
await
();
if
(!
delegate
.
allInvoked
())
{
if
(!
delegate
.
allInvoked
())
{
throw
new
RuntimeException
(
"failed"
);
}
}
...
...
@@ -125,6 +136,7 @@ public class bug6638195 {
return
objectMap
;
}
static
class
MyEventQueueDelegate
implements
EventQueueDelegate
.
Delegate
{
private
volatile
boolean
getNextEventInvoked
=
false
;
private
volatile
boolean
beforeDispatchInvoked
=
false
;
...
...
test/java/awt/Frame/FrameSize/TestFrameSize.java
浏览文件 @
cf59ffe6
/*
* Copyright 2009 Red Hat, Inc. All Rights Reserved.
* Portions Copyright 2009 Sun Microsystems, Inc. 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
...
...
@@ -37,15 +38,26 @@
* Test fails if size of window is wrong
*/
import
java.awt.Dimension
;
import
java.awt.Frame
;
import
java.awt.*
;
public
class
TestFrameSize
{
static
Dimension
desiredDimensions
=
new
Dimension
(
200
,
200
);
static
int
ERROR_MARGIN
=
15
;
static
Frame
mainWindow
;
private
static
Dimension
getClientSize
(
Frame
window
)
{
Dimension
size
=
window
.
getSize
();
Insets
insets
=
window
.
getInsets
();
System
.
out
.
println
(
"getClientSize() for "
+
window
);
System
.
out
.
println
(
" size: "
+
size
);
System
.
out
.
println
(
" insets: "
+
insets
);
return
new
Dimension
(
size
.
width
-
insets
.
left
-
insets
.
right
,
size
.
height
-
insets
.
top
-
insets
.
bottom
);
}
public
static
void
drawGui
()
{
mainWindow
=
new
Frame
(
""
);
mainWindow
.
setPreferredSize
(
desiredDimensions
);
...
...
@@ -54,9 +66,25 @@ public class TestFrameSize {
Dimension
actualDimensions
=
mainWindow
.
getSize
();
System
.
out
.
println
(
"Desired dimensions: "
+
desiredDimensions
.
toString
());
System
.
out
.
println
(
"Actual dimensions: "
+
actualDimensions
.
toString
());
if
(
Math
.
abs
(
actualDimensions
.
height
-
desiredDimensions
.
height
)
>
ERROR_MARGIN
)
{
if
(!
actualDimensions
.
equals
(
desiredDimensions
)
)
{
throw
new
RuntimeException
(
"Incorrect widow size"
);
}
// pack() guarantees to preserve the size of the client area after
// showing the window.
Dimension
clientSize1
=
getClientSize
(
mainWindow
);
System
.
out
.
println
(
"Client size before showing: "
+
clientSize1
);
mainWindow
.
setVisible
(
true
);
((
sun
.
awt
.
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
realSync
();
Dimension
clientSize2
=
getClientSize
(
mainWindow
);
System
.
out
.
println
(
"Client size after showing: "
+
clientSize2
);
if
(!
clientSize2
.
equals
(
clientSize1
))
{
throw
new
RuntimeException
(
"Incorrect client area size."
);
}
}
public
static
void
main
(
String
[]
args
)
{
...
...
test/java/net/Authenticator/B4933582.sh
浏览文件 @
cf59ffe6
...
...
@@ -30,6 +30,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
@@ -39,7 +43,7 @@ case "$OS" in
exit
1
;
;;
esac
${
TESTJAVA
}${
FS
}
bin
${
FS
}
javac
-d
.
-classpath
${
TESTSRC
}${
FS
}
..
${
FS
}
..
${
FS
}
..
${
FS
}
sun
${
FS
}
net
${
FS
}
www
${
FS
}
httptest
${
TESTSRC
}${
FS
}
B4933582.java
${
TESTJAVA
}${
FS
}
bin
${
FS
}
javac
-d
.
-classpath
"
${
TESTSRC
}${
FS
}
..
${
FS
}
..
${
FS
}
..
${
FS
}
sun
${
FS
}
net
${
FS
}
www
${
FS
}
httptest"
${
TESTSRC
}${
FS
}
B4933582.java
rm
-f
cache.ser auth.save
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-classpath
${
TESTSRC
}${
FS
}
..
${
FS
}
..
${
FS
}
..
${
FS
}
sun
${
FS
}
net
${
FS
}
www
${
FS
}
httptest
${
PS
}
.
B4933582 first
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-classpath
${
TESTSRC
}${
FS
}
..
${
FS
}
..
${
FS
}
..
${
FS
}
sun
${
FS
}
net
${
FS
}
www
${
FS
}
httptest
${
PS
}
.
B4933582 second
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-classpath
"
${
TESTSRC
}${
FS
}
..
${
FS
}
..
${
FS
}
..
${
FS
}
sun
${
FS
}
net
${
FS
}
www
${
FS
}
httptest
${
PS
}
."
B4933582 first
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-classpath
"
${
TESTSRC
}${
FS
}
..
${
FS
}
..
${
FS
}
..
${
FS
}
sun
${
FS
}
net
${
FS
}
www
${
FS
}
httptest
${
PS
}
."
B4933582 second
test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh
浏览文件 @
cf59ffe6
...
...
@@ -35,6 +35,10 @@ case "$OS" in
PATHSEP
=
":"
FILESEP
=
"/"
;;
CYGWIN
*
)
PATHSEP
=
";"
FILESEP
=
"/"
;;
Windows
*
)
PATHSEP
=
";"
FILESEP
=
"
\\
"
...
...
test/java/net/Socket/OldSocketImpl.sh
浏览文件 @
cf59ffe6
...
...
@@ -32,6 +32,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/java/net/URL/B5086147.sh
浏览文件 @
cf59ffe6
...
...
@@ -29,6 +29,10 @@ case "$OS" in
SunOS
|
Linux
)
exit
0
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/java/net/URL/runconstructor.sh
浏览文件 @
cf59ffe6
...
...
@@ -31,6 +31,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/java/net/URLClassLoader/B5077773.sh
浏览文件 @
cf59ffe6
...
...
@@ -42,6 +42,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/java/net/URLClassLoader/sealing/checksealed.sh
浏览文件 @
cf59ffe6
...
...
@@ -35,6 +35,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
@@ -49,10 +53,10 @@ esac
if
[
x
"
$TESTJAVA
"
=
x
]
;
then
TESTJAVA
=
$1
;
fi
if
[
x
"
$TESTSRC
"
=
x
]
;
then
TESTSRC
=
.
;
fi
CLASSPATH
=
.
${
PS
}${
TESTSRC
}${
FS
}
a
${
PS
}${
TESTSRC
}${
FS
}
b.jar
CLASSPATH
=
".
${
PS
}${
TESTSRC
}${
FS
}
a
${
PS
}${
TESTSRC
}${
FS
}
b.jar"
${
TESTJAVA
}${
FS
}
bin
${
FS
}
javac
-classpath
${
CLASSPATH
}
-d
.
${
TESTSRC
}${
FS
}
CheckSealed.java
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
CLASSPATH
}
CheckSealed 1
${
TESTJAVA
}${
FS
}
bin
${
FS
}
javac
-classpath
"
${
CLASSPATH
}
"
-d
.
${
TESTSRC
}${
FS
}
CheckSealed.java
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
"
${
CLASSPATH
}
"
CheckSealed 1
if
[
$?
!=
0
]
;
then
exit
1
;
fi
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
${
CLASSPATH
}
CheckSealed 2
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-cp
"
${
CLASSPATH
}
"
CheckSealed 2
if
[
$?
!=
0
]
;
then
exit
1
;
fi
test/java/net/URLConnection/6212146/test.sh
浏览文件 @
cf59ffe6
...
...
@@ -41,6 +41,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh
浏览文件 @
cf59ffe6
...
...
@@ -54,6 +54,10 @@ case "$OS" in
PATHSEP
=
":"
FILESEP
=
"/"
;;
CYGWIN
*
)
PATHSEP
=
";"
FILESEP
=
"/"
;;
Windows
*
)
PATHSEP
=
";"
FILESEP
=
"
\\
"
...
...
@@ -81,7 +85,7 @@ ${TESTJAVA}${FILESEP}bin${FILESEP}javac \
# run the test
${
TESTJAVA
}${
FILESEP
}
bin
${
FILESEP
}
java
\
-classpath
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
Deadlock.jar
\
-classpath
"
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
Deadlock.jar"
\
ClassLoaderDeadlock
exit
$?
test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh
浏览文件 @
cf59ffe6
...
...
@@ -42,6 +42,10 @@ case "$OS" in
PATHSEP
=
":"
FILESEP
=
"/"
;;
CYGWIN
*
)
PATHSEP
=
";"
FILESEP
=
"/"
;;
Windows
*
)
PATHSEP
=
";"
FILESEP
=
"
\\
"
...
...
@@ -54,5 +58,5 @@ esac
JAVA
=
"
${
TESTJAVA
}${
FILESEP
}
bin
${
FILESEP
}
java"
${
JAVA
}
-cp
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
Deadlock.jar
Deadlock
${
JAVA
}
-cp
"
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
Deadlock.jar"
Deadlock
test/java/security/Security/signedfirst/Dyn.sh
浏览文件 @
cf59ffe6
...
...
@@ -54,6 +54,10 @@ case "$OS" in
PATHSEP
=
":"
FILESEP
=
"/"
;;
CYGWIN
*
)
PATHSEP
=
";"
FILESEP
=
"/"
;;
Windows
*
)
PATHSEP
=
";"
FILESEP
=
"
\\
"
...
...
@@ -76,7 +80,7 @@ ${TESTJAVA}${FILESEP}bin${FILESEP}javac \
# run the test
${
TESTJAVA
}${
FILESEP
}
bin
${
FILESEP
}
java
\
-classpath
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
exp.jar
\
-classpath
"
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
exp.jar"
\
DynSignedProvFirst
exit
$?
test/java/security/Security/signedfirst/Static.sh
浏览文件 @
cf59ffe6
...
...
@@ -54,6 +54,10 @@ case "$OS" in
PATHSEP
=
":"
FILESEP
=
"/"
;;
CYGWIN
*
)
PATHSEP
=
";"
FILESEP
=
"/"
;;
Windows
*
)
PATHSEP
=
";"
FILESEP
=
"
\\
"
...
...
@@ -70,14 +74,14 @@ rm StaticSignedProvFirst.class
# compile the test program
${
TESTJAVA
}${
FILESEP
}
bin
${
FILESEP
}
javac
\
-classpath
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
exp.jar
\
-classpath
"
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
exp.jar"
\
-d
${
TESTCLASSES
}${
FILESEP
}
\
${
TESTSRC
}${
FILESEP
}
StaticSignedProvFirst.java
# run the test
cd
${
TESTSRC
}${
FILESEP
}
${
TESTJAVA
}${
FILESEP
}
bin
${
FILESEP
}
java
\
-classpath
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
exp.jar
\
-classpath
"
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
exp.jar"
\
-Djava
.security.properties
=
file:
${
TESTSRC
}${
FILESEP
}
Static.props
\
StaticSignedProvFirst
...
...
test/javax/crypto/SecretKeyFactory/FailOverTest.sh
浏览文件 @
cf59ffe6
...
...
@@ -56,6 +56,11 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
NULL
=
/dev/null
PS
=
";"
FS
=
"/"
;;
Windows
*
)
NULL
=
NUL
PS
=
";"
...
...
@@ -69,7 +74,7 @@ esac
${
TESTJAVA
}${
FS
}
bin
${
FS
}
javac
\
-d
.
\
-classpath
${
TESTSRC
}${
FS
}
P1.jar
${
PS
}${
TESTSRC
}${
FS
}
P2.jar
\
-classpath
"
${
TESTSRC
}${
FS
}
P1.jar
${
PS
}${
TESTSRC
}${
FS
}
P2.jar"
\
${
TESTSRC
}${
FS
}
FailOverTest.java
if
[
$?
-ne
0
]
;
then
...
...
@@ -77,7 +82,7 @@ if [ $? -ne 0 ]; then
fi
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
\
-classpath
${
TESTSRC
}${
FS
}
P1.jar
${
PS
}${
TESTSRC
}${
FS
}
P2.jar
${
PS
}
.
\
-classpath
"
${
TESTSRC
}${
FS
}
P1.jar
${
PS
}${
TESTSRC
}${
FS
}
P2.jar
${
PS
}
."
\
FailOverTest
result
=
$?
...
...
test/javax/security/auth/Subject/doAs/Test.sh
浏览文件 @
cf59ffe6
...
...
@@ -43,6 +43,11 @@ case "$OS" in
FS
=
"/"
RM
=
"/bin/rm -f"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
RM
=
"rm"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/javax/swing/JInternalFrame/Test6505027.java
0 → 100644
浏览文件 @
cf59ffe6
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
* @test
* @bug 6505027
* @summary Tests focus problem inside internal frame
* @author Sergey Malenkov
*/
import
java.awt.AWTException
;
import
java.awt.BorderLayout
;
import
java.awt.Component
;
import
java.awt.Container
;
import
java.awt.KeyboardFocusManager
;
import
java.awt.Point
;
import
java.awt.Robot
;
import
java.awt.event.InputEvent
;
import
javax.swing.DefaultCellEditor
;
import
javax.swing.JComboBox
;
import
javax.swing.JDesktopPane
;
import
javax.swing.JFrame
;
import
javax.swing.JInternalFrame
;
import
javax.swing.JScrollPane
;
import
javax.swing.JTable
;
import
javax.swing.JTextField
;
import
javax.swing.SwingUtilities
;
import
javax.swing.WindowConstants
;
import
javax.swing.table.DefaultTableModel
;
import
javax.swing.table.TableColumn
;
public
class
Test6505027
implements
Runnable
{
private
static
final
boolean
INTERNAL
=
true
;
private
static
final
boolean
TERMINATE
=
true
;
private
static
final
int
WIDTH
=
450
;
private
static
final
int
HEIGHT
=
200
;
private
static
final
int
OFFSET
=
10
;
private
static
final
long
PAUSE
=
2048L
;
private
static
final
String
[]
COLUMNS
=
{
"Size"
,
"Shape"
};
// NON-NLS
private
static
final
String
[]
ITEMS
=
{
"a"
,
"b"
,
"c"
,
"d"
};
// NON-NLS
private
static
final
String
KEY
=
"terminateEditOnFocusLost"
;
// NON-NLS
public
static
void
main
(
String
[]
args
)
{
SwingUtilities
.
invokeLater
(
new
Test6505027
());
Component
component
=
null
;
while
(
component
==
null
)
{
try
{
Thread
.
sleep
(
PAUSE
);
}
catch
(
InterruptedException
exception
)
{
// ignore interrupted exception
}
component
=
KeyboardFocusManager
.
getCurrentKeyboardFocusManager
().
getFocusOwner
();
}
if
(!
component
.
getClass
().
equals
(
JComboBox
.
class
))
{
throw
new
Error
(
"unexpected focus owner: "
+
component
);
}
SwingUtilities
.
getWindowAncestor
(
component
).
dispose
();
}
private
JTable
table
;
private
Point
point
;
public
void
run
()
{
if
(
this
.
table
==
null
)
{
JFrame
main
=
new
JFrame
();
main
.
setSize
(
WIDTH
+
OFFSET
*
3
,
HEIGHT
+
OFFSET
*
5
);
main
.
setLocationRelativeTo
(
null
);
main
.
setDefaultCloseOperation
(
WindowConstants
.
DISPOSE_ON_CLOSE
);
main
.
setVisible
(
true
);
Container
container
=
main
;
if
(
INTERNAL
)
{
JInternalFrame
frame
=
new
JInternalFrame
();
frame
.
setBounds
(
OFFSET
,
OFFSET
,
WIDTH
,
HEIGHT
);
frame
.
setVisible
(
true
);
JDesktopPane
desktop
=
new
JDesktopPane
();
desktop
.
add
(
frame
,
new
Integer
(
1
));
container
.
add
(
desktop
);
container
=
frame
;
}
this
.
table
=
new
JTable
(
new
DefaultTableModel
(
COLUMNS
,
2
));
if
(
TERMINATE
)
{
this
.
table
.
putClientProperty
(
KEY
,
Boolean
.
TRUE
);
}
TableColumn
column
=
this
.
table
.
getColumn
(
COLUMNS
[
1
]);
column
.
setCellEditor
(
new
DefaultCellEditor
(
new
JComboBox
(
ITEMS
)));
container
.
add
(
BorderLayout
.
NORTH
,
new
JTextField
());
container
.
add
(
BorderLayout
.
CENTER
,
new
JScrollPane
(
this
.
table
));
SwingUtilities
.
invokeLater
(
this
);
}
else
if
(
this
.
point
==
null
)
{
this
.
point
=
this
.
table
.
getCellRect
(
1
,
1
,
false
).
getLocation
();
SwingUtilities
.
convertPointToScreen
(
this
.
point
,
this
.
table
);
SwingUtilities
.
invokeLater
(
this
);
}
else
{
try
{
Robot
robot
=
new
Robot
();
robot
.
mouseMove
(
this
.
point
.
x
+
1
,
this
.
point
.
y
+
1
);
robot
.
mousePress
(
InputEvent
.
BUTTON1_MASK
);
}
catch
(
AWTException
exception
)
{
throw
new
Error
(
"unexpected exception"
,
exception
);
}
}
}
}
test/javax/swing/JInternalFrame/Test6802868.java
0 → 100644
浏览文件 @
cf59ffe6
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
* @test
* @bug 6802868
* @summary JInternalFrame is not maximized when maximized parent frame
* @author Alexander Potochkin
*/
import
sun.awt.SunToolkit
;
import
java.awt.Dimension
;
import
java.awt.Point
;
import
java.awt.Robot
;
import
java.awt.Toolkit
;
import
java.beans.PropertyVetoException
;
import
javax.swing.JDesktopPane
;
import
javax.swing.JFrame
;
import
javax.swing.JInternalFrame
;
import
javax.swing.SwingUtilities
;
public
class
Test6802868
{
static
JInternalFrame
jif
;
static
JFrame
frame
;
static
Dimension
size
;
static
Point
location
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Robot
robot
=
new
Robot
();
robot
.
setAutoDelay
(
20
);
SunToolkit
toolkit
=
(
SunToolkit
)
Toolkit
.
getDefaultToolkit
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
frame
=
new
JFrame
();
frame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
JDesktopPane
jdp
=
new
JDesktopPane
();
frame
.
getContentPane
().
add
(
jdp
);
jif
=
new
JInternalFrame
(
"Title"
,
true
,
true
,
true
,
true
);
jdp
.
add
(
jif
);
jif
.
setVisible
(
true
);
frame
.
setSize
(
200
,
200
);
frame
.
setLocationRelativeTo
(
null
);
frame
.
setVisible
(
true
);
try
{
jif
.
setMaximum
(
true
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
});
toolkit
.
realSync
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
size
=
jif
.
getSize
();
frame
.
setSize
(
300
,
300
);
}
});
toolkit
.
realSync
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
if
(
jif
.
getSize
().
equals
(
size
))
{
throw
new
RuntimeException
(
"InternalFrame hasn't changed its size"
);
}
try
{
jif
.
setIcon
(
true
);
}
catch
(
PropertyVetoException
e
)
{
e
.
printStackTrace
();
}
location
=
jif
.
getDesktopIcon
().
getLocation
();
frame
.
setSize
(
400
,
400
);
}
});
toolkit
.
realSync
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
if
(
jif
.
getDesktopIcon
().
getLocation
().
equals
(
location
))
{
throw
new
RuntimeException
(
"JDesktopIcon hasn't moved"
);
}
}
});
}
}
test/javax/swing/JScrollPane/Test6526631.java
0 → 100644
浏览文件 @
cf59ffe6
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
* @test
* @bug 6526631
* @summary Resizes right-oriented scroll pane
* @author Sergey Malenkov
* @library ..
* @build SwingTest
* @run main Test6526631
*/
import
java.awt.Dimension
;
import
javax.swing.JFrame
;
import
javax.swing.JScrollBar
;
import
javax.swing.JScrollPane
;
import
javax.swing.JTextArea
;
import
javax.swing.JViewport
;
import
static
java
.
awt
.
ComponentOrientation
.
RIGHT_TO_LEFT
;
public
class
Test6526631
{
private
static
final
int
COLS
=
90
;
private
static
final
int
ROWS
=
50
;
private
static
final
int
OFFSET
=
10
;
public
static
void
main
(
String
[]
args
)
{
SwingTest
.
start
(
Test6526631
.
class
);
}
private
final
JScrollPane
pane
;
private
final
JFrame
frame
;
public
Test6526631
(
JFrame
frame
)
{
this
.
pane
=
new
JScrollPane
(
new
JTextArea
(
ROWS
,
COLS
));
this
.
pane
.
setComponentOrientation
(
RIGHT_TO_LEFT
);
this
.
frame
=
frame
;
this
.
frame
.
add
(
this
.
pane
);
}
private
void
update
(
int
offset
)
{
Dimension
size
=
this
.
frame
.
getSize
();
size
.
width
+=
offset
;
this
.
frame
.
setSize
(
size
);
}
public
void
validateFirst
()
{
validateThird
();
update
(
OFFSET
);
}
public
void
validateSecond
()
{
validateThird
();
update
(-
OFFSET
);
}
public
void
validateThird
()
{
JViewport
viewport
=
this
.
pane
.
getViewport
();
JScrollBar
scroller
=
this
.
pane
.
getHorizontalScrollBar
();
if
(!
scroller
.
getComponentOrientation
().
equals
(
RIGHT_TO_LEFT
))
{
throw
new
IllegalStateException
(
"unexpected component orientation"
);
}
int
value
=
scroller
.
getValue
();
if
(
value
!=
0
)
{
throw
new
IllegalStateException
(
"unexpected scroll value"
);
}
int
extent
=
viewport
.
getExtentSize
().
width
;
if
(
extent
!=
scroller
.
getVisibleAmount
())
{
throw
new
IllegalStateException
(
"unexpected visible amount"
);
}
int
size
=
viewport
.
getViewSize
().
width
;
if
(
size
!=
scroller
.
getMaximum
())
{
throw
new
IllegalStateException
(
"unexpected maximum"
);
}
int
pos
=
size
-
extent
-
value
;
if
(
pos
!=
viewport
.
getViewPosition
().
x
)
{
throw
new
IllegalStateException
(
"unexpected position"
);
}
}
}
test/javax/swing/SwingTest.java
0 → 100644
浏览文件 @
cf59ffe6
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
import
java.io.PrintWriter
;
import
java.lang.reflect.InvocationTargetException
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Modifier
;
import
java.util.Comparator
;
import
java.util.Iterator
;
import
java.util.Set
;
import
java.util.TreeSet
;
import
javax.swing.JFrame
;
import
static
javax
.
swing
.
SwingUtilities
.
invokeLater
;
/**
* SwingTestHelper is a utility class for writing regression tests
* that require interacting with the UI.
*
* @author Sergey A. Malenkov
*/
final
class
SwingTest
implements
Runnable
{
private
static
final
int
WIDTH
=
640
;
private
static
final
int
HEIGHT
=
480
;
public
static
void
start
(
Class
<?>
type
)
{
new
SwingTest
(
type
).
start
();
}
private
final
PrintWriter
writer
=
new
PrintWriter
(
System
.
out
,
true
);
private
Class
<?>
type
;
private
JFrame
frame
;
private
Iterator
<
Method
>
methods
;
private
Object
object
;
private
Method
method
;
private
Throwable
error
;
private
SwingTest
(
Class
<?>
type
)
{
this
.
type
=
type
;
}
public
void
run
()
{
synchronized
(
this
.
writer
)
{
if
(
this
.
error
!=
null
)
{
this
.
frame
.
dispose
();
this
.
frame
=
null
;
}
else
if
(
this
.
object
==
null
)
{
invoke
();
Set
<
Method
>
methods
=
new
TreeSet
<
Method
>(
new
Comparator
<
Method
>()
{
public
int
compare
(
Method
first
,
Method
second
)
{
return
first
.
getName
().
compareTo
(
second
.
getName
());
}
});
for
(
Method
method
:
this
.
type
.
getMethods
())
{
if
(
method
.
getDeclaringClass
().
equals
(
this
.
type
))
{
if
(
method
.
getReturnType
().
equals
(
void
.
class
))
{
if
(
0
==
method
.
getParameterTypes
().
length
)
{
methods
.
add
(
method
);
}
}
}
}
this
.
methods
=
methods
.
iterator
();
}
else
if
(
this
.
method
!=
null
)
{
invoke
();
}
else
if
(
this
.
methods
.
hasNext
())
{
this
.
method
=
this
.
methods
.
next
();
}
else
{
this
.
frame
.
dispose
();
this
.
frame
=
null
;
this
.
type
=
null
;
}
this
.
writer
.
notifyAll
();
}
}
private
void
start
()
{
synchronized
(
this
.
writer
)
{
while
(
this
.
type
!=
null
)
{
if
((
this
.
method
!=
null
)
&&
Modifier
.
isStatic
(
this
.
method
.
getModifiers
()))
{
invoke
();
}
else
{
invokeLater
(
this
);
try
{
this
.
writer
.
wait
();
}
catch
(
InterruptedException
exception
)
{
exception
.
printStackTrace
(
this
.
writer
);
}
}
if
((
this
.
frame
==
null
)
&&
(
this
.
error
!=
null
))
{
throw
new
Error
(
"unexpected error"
,
this
.
error
);
}
}
}
}
private
void
invoke
()
{
try
{
if
(
this
.
method
!=
null
)
{
this
.
writer
.
println
(
this
.
method
);
this
.
method
.
invoke
(
this
.
object
);
this
.
method
=
null
;
}
else
{
this
.
writer
.
println
(
this
.
type
);
this
.
frame
=
new
JFrame
(
this
.
type
.
getSimpleName
());
this
.
frame
.
setSize
(
WIDTH
,
HEIGHT
);
this
.
frame
.
setLocationRelativeTo
(
null
);
this
.
object
=
this
.
type
.
getConstructor
(
JFrame
.
class
).
newInstance
(
this
.
frame
);
this
.
frame
.
setVisible
(
true
);
}
}
catch
(
NoSuchMethodException
exception
)
{
this
.
error
=
exception
;
}
catch
(
SecurityException
exception
)
{
this
.
error
=
exception
;
}
catch
(
IllegalAccessException
exception
)
{
this
.
error
=
exception
;
}
catch
(
IllegalArgumentException
exception
)
{
this
.
error
=
exception
;
}
catch
(
InstantiationException
exception
)
{
this
.
error
=
exception
;
}
catch
(
InvocationTargetException
exception
)
{
this
.
error
=
exception
.
getTargetException
();
}
}
}
test/lib/security/java.policy/Ext_AllPolicy.sh
浏览文件 @
cf59ffe6
...
...
@@ -56,6 +56,12 @@ case "$OS" in
FS
=
"/"
TMP
=
/tmp
;;
CYGWIN
*
)
NULL
=
/dev/null
PS
=
";"
FS
=
"/"
TMP
=
/tmp
;;
Windows_95
|
Windows_98
|
Windows_NT
)
NULL
=
NUL
PS
=
";"
...
...
test/sun/net/www/MarkResetTest.sh
浏览文件 @
cf59ffe6
...
...
@@ -32,6 +32,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/sun/net/www/http/ChunkedInputStream/ChunkedCharEncoding.sh
浏览文件 @
cf59ffe6
...
...
@@ -32,6 +32,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/sun/net/www/http/HttpClient/RetryPost.sh
浏览文件 @
cf59ffe6
...
...
@@ -32,6 +32,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/sun/net/www/protocol/jar/B5105410.sh
浏览文件 @
cf59ffe6
...
...
@@ -39,6 +39,10 @@ case "$OS" in
PS
=
":"
FS
=
"/"
;;
CYGWIN
*
)
PS
=
";"
FS
=
"/"
;;
Windows
*
)
PS
=
";"
FS
=
"
\\
"
...
...
test/sun/net/www/protocol/jar/jarbug/run.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/pkcs11/Provider/ConfigQuotedString.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/pkcs11/Provider/Login.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/provider/PolicyFile/getinstance/getinstance.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/jarsigner/AlgOptions.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/jarsigner/PercentSign.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/jarsigner/oldsig.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/AltProviderPath.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/CloneKeyAskPassword.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/NoExtNPE.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/SecretKeyKS.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/StandardAlgName.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/i18n.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/printssl.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/resource.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
test/sun/security/tools/keytool/standard.sh
浏览文件 @
cf59ffe6
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录