Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
277b2050
D
dragonwell11
项目概览
openanolis
/
dragonwell11
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell11
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
277b2050
编写于
7月 05, 2017
作者:
D
duke
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
82d4390e
447f39f9
变更
84
隐藏空白更改
内联
并排
Showing
84 changed file
with
3353 addition
and
446 deletion
+3353
-446
.hgtags-top-repo
.hgtags-top-repo
+1
-0
corba/.hgtags
corba/.hgtags
+1
-0
hotspot/.hgtags
hotspot/.hgtags
+2
-0
jaxp/.hgtags
jaxp/.hgtags
+1
-0
jaxws/.hgtags
jaxws/.hgtags
+1
-0
jdk/.hgtags
jdk/.hgtags
+1
-0
jdk/make/common/shared/Sanity.gmk
jdk/make/common/shared/Sanity.gmk
+6
-6
jdk/make/modules/tools/Makefile
jdk/make/modules/tools/Makefile
+2
-3
jdk/make/sun/javazic/tzdata/VERSION
jdk/make/sun/javazic/tzdata/VERSION
+1
-1
jdk/make/sun/javazic/tzdata/antarctica
jdk/make/sun/javazic/tzdata/antarctica
+1
-1
jdk/make/sun/javazic/tzdata/asia
jdk/make/sun/javazic/tzdata/asia
+102
-4
jdk/make/sun/javazic/tzdata/australasia
jdk/make/sun/javazic/tzdata/australasia
+21
-0
jdk/make/sun/javazic/tzdata/europe
jdk/make/sun/javazic/tzdata/europe
+18
-6
jdk/make/sun/javazic/tzdata/northamerica
jdk/make/sun/javazic/tzdata/northamerica
+94
-4
jdk/make/sun/javazic/tzdata/zone.tab
jdk/make/sun/javazic/tzdata/zone.tab
+6
-3
jdk/src/share/classes/com/sun/jndi/ldap/Filter.java
jdk/src/share/classes/com/sun/jndi/ldap/Filter.java
+192
-11
jdk/src/share/classes/java/awt/AlphaComposite.java
jdk/src/share/classes/java/awt/AlphaComposite.java
+6
-5
jdk/src/share/classes/java/beans/BeanDescriptor.java
jdk/src/share/classes/java/beans/BeanDescriptor.java
+6
-1
jdk/src/share/classes/java/beans/EventSetDescriptor.java
jdk/src/share/classes/java/beans/EventSetDescriptor.java
+19
-8
jdk/src/share/classes/java/beans/FeatureDescriptor.java
jdk/src/share/classes/java/beans/FeatureDescriptor.java
+50
-1
jdk/src/share/classes/java/beans/IndexedPropertyChangeEvent.java
.../share/classes/java/beans/IndexedPropertyChangeEvent.java
+5
-2
jdk/src/share/classes/java/beans/IndexedPropertyDescriptor.java
...c/share/classes/java/beans/IndexedPropertyDescriptor.java
+7
-19
jdk/src/share/classes/java/beans/MethodDescriptor.java
jdk/src/share/classes/java/beans/MethodDescriptor.java
+12
-20
jdk/src/share/classes/java/beans/PropertyChangeEvent.java
jdk/src/share/classes/java/beans/PropertyChangeEvent.java
+22
-1
jdk/src/share/classes/java/beans/PropertyDescriptor.java
jdk/src/share/classes/java/beans/PropertyDescriptor.java
+8
-19
jdk/src/share/classes/java/beans/XMLEncoder.java
jdk/src/share/classes/java/beans/XMLEncoder.java
+35
-34
jdk/src/share/classes/java/lang/Iterable.java
jdk/src/share/classes/java/lang/Iterable.java
+6
-2
jdk/src/share/classes/java/lang/String.java
jdk/src/share/classes/java/lang/String.java
+1
-1
jdk/src/share/classes/java/security/IdentityScope.java
jdk/src/share/classes/java/security/IdentityScope.java
+2
-1
jdk/src/share/classes/java/util/Collection.java
jdk/src/share/classes/java/util/Collection.java
+2
-0
jdk/src/share/classes/java/util/DualPivotQuicksort.java
jdk/src/share/classes/java/util/DualPivotQuicksort.java
+8
-8
jdk/src/share/classes/java/util/Iterator.java
jdk/src/share/classes/java/util/Iterator.java
+2
-0
jdk/src/share/classes/java/util/List.java
jdk/src/share/classes/java/util/List.java
+2
-0
jdk/src/share/classes/javax/swing/JTable.java
jdk/src/share/classes/javax/swing/JTable.java
+2
-8
jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java
...c/share/classes/javax/swing/plaf/basic/BasicSliderUI.java
+9
-17
jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
...hare/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
+1
-0
jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
...c/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
+14
-46
jdk/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
...rc/share/classes/javax/swing/plaf/synth/SynthTableUI.java
+2
-3
jdk/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
.../share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
+9
-6
jdk/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java
...share/classes/javax/swing/plaf/synth/SynthViewportUI.java
+10
-3
jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java
jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java
+25
-28
jdk/src/share/classes/sun/font/SunFontManager.java
jdk/src/share/classes/sun/font/SunFontManager.java
+2
-2
jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java
jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java
+35
-2
jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java
...hare/classes/sun/security/krb5/internal/crypto/EType.java
+33
-7
jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
...src/share/classes/sun/security/provider/JavaKeyStore.java
+30
-46
jdk/src/share/classes/sun/security/tools/TimestampedSigner.java
...c/share/classes/sun/security/tools/TimestampedSigner.java
+3
-2
jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java
...rc/share/classes/sun/util/resources/TimeZoneNames_de.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java
...rc/share/classes/sun/util/resources/TimeZoneNames_es.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java
...rc/share/classes/sun/util/resources/TimeZoneNames_fr.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java
...rc/share/classes/sun/util/resources/TimeZoneNames_it.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java
...rc/share/classes/sun/util/resources/TimeZoneNames_ja.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java
...rc/share/classes/sun/util/resources/TimeZoneNames_ko.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java
...rc/share/classes/sun/util/resources/TimeZoneNames_sv.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java
...share/classes/sun/util/resources/TimeZoneNames_zh_CN.java
+3
-0
jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java
...share/classes/sun/util/resources/TimeZoneNames_zh_TW.java
+3
-0
jdk/src/share/lib/security/java.security
jdk/src/share/lib/security/java.security
+0
-5
jdk/src/solaris/classes/sun/nio/fs/UnixPath.java
jdk/src/solaris/classes/sun/nio/fs/UnixPath.java
+9
-4
jdk/src/solaris/native/java/io/UnixFileSystem_md.c
jdk/src/solaris/native/java/io/UnixFileSystem_md.c
+3
-3
jdk/test/Makefile
jdk/test/Makefile
+2
-69
jdk/test/ProblemList.txt
jdk/test/ProblemList.txt
+36
-1
jdk/test/com/sun/jndi/ldap/InvalidLdapFilters.java
jdk/test/com/sun/jndi/ldap/InvalidLdapFilters.java
+311
-0
jdk/test/java/awt/AlphaComposite/TestAlphaCompositeForNaN.java
...est/java/awt/AlphaComposite/TestAlphaCompositeForNaN.java
+22
-0
jdk/test/java/beans/Introspector/Test4498236.java
jdk/test/java/beans/Introspector/Test4498236.java
+188
-0
jdk/test/java/beans/XMLEncoder/Test5023550.java
jdk/test/java/beans/XMLEncoder/Test5023550.java
+122
-0
jdk/test/java/beans/XMLEncoder/Test5023557.java
jdk/test/java/beans/XMLEncoder/Test5023557.java
+99
-0
jdk/test/java/beans/XMLEncoder/Test6921644.java
jdk/test/java/beans/XMLEncoder/Test6921644.java
+197
-0
jdk/test/java/nio/file/Files/PrintFileTree.java
jdk/test/java/nio/file/Files/PrintFileTree.java
+17
-10
jdk/test/java/nio/file/Files/walk_file_tree.sh
jdk/test/java/nio/file/Files/walk_file_tree.sh
+13
-5
jdk/test/java/nio/file/Path/CheckPermissions.java
jdk/test/java/nio/file/Path/CheckPermissions.java
+1
-1
jdk/test/java/nio/file/Path/PathOps.java
jdk/test/java/nio/file/Path/PathOps.java
+22
-5
jdk/test/java/nio/file/WatchService/LotsOfEvents.java
jdk/test/java/nio/file/WatchService/LotsOfEvents.java
+222
-0
jdk/test/java/security/IdentityScope/NoDefaultSystemScope.java
...est/java/security/IdentityScope/NoDefaultSystemScope.java
+42
-0
jdk/test/javax/swing/JEditorPane/6917744/bug6917744.java
jdk/test/javax/swing/JEditorPane/6917744/bug6917744.java
+113
-0
jdk/test/javax/swing/JEditorPane/6917744/test.html
jdk/test/javax/swing/JEditorPane/6917744/test.html
+494
-0
jdk/test/javax/swing/JScrollBar/6924059/bug6924059.java
jdk/test/javax/swing/JScrollBar/6924059/bug6924059.java
+56
-0
jdk/test/javax/swing/JSlider/6848475/bug6848475.java
jdk/test/javax/swing/JSlider/6848475/bug6848475.java
+126
-0
jdk/test/javax/swing/JSlider/6918861/bug6918861.java
jdk/test/javax/swing/JSlider/6918861/bug6918861.java
+103
-0
jdk/test/javax/swing/JSlider/6923305/bug6923305.java
jdk/test/javax/swing/JSlider/6923305/bug6923305.java
+63
-0
jdk/test/javax/swing/JTable/6913768/bug6913768.java
jdk/test/javax/swing/JTable/6913768/bug6913768.java
+53
-0
jdk/test/sun/security/krb5/etype/WeakCrypto.java
jdk/test/sun/security/krb5/etype/WeakCrypto.java
+50
-0
jdk/test/sun/security/krb5/etype/weakcrypto.conf
jdk/test/sun/security/krb5/etype/weakcrypto.conf
+2
-0
make/jprt.properties
make/jprt.properties
+50
-12
test/Makefile
test/Makefile
+89
-0
未找到文件。
.hgtags-top-repo
浏览文件 @
277b2050
...
...
@@ -59,3 +59,4 @@ a3242906c7747b5d9bcc3d118c7c3c69aa40f4b7 jdk7-b80
e1176f86805fe07fd9fb9da065dc51b47712ce76 jdk7-b82
6880a3af9addb41541e80ebe8cde6f79ec402a58 jdk7-b83
2f3ea057d1ad56cf3b269cdc4de2741411151982 jdk7-b84
cf26288a114be67c39f2758959ce50b60f5ae330 jdk7-b85
corba/.hgtags
浏览文件 @
277b2050
...
...
@@ -59,3 +59,4 @@ e08a42a2a94d97ea8eedb187a94dbff822c8fbba jdk7-b81
1e8c1bfad1abb4b81407a0f2645e0fb85764ca48 jdk7-b82
fde0df7a2384f7fe33204a79678989807d9c2b98 jdk7-b83
68c8961a82e4a3ad2a67991e5d834192a81eb4cd jdk7-b84
c67a9df7bc0ca291f08f9a9cc05cb78ea15d25e6 jdk7-b85
hotspot/.hgtags
浏览文件 @
277b2050
...
...
@@ -81,3 +81,5 @@ ac59d4e6dae51ac5fc31a9a4940d1857f91161b1 hs16-b08
fafab5d5349c7c066d677538db67a1ee0fb33bd2 hs15-b05
3f370a32906eb5ba993fabd7b4279be7f31052b9 jdk7-b83
ffc8d176b84bcfb5ac21302b4feb3b0c0d69b97c jdk7-b84
6c9796468b91dcbb39e09dfa1baf9779ac45eb66 jdk7-b85
418bc80ce13995149eadc9eecbba21d7a9fa02ae hs17-b10
jaxp/.hgtags
浏览文件 @
277b2050
...
...
@@ -59,3 +59,4 @@ b1005c504358c18694c84e95fec16b28cdce7ae1 jdk7-b79
c876ad22e4bf9d3c6460080db7ace478e29a3ff9 jdk7-b82
309a0a7fc6ceb1c9fc3a85b3608e97ef8f7b0dfd jdk7-b83
32c0cf01d555747918529a6ff9e06b0090c7a474 jdk7-b84
6c0ccabb430dacdcd4479f8b197980d5da4eeb66 jdk7-b85
jaxws/.hgtags
浏览文件 @
277b2050
...
...
@@ -59,3 +59,4 @@ f051045fe94a48fae1097f90cbd9227e6aae6b7e jdk7-b81
31573ae8eed15a6c170f3f0d1abd0b9109c0e086 jdk7-b82
371e3ded591d09112a9f231e37cb072781c486ac jdk7-b83
8bc02839eee4ef02cd1b50e87638874368a26535 jdk7-b84
8424512588ff95362c1f1e5f11c6efd4e7f7db6e jdk7-b85
jdk/.hgtags
浏览文件 @
277b2050
...
...
@@ -59,3 +59,4 @@ e6a5d095c356a547cf5b3c8885885aca5e91e09b jdk7-b77
69ef657320ad5c35cfa12e4d8322d877e778f8b3 jdk7-b82
9027c6b9d7e2c9ca04a1add691b5b50d0f22b1aa jdk7-b83
7cb9388bb1a16365fa5118c5efa38b1cd58be40d jdk7-b84
b396584a3e64988839cca21ea1f7fbdcc9248783 jdk7-b85
jdk/make/common/shared/Sanity.gmk
浏览文件 @
277b2050
...
...
@@ -687,13 +687,13 @@ endif
######################################################
sane-alt_outputdir:
ifdef ALT_OUTPUTDIR
@if [ `$(ECHO) $(subst \,/,$(ALT_OUTPUTDIR)) | $(EGREP) -c
i '^([
a-z]:)?/'` -ne 1 ]; then \
@if [ `$(ECHO) $(subst \,/,$(ALT_OUTPUTDIR)) | $(EGREP) -c
'^([A-Z
a-z]:)?/'` -ne 1 ]; then \
$(ECHO) "ERROR: ALT_OUTPUTDIR must be an Absolute Path Name, \n" \
" not a Relative Path Name. \n" \
"" >> $(ERROR_FILE) ; \
fi
ifeq ($(PLATFORM), windows)
@if [ `$(ECHO) $(subst \,/,$(ALT_OUTPUTDIR)) | $(EGREP) -c
i '^([
a-z]:)'` -ne 1 ]; then \
@if [ `$(ECHO) $(subst \,/,$(ALT_OUTPUTDIR)) | $(EGREP) -c
'^([A-Z
a-z]:)'` -ne 1 ]; then \
$(ECHO) "ERROR: On windows, ALT_OUTPUTDIR must contain the drive letter. \n" \
"" >> $(ERROR_FILE) ; \
fi
...
...
@@ -742,7 +742,7 @@ sane-outputdir:
######################################################
sane-alt_bootdir:
ifdef ALT_BOOTDIR
@if [ `$(ECHO) $(subst \,/,$(ALT_BOOTDIR)) | $(EGREP) -c
i '^([
a-z]:)?/'` -ne 1 ]; then \
@if [ `$(ECHO) $(subst \,/,$(ALT_BOOTDIR)) | $(EGREP) -c
'^([A-Z
a-z]:)?/'` -ne 1 ]; then \
$(ECHO) "ERROR: ALT_BOOTDIR must be an Absolute Path Name, \n" \
" not a Relative Path Name. \n" \
" The current value of ALT_BOOTDIR is \n" \
...
...
@@ -772,7 +772,7 @@ sane-bootdir:
######################################################
sane-local-bootdir:
ifeq ($(PLATFORM), windows)
@if [ `$(ECHO) $(BOOTDIR) | $(EGREP) -c
i '^J
:'` -ne 0 ]; then \
@if [ `$(ECHO) $(BOOTDIR) | $(EGREP) -c
'^[jJ]
:'` -ne 0 ]; then \
$(ECHO) "WARNING: Your BOOTDIR is located on the J: drive. Often the J:\n" \
" drive is mapped over a network. Using a mapped drive for\n" \
" the BOOTDIR may significantly slow down the build process.\n" \
...
...
@@ -789,7 +789,7 @@ endif
######################################################
sane-cacerts:
ifdef ALT_CACERTS_FILE
@if [ `$(ECHO) $(subst \,/,$(ALT_CACERTS_FILE)) | $(EGREP) -c
i '^([
a-z]:)?/'` -ne 1 ]; then \
@if [ `$(ECHO) $(subst \,/,$(ALT_CACERTS_FILE)) | $(EGREP) -c
'^([A-Z
a-z]:)?/'` -ne 1 ]; then \
$(ECHO) "ERROR: ALT_CACERTS_FILE must be an Absolute Path Name, \n" \
" not a Relative Path Name. \n" \
" The current value of ALT_CACERTS_FILE is \n" \
...
...
@@ -1538,7 +1538,7 @@ endif
sane-mozilla:
ifeq ($(ARCH_DATA_MODEL), 32)
ifdef ALT_MOZILLA_HEADERS_PATH
@if [ `$(ECHO) $(subst \,/,$(ALT_MOZILLA_HEADERS_PATH)) | $(EGREP) -c
i '^([
a-z]:)?/'` -ne 1 ]; then \
@if [ `$(ECHO) $(subst \,/,$(ALT_MOZILLA_HEADERS_PATH)) | $(EGREP) -c
'^([A-Z
a-z]:)?/'` -ne 1 ]; then \
$(ECHO) "ERROR: ALT_MOZILLA_HEADERS_PATH must be an Absolute Path Name, \n" \
" not a Relative Path Name. \n" \
" The current value of ALT_MOZILLA_HEADERS_PATH is \n" \
...
...
jdk/make/modules/tools/Makefile
浏览文件 @
277b2050
...
...
@@ -135,9 +135,8 @@ $(BUILDTOOLCLASSDIR)/%.class : $(BUILDTOOL_SOURCE_ROOT)/%.java
$(CLASSANALYZER_JAR_FILE)
:
$(BUILDTOOL_MANIFEST_FILE) $(FILES_class)
@
$
(
prep-target
)
$(CD)
$(BUILDTOOLCLASSDIR)
&&
\
$(BOOT_JAR_CMD)
cfm
$@
$(BUILDTOOL_MANIFEST_FILE)
\
$(PKGDIR)
$(BOOT_JAR_JFLAGS)
||
$(RM)
$@
$(BOOT_JAR_CMD)
cfm
$@
$(BUILDTOOL_MANIFEST_FILE)
\
-C
$(BUILDTOOLCLASSDIR)
$(PKGDIR)
$(BOOT_JAR_JFLAGS)
||
$(RM)
$@
@
$
(
java-vm-cleanup
)
$(BUILDTOOLJARDIR)/classfile.jar
:
$(FILES_classfile_class)
...
...
jdk/make/sun/javazic/tzdata/VERSION
浏览文件 @
277b2050
...
...
@@ -21,4 +21,4 @@
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
tzdata20
09r
tzdata20
10b
jdk/make/sun/javazic/tzdata/antarctica
浏览文件 @
277b2050
...
...
@@ -128,7 +128,7 @@ Zone Antarctica/Casey 0 - zzz 1969
Zone Antarctica/Davis 0 - zzz 1957 Jan 13
7:00 - DAVT 1964 Nov # Davis Time
0 - zzz 1969 Feb
7:00 - DAVT 2009 Oct 18 2:0
7:00 - DAVT 2009 Oct 18 2:0
0
5:00 - DAVT
Zone Antarctica/Mawson 0 - zzz 1954 Feb 13
6:00 - MAWT 2009 Oct 18 2:00
...
...
jdk/make/sun/javazic/tzdata/asia
浏览文件 @
277b2050
...
...
@@ -218,6 +218,41 @@ Zone Asia/Bahrain 3:22:20 - LMT 1920 # Al Manamah
# http://www.thaindian.com/newsportal/business/bangladesh-to-continue-indefinitely-with-advanced-time_100259987.html
# </a>
# From Alexander Krivenyshev (2009-12-24):
# According to Bangladesh newspaper "The Daily Star,"
# Bangladesh will change its clock back to Standard Time on Dec 31, 2009.
#
# Clock goes back 1-hr on Dec 31 night.
# <a href="http://www.thedailystar.net/newDesign/news-details.php?nid=119228">
# http://www.thedailystar.net/newDesign/news-details.php?nid=119228
# </a>
# and
# <a href="http://www.worldtimezone.com/dst_news/dst_news_bangladesh05.html">
# http://www.worldtimezone.com/dst_news/dst_news_bangladesh05.html
# </a>
#
# "...The government yesterday decided to put the clock back by one hour
# on December 31 midnight and the new time will continue until March 31,
# 2010 midnight. The decision came at a cabinet meeting at the Prime
# Minister's Office last night..."
# From Danvin Ruangchan (2009-12-24):
# ...the news mentions DST will be turned off again 7 months after March
# 31st on Oct 31, 2010.
# From Arthur David Olson (2009-12-26):
# Indeed, "The government will advance again the Banglasdesh Standard
# Time by one one hour on March 31 next year by enforcing the Daylight
# Saving Time (DST) for seven months. It will continue till October 31
# until further notice." I take that last sentence as the
# establishment of a rule.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Dhaka 2009 only - Jun 19 23:00 1:00 S
Rule Dhaka 2010 only - Jan 1 0:00 0 -
Rule Dhaka 2010 max - Mar 31 23:00 1:00 S
Rule Dhaka 2010 max - Nov 1 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Dhaka 6:01:40 - LMT 1890
5:53:20 - HMT 1941 Oct # Howrah Mean Time?
...
...
@@ -225,8 +260,8 @@ Zone Asia/Dhaka 6:01:40 - LMT 1890
5:30 - IST 1942 Sep
6:30 - BURT 1951 Sep 30
6:00 - DACT 1971 Mar 26 # Dacca Time
6:00 - BDT 2009
Jun 19 23:00 # Bangladesh Time
6:00
1:00 BDS
T
6:00 - BDT 2009
6:00
Dhaka BD%s
T
# Bhutan
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
...
...
@@ -385,6 +420,69 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 # or Urumchi
# West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke,
# Zhaosu, Tekesi, Gongliu, Chabuchaer, Huocheng, Bole, Pishan, Suiding,
# and Yarkand.
# From Luther Ma (2009-10-17):
# Almost all (>99.9%) ethnic Chinese (properly ethnic Han) living in
# Xinjiang use Chinese Standard Time. Some are aware of Xinjiang time,
# but have no need of it. All planes, trains, and schools function on
# what is called "Beijing time." When Han make an appointment in Chinese
# they implicitly use Beijing time.
#
# On the other hand, ethnic Uyghurs, who make up about half the
# population of Xinjiang, typically use "Xinjiang time" which is two
# hours behind Beijing time, or UTC +0600. The government of the Xinjiang
# Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as
# local governments such as the Urumqi city government use both times in
# publications, referring to what is popularly called Xinjiang time as
# "Urumqi time." When Uyghurs make an appointment in the Uyghur language
# they almost invariably use Xinjiang time.
#
# (Their ethnic Han compatriots would typically have no clue of its
# widespread use, however, because so extremely few of them are fluent in
# Uyghur, comparable to the number of Anglo-Americans fluent in Navajo.)
#
# (...As with the rest of China there was a brief interval ending in 1990
# or 1991 when summer time was in use. The confusion was severe, with
# the province not having dual times but four times in use at the same
# time. Some areas remained on standard Xinjiang time or Beijing time and
# others moving their clocks ahead.)
#
# ...an example of an official website using of Urumqi time.
#
# The first few lines of the Google translation of
# <a href="http://www.fjysgl.gov.cn/show.aspx?id=2379&cid=39">
# http://www.fjysgl.gov.cn/show.aspx?id=2379&cid=39
# </a>
# (retrieved 2009-10-13)
# > Urumqi fire seven people are missing the alleged losses of at least
# > 500 million yuan
# >
# > (Reporter Dong Liu) the day before 20:20 or so (Urumqi Time 18:20),
# > Urumqi City Department of International Plaza Luther Qiantang River
# > burst fire. As of yesterday, 18:30, Urumqi City Fire officers and men
# > have worked continuously for 22 hours...
# From Luther Ma (2009-11-19):
# With the risk of being redundant to previous answers these are the most common
# English "transliterations" (w/o using non-English symbols):
#
# 1. Wulumuqi...
# 2. Kashi...
# 3. Urumqi...
# 4. Kashgar...
# ...
# 5. It seems that Uyghurs in Urumqi has been using Xinjiang since at least the
# 1960's. I know of one Han, now over 50, who grew up in the surrounding
# countryside and used Xinjiang time as a child.
#
# 6. Likewise for Kashgar and the rest of south Xinjiang I don't know of any
# start date for Xinjiang time.
#
# Without having access to local historical records, nor the ability to legally
# publish them, I would go with October 1, 1949, when Xinjiang became the Uyghur
# Autonomous Region under the PRC. (Before that Uyghurs, of course, would also
# not be using Beijing time, but some local time.)
Zone Asia/Kashgar 5:03:56 - LMT 1928 # or Kashi or Kaxgar
5:30 - KAST 1940 # Kashgar Time
5:00 - KAST 1980 May
...
...
@@ -392,8 +490,8 @@ Zone Asia/Kashgar 5:03:56 - LMT 1928 # or Kashi or Kaxgar
# From Lee Yiu Chung (2009-10-24):
# I found there are some mistakes for the
historial
DST rule for Hong
# Kong.
Accoring
to the DST record from Hong Kong Observatory (actually,
# I found there are some mistakes for the
...
DST rule for Hong
# Kong.
[According]
to the DST record from Hong Kong Observatory (actually,
# it is not [an] observatory, but the official meteorological agency of HK,
# and also serves as the official timing agency), there are some missing
# and incorrect rules. Although the exact switch over time is missing, I
...
...
jdk/make/sun/javazic/tzdata/australasia
浏览文件 @
277b2050
...
...
@@ -270,9 +270,30 @@ Zone Indian/Cocos 6:27:40 - LMT 1900
6:30 - CCT # Cocos Islands Time
# Fiji
# From Alexander Krivenyshev (2009-11-10):
# According to Fiji Broadcasting Corporation, Fiji plans to re-introduce DST
# from November 29th 2009 to April 25th 2010.
#
# "Daylight savings to commence this month"
# <a href="http://www.radiofiji.com.fj/fullstory.php?id=23719">
# http://www.radiofiji.com.fj/fullstory.php?id=23719
# </a>
# or
# <a href="http://www.worldtimezone.com/dst_news/dst_news_fiji01.html">
# http://www.worldtimezone.com/dst_news/dst_news_fiji01.html
# </a>
# From Steffen Thorsen (2009-11-10):
# The Fiji Government has posted some more details about the approved
# amendments:
# <a href="http://www.fiji.gov.fj/publish/page_16198.shtml">
# http://www.fiji.gov.fj/publish/page_16198.shtml
# </a>
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S
Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
Rule Fiji 2009 only - Nov 29 2:00 1:00 S
Rule Fiji 2010 only - Apr 25 3:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Fiji 11:53:40 - LMT 1915 Oct 26 # Suva
12:00 Fiji FJ%sT # Fiji Time
...
...
jdk/make/sun/javazic/tzdata/europe
浏览文件 @
277b2050
...
...
@@ -2152,12 +2152,20 @@ Zone Asia/Irkutsk 6:57:20 - LMT 1880
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
# Aginskij Buryatskij avtonomnyj okrug, Amurskaya oblast',
# [parts of] Respublika Sakha (Yakutiya), Chitinskaya oblast'.
# From Oscar van Vlijmen (2009-11-29):
# ...some regions of RUssia were merged with others since 2005...
# Some names were changed, no big deal, except for one instance: a new name.
# YAK/YAKST: UTC+9 Zabajkal'skij kraj.
# From Oscar van Vlijmen (2009-11-29):
# The Sakha districts are: Aldanskij, Amginskij, Anabarskij,
#
Bulunskij, Verkhnekolymskij,
Verkhnevilyujskij, Vilyujskij, Gornyj,
# Verkhnevilyujskij, Vilyujskij, Gornyj,
# Zhiganskij, Kobyajskij, Lenskij, Megino-Kangalasskij, Mirninskij,
# Namskij, Nyurbinskij, Olen
ekskij, Olekminskij, Srednekolym
skij,
# Namskij, Nyurbinskij, Olen
yokskij, Olyokmin
skij,
# Suntarskij, Tattinskij, Ust'-Aldanskij, Khangalasskij,
# Churapchinskij, Eveno-Bytantajskij.
# Churapchinskij, Eveno-Bytantajskij Natsional'nij.
Zone Asia/Yakutsk 8:38:40 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time
9:00 Russia YAK%sT 1991 Mar 31 2:00s
...
...
@@ -2167,7 +2175,9 @@ Zone Asia/Yakutsk 8:38:40 - LMT 1919 Dec 15
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
# Evrejskaya avtonomnaya oblast', Khabarovskij kraj, Primorskij kraj,
# [parts of] Respublika Sakha (Yakutiya).
# The Sakha districts are: Verkhoyanskij, Tomponskij, Ust'-Majskij,
# From Oscar van Vlijmen (2009-11-29):
# The Sakha districts are: Bulunskij, Verkhoyanskij, Tomponskij, Ust'-Majskij,
# Ust'-Yanskij.
Zone Asia/Vladivostok 8:47:44 - LMT 1922 Nov 15
9:00 - VLAT 1930 Jun 21 # Vladivostok Time
...
...
@@ -2188,8 +2198,10 @@ Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
# Magadanskaya oblast', Respublika Sakha (Yakutiya).
# Probably also: Kuril Islands.
# The Sakha districts are: Abyjskij, Allaikhovskij, Momskij,
# Nizhnekolymskij, Ojmyakonskij.
# From Oscar van Vlijmen (2009-11-29):
# The Sakha districts are: Abyjskij, Allaikhovskij, Verkhhhnekolymskij, Momskij,
# Nizhnekolymskij, Ojmyakonskij, Srednekolymskij.
Zone Asia/Magadan 10:03:12 - LMT 1924 May 2
10:00 - MAGT 1930 Jun 21 # Magadan Time
11:00 Russia MAG%sT 1991 Mar 31 2:00s
...
...
jdk/make/sun/javazic/tzdata/northamerica
浏览文件 @
277b2050
...
...
@@ -1977,6 +1977,58 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
# http://www.conae.gob.mx/ahorro/horaver2001_m1_2002.html (2002-02-20)
# confirms this. Sonora as usual is the only state where DST is not applied.
# From Steffen Thorsen (2009-12-28):
#
# Steffen Thorsen wrote:
# > Mexico's House of Representatives has approved a proposal for northern
# > Mexico's border cities to share the same daylight saving schedule as
# > the United States.
# Now this has passed both the Congress and the Senate, so starting from
# 2010, some border regions will be the same:
# <a href="http://www.signonsandiego.com/news/2009/dec/28/clocks-will-match-both-sides-border/">
# http://www.signonsandiego.com/news/2009/dec/28/clocks-will-match-both-sides-border/
# </a>
# <a href="http://www.elmananarey.com/diario/noticia/nacional/noticias/empatan_horario_de_frontera_con_eu/621939">
# http://www.elmananarey.com/diario/noticia/nacional/noticias/empatan_horario_de_frontera_con_eu/621939
# </a>
# (Spanish)
#
# Could not find the new law text, but the proposed law text changes are here:
# <a href="http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/20091210-V.pdf">
# http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/20091210-V.pdf
# </a>
# (Gaceta Parlamentaria)
#
# There is also a list of the votes here:
# <a href="http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/V2-101209.html">
# http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/V2-101209.html
# </a>
#
# Our page:
# <a href="http://www.timeanddate.com/news/time/north-mexico-dst-change.html">
# http://www.timeanddate.com/news/time/north-mexico-dst-change.html
# </a>
# From Arthur David Olson (2010-01-20):
# The page
# <a href="http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010">
# http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010
# </a>
# includes this text:
# En los municipios fronterizos de Tijuana y Mexicali en Baja California;
# Juárez y Ojinaga en Chihuahua; Acuña y Piedras Negras en Coahuila;
# Anáhuac en Nuevo León; y Nuevo Laredo, Reynosa y Matamoros en
# Tamaulipas, la aplicación de este horario estacional surtirá efecto
# desde las dos horas del segundo domingo de marzo y concluirá a las dos
# horas del primer domingo de noviembre.
# En los municipios fronterizos que se encuentren ubicados en la franja
# fronteriza norte en el territorio comprendido entre la línea
# internacional y la línea paralela ubicada a una distancia de veinte
# kilómetros, así como la Ciudad de Ensenada, Baja California, hacia el
# interior del país, la aplicación de este horario estacional surtirá
# efecto desde las dos horas del segundo domingo de marzo y concluirá a
# las dos horas del primer domingo de noviembre.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mexico 1939 only - Feb 5 0:00 1:00 D
Rule Mexico 1939 only - Jun 25 0:00 0 S
...
...
@@ -2003,13 +2055,19 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32
-6:00 - CST 1981 Dec 23
-5:00 - EST 1982 Dec 2
-6:00 Mexico C%sT
# Coahuila, Durango, Nuevo Leon, Tamaulipas
# Coahuila, Durango, Nuevo Leon, Tamaulipas (near US border)
Zone America/Matamoros -6:40:00 - LMT 1921 Dec 31 23:20:00
-6:00 - CST 1988
-6:00 US C%sT 1989
-6:00 Mexico C%sT 2010
-6:00 US C%sT
# Coahuila, Durango, Nuevo Leon, Tamaulipas (away from US border)
Zone America/Monterrey -6:41:16 - LMT 1921 Dec 31 23:18:44
-6:00 - CST 1988
-6:00 US C%sT 1989
-6:00 Mexico C%sT
# Central Mexico
Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1
0:23:24
Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
...
...
@@ -2018,7 +2076,19 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
-6:00 Mexico C%sT 2001 Sep 30 02:00
-6:00 - CST 2002 Feb 20
-6:00 Mexico C%sT
# Chihuahua
# Chihuahua (near US border)
Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 0:02:20
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
-6:00 - CST 1931 Oct
-7:00 - MST 1932 Apr 1
-6:00 - CST 1996
-6:00 Mexico C%sT 1998
-6:00 - CST 1998 Apr Sun>=1 3:00
-7:00 Mexico M%sT 2010
-7:00 US M%sT
# Chihuahua (away from US border)
Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
...
...
@@ -2052,8 +2122,28 @@ Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20
-7:00 - MST 1949 Jan 14
-8:00 - PST 1970
-7:00 Mexico M%sT
# Baja California
# Baja California
(near US border)
Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
-7:00 - MST 1924
-8:00 - PST 1927 Jun 10 23:00
-7:00 - MST 1930 Nov 15
-8:00 - PST 1931 Apr 1
-8:00 1:00 PDT 1931 Sep 30
-8:00 - PST 1942 Apr 24
-8:00 1:00 PWT 1945 Aug 14 23:00u
-8:00 1:00 PPT 1945 Nov 12 # Peace
-8:00 - PST 1948 Apr 5
-8:00 1:00 PDT 1949 Jan 14
-8:00 - PST 1954
-8:00 CA P%sT 1961
-8:00 - PST 1976
-8:00 US P%sT 1996
-8:00 Mexico P%sT 2001
-8:00 US P%sT 2002 Feb 20
-8:00 Mexico P%sT 2010
-8:00 US P%sT
# Baja California (away from US border)
Zone America/Santa_Isabel -7:39:28 - LMT 1922 Jan 1 0:20:32
-7:00 - MST 1924
-8:00 - PST 1927 Jun 10 23:00
-7:00 - MST 1930 Nov 15
...
...
jdk/make/sun/javazic/tzdata/zone.tab
浏览文件 @
277b2050
...
...
@@ -301,11 +301,14 @@ MW -1547+03500 Africa/Blantyre
MX +1924-09909 America/Mexico_City Central Time - most locations
MX +2105-08646 America/Cancun Central Time - Quintana Roo
MX +2058-08937 America/Merida Central Time - Campeche, Yucatan
MX +2540-10019 America/Monterrey Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas
MX +2540-10019 America/Monterrey Mexican Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas away from US border
MX +2550-09730 America/Matamoros US Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas near US border
MX +2313-10625 America/Mazatlan Mountain Time - S Baja, Nayarit, Sinaloa
MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua
MX +2838-10605 America/Chihuahua Mexican Mountain Time - Chihuahua away from US border
MX +2934-10425 America/Ojinaga US Mountain Time - Chihuahua near US border
MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora
MX +3232-11701 America/Tijuana Pacific Time
MX +3232-11701 America/Tijuana US Pacific Time - Baja California near US border
MX +3018-11452 America/Santa_Isabel Mexican Pacific Time - Baja California away from US border
MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia
MY +0133+11020 Asia/Kuching Sabah & Sarawak
MZ -2558+03235 Africa/Maputo
...
...
jdk/src/share/classes/com/sun/jndi/ldap/Filter.java
浏览文件 @
277b2050
/*
* Copyright 1999-20
07
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1999-20
10
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
...
...
@@ -33,6 +33,7 @@ import java.io.IOException;
/**
* LDAP (RFC-1960) and LDAPv3 (RFC-2254) search filters.
*
* @author Xuelei Fan
* @author Vincent Ryan
* @author Jagane Sundar
* @author Rosanna Lee
...
...
@@ -258,7 +259,7 @@ final class Filter {
byte
[]
answer
=
new
byte
[
j
];
System
.
arraycopy
(
tbuf
,
0
,
answer
,
0
,
j
);
if
(
dbg
)
{
Ber
.
dumpBER
(
System
.
err
,
null
,
answer
,
0
,
j
);
Ber
.
dumpBER
(
System
.
err
,
""
,
answer
,
0
,
j
);
}
return
answer
;
}
...
...
@@ -330,7 +331,7 @@ final class Filter {
}
valueStart
=
eq
+
1
;
// value starts after equal sign
valueStart
=
eq
+
1
;
// value starts after equal sign
valueEnd
=
filtEnd
;
typeStart
=
filtStart
;
// beginning of string
...
...
@@ -355,20 +356,199 @@ final class Filter {
break
;
default
:
typeEnd
=
eq
;
//initializing ftype to make the compiler happy
ftype
=
0x00
;
break
;
}
if
(
dbg
)
{
System
.
err
.
println
(
"type: "
+
typeStart
+
", "
+
typeEnd
);
System
.
err
.
println
(
"value: "
+
valueStart
+
", "
+
valueEnd
);
}
// check validity of type
//
// RFC4512 defines the type as the following ABNF:
// attr = attributedescription
// attributedescription = attributetype options
// attributetype = oid
// oid = descr / numericoid
// descr = keystring
// keystring = leadkeychar *keychar
// leadkeychar = ALPHA
// keychar = ALPHA / DIGIT / HYPHEN
// numericoid = number 1*( DOT number )
// number = DIGIT / ( LDIGIT 1*DIGIT )
// options = *( SEMI option )
// option = 1*keychar
//
// And RFC4515 defines the extensible type as the following ABNF:
// attr [dnattrs] [matchingrule] / [dnattrs] matchingrule
int
optionsStart
=
-
1
;
int
extensibleStart
=
-
1
;
if
((
filter
[
typeStart
]
>=
'0'
&&
filter
[
typeStart
]
<=
'9'
)
||
(
filter
[
typeStart
]
>=
'A'
&&
filter
[
typeStart
]
<=
'Z'
)
||
(
filter
[
typeStart
]
>=
'a'
&&
filter
[
typeStart
]
<=
'z'
))
{
boolean
isNumericOid
=
filter
[
typeStart
]
>=
'0'
&&
filter
[
typeStart
]
<=
'9'
;
for
(
int
i
=
typeStart
+
1
;
i
<
typeEnd
;
i
++)
{
// ';' is an indicator of attribute options
if
(
filter
[
i
]
==
';'
)
{
if
(
isNumericOid
&&
filter
[
i
-
1
]
==
'.'
)
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
// attribute options
optionsStart
=
i
;
break
;
}
// ':' is an indicator of extensible rules
if
(
filter
[
i
]
==
':'
&&
ftype
==
LDAP_FILTER_EXT
)
{
if
(
isNumericOid
&&
filter
[
i
-
1
]
==
'.'
)
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
// extensible matching
extensibleStart
=
i
;
break
;
}
if
(
isNumericOid
)
{
// numeric object identifier
if
((
filter
[
i
]
==
'.'
&&
filter
[
i
-
1
]
==
'.'
)
||
(
filter
[
i
]
!=
'.'
&&
!(
filter
[
i
]
>=
'0'
&&
filter
[
i
]
<=
'9'
)))
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
}
else
{
// descriptor
if
(
filter
[
i
]
!=
'-'
&&
!(
filter
[
i
]
>=
'0'
&&
filter
[
i
]
<=
'9'
)
&&
!(
filter
[
i
]
>=
'A'
&&
filter
[
i
]
<=
'Z'
)
&&
!(
filter
[
i
]
>=
'a'
&&
filter
[
i
]
<=
'z'
))
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
}
}
}
else
if
(
ftype
==
LDAP_FILTER_EXT
&&
filter
[
typeStart
]
==
':'
)
{
// extensible matching
extensibleStart
=
typeStart
;
}
else
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
// check attribute options
if
(
optionsStart
>
0
)
{
for
(
int
i
=
optionsStart
+
1
;
i
<
typeEnd
;
i
++)
{
if
(
filter
[
i
]
==
';'
)
{
if
(
filter
[
i
-
1
]
==
';'
)
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
continue
;
}
// ':' is an indicator of extensible rules
if
(
filter
[
i
]
==
':'
&&
ftype
==
LDAP_FILTER_EXT
)
{
if
(
filter
[
i
-
1
]
==
';'
)
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
// extensible matching
extensibleStart
=
i
;
break
;
}
if
(
filter
[
i
]
!=
'-'
&&
!(
filter
[
i
]
>=
'0'
&&
filter
[
i
]
<=
'9'
)
&&
!(
filter
[
i
]
>=
'A'
&&
filter
[
i
]
<=
'Z'
)
&&
!(
filter
[
i
]
>=
'a'
&&
filter
[
i
]
<=
'z'
))
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
}
}
// check extensible matching
if
(
extensibleStart
>
0
)
{
boolean
isMatchingRule
=
false
;
for
(
int
i
=
extensibleStart
+
1
;
i
<
typeEnd
;
i
++)
{
if
(
filter
[
i
]
==
':'
)
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
else
if
((
filter
[
i
]
>=
'0'
&&
filter
[
i
]
<=
'9'
)
||
(
filter
[
i
]
>=
'A'
&&
filter
[
i
]
<=
'Z'
)
||
(
filter
[
i
]
>=
'a'
&&
filter
[
i
]
<=
'z'
))
{
boolean
isNumericOid
=
filter
[
i
]
>=
'0'
&&
filter
[
i
]
<=
'9'
;
i
++;
for
(
int
j
=
i
;
j
<
typeEnd
;
j
++,
i
++)
{
// allows no more than two extensible rules
if
(
filter
[
j
]
==
':'
)
{
if
(
isMatchingRule
)
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
if
(
isNumericOid
&&
filter
[
j
-
1
]
==
'.'
)
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
isMatchingRule
=
true
;
break
;
}
if
(
isNumericOid
)
{
// numeric object identifier
if
((
filter
[
j
]
==
'.'
&&
filter
[
j
-
1
]
==
'.'
)
||
(
filter
[
j
]
!=
'.'
&&
!(
filter
[
j
]
>=
'0'
&&
filter
[
j
]
<=
'9'
)))
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
}
else
{
// descriptor
if
(
filter
[
j
]
!=
'-'
&&
!(
filter
[
j
]
>=
'0'
&&
filter
[
j
]
<=
'9'
)
&&
!(
filter
[
j
]
>=
'A'
&&
filter
[
j
]
<=
'Z'
)
&&
!(
filter
[
j
]
>=
'a'
&&
filter
[
j
]
<=
'z'
))
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
}
}
}
else
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
}
}
// ensure the latest byte is not isolated
if
(
filter
[
typeEnd
-
1
]
==
'.'
||
filter
[
typeEnd
-
1
]
==
';'
||
filter
[
typeEnd
-
1
]
==
':'
)
{
throw
new
InvalidSearchFilterException
(
"invalid attribute description"
);
}
if
(
typeEnd
==
eq
)
{
// filter type is of "equal"
if
(
findUnescaped
(
filter
,
'*'
,
valueStart
,
valueEnd
)
==
-
1
)
{
ftype
=
LDAP_FILTER_EQUALITY
;
}
else
if
(
filter
[
valueStart
]
==
'*'
&&
valueStart
==
(
valueEnd
-
1
))
{
}
else
if
(
filter
[
valueStart
]
==
'*'
&&
valueStart
==
(
valueEnd
-
1
))
{
ftype
=
LDAP_FILTER_PRESENT
;
}
else
{
encodeSubstringFilter
(
ber
,
filter
,
typeStart
,
typeEnd
,
valueStart
,
valueEnd
);
return
;
}
break
;
}
if
(
dbg
)
{
System
.
err
.
println
(
"type: "
+
typeStart
+
", "
+
typeEnd
);
System
.
err
.
println
(
"value: "
+
valueStart
+
", "
+
valueEnd
);
}
if
(
ftype
==
LDAP_FILTER_PRESENT
)
{
...
...
@@ -379,7 +559,7 @@ final class Filter {
}
else
{
ber
.
beginSeq
(
ftype
);
ber
.
encodeOctetString
(
filter
,
Ber
.
ASN_OCTET_STR
,
typeStart
,
typeEnd
-
typeStart
);
typeStart
,
typeEnd
-
typeStart
);
ber
.
encodeOctetString
(
unescapeFilterValue
(
filter
,
valueStart
,
valueEnd
),
Ber
.
ASN_OCTET_STR
);
...
...
@@ -623,7 +803,8 @@ final class Filter {
//
////////////////////////////////////////////////////////////////////////////
private
static
final
boolean
dbg
=
false
;
// private static final boolean dbg = false;
private
static
final
boolean
dbg
=
true
;
private
static
int
dbgIndent
=
0
;
private
static
void
dprint
(
String
msg
)
{
...
...
jdk/src/share/classes/java/awt/AlphaComposite.java
浏览文件 @
277b2050
...
...
@@ -614,14 +614,15 @@ public final class AlphaComposite implements Composite {
}
private
AlphaComposite
(
int
rule
,
float
alpha
)
{
if
(
alpha
<
0.0f
||
alpha
>
1.0f
)
{
throw
new
IllegalArgumentException
(
"alpha value out of range"
);
}
if
(
rule
<
MIN_RULE
||
rule
>
MAX_RULE
)
{
throw
new
IllegalArgumentException
(
"unknown composite rule"
);
}
this
.
rule
=
rule
;
this
.
extraAlpha
=
alpha
;
if
(
alpha
>=
0.0f
&&
alpha
<=
1.0f
)
{
this
.
rule
=
rule
;
this
.
extraAlpha
=
alpha
;
}
else
{
throw
new
IllegalArgumentException
(
"alpha value out of range"
);
}
}
/**
...
...
jdk/src/share/classes/java/beans/BeanDescriptor.java
浏览文件 @
277b2050
/*
* Copyright 1996-20
04
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1996-20
10
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
...
...
@@ -101,4 +101,9 @@ public class BeanDescriptor extends FeatureDescriptor {
beanClassRef
=
old
.
beanClassRef
;
customizerClassRef
=
old
.
customizerClassRef
;
}
void
appendTo
(
StringBuilder
sb
)
{
appendTo
(
sb
,
"beanClass"
,
this
.
beanClassRef
);
appendTo
(
sb
,
"customizerClass"
,
this
.
customizerClassRef
);
}
}
jdk/src/share/classes/java/beans/EventSetDescriptor.java
浏览文件 @
277b2050
/*
* Copyright 1996-20
08
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1996-20
10
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
...
...
@@ -26,7 +26,6 @@
package
java.beans
;
import
java.lang.ref.Reference
;
import
java.lang.reflect.Method
;
/**
...
...
@@ -357,8 +356,7 @@ public class EventSetDescriptor extends FeatureDescriptor {
* @return The method used to register a listener at the event source.
*/
public
synchronized
Method
getAddListenerMethod
()
{
return
(
addMethodDescriptor
!=
null
?
addMethodDescriptor
.
getMethod
()
:
null
);
return
getMethod
(
this
.
addMethodDescriptor
);
}
private
synchronized
void
setAddListenerMethod
(
Method
method
)
{
...
...
@@ -378,8 +376,7 @@ public class EventSetDescriptor extends FeatureDescriptor {
* @return The method used to remove a listener at the event source.
*/
public
synchronized
Method
getRemoveListenerMethod
()
{
return
(
removeMethodDescriptor
!=
null
?
removeMethodDescriptor
.
getMethod
()
:
null
);
return
getMethod
(
this
.
removeMethodDescriptor
);
}
private
synchronized
void
setRemoveListenerMethod
(
Method
method
)
{
...
...
@@ -401,8 +398,7 @@ public class EventSetDescriptor extends FeatureDescriptor {
* @since 1.4
*/
public
synchronized
Method
getGetListenerMethod
()
{
return
(
getMethodDescriptor
!=
null
?
getMethodDescriptor
.
getMethod
()
:
null
);
return
getMethod
(
this
.
getMethodDescriptor
);
}
private
synchronized
void
setGetListenerMethod
(
Method
method
)
{
...
...
@@ -522,4 +518,19 @@ public class EventSetDescriptor extends FeatureDescriptor {
unicast
=
old
.
unicast
;
inDefaultEventSet
=
old
.
inDefaultEventSet
;
}
void
appendTo
(
StringBuilder
sb
)
{
appendTo
(
sb
,
"unicast"
,
this
.
unicast
);
appendTo
(
sb
,
"inDefaultEventSet"
,
this
.
inDefaultEventSet
);
appendTo
(
sb
,
"listenerType"
,
this
.
listenerTypeRef
);
appendTo
(
sb
,
"getListenerMethod"
,
getMethod
(
this
.
getMethodDescriptor
));
appendTo
(
sb
,
"addListenerMethod"
,
getMethod
(
this
.
addMethodDescriptor
));
appendTo
(
sb
,
"removeListenerMethod"
,
getMethod
(
this
.
removeMethodDescriptor
));
}
private
static
Method
getMethod
(
MethodDescriptor
descriptor
)
{
return
(
descriptor
!=
null
)
?
descriptor
.
getMethod
()
:
null
;
}
}
jdk/src/share/classes/java/beans/FeatureDescriptor.java
浏览文件 @
277b2050
/*
* Copyright 1996-20
08
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1996-20
10
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
...
...
@@ -35,6 +35,7 @@ import java.lang.reflect.Method;
import
java.util.Enumeration
;
import
java.util.Hashtable
;
import
java.util.Map.Entry
;
/**
* The FeatureDescriptor class is the common baseclass for PropertyDescriptor,
...
...
@@ -393,4 +394,52 @@ public class FeatureDescriptor {
private
String
name
;
private
String
displayName
;
private
Hashtable
<
String
,
Object
>
table
;
/**
* Returns a string representation of the object.
*
* @return a string representation of the object
*
* @since 1.7
*/
public
String
toString
()
{
StringBuilder
sb
=
new
StringBuilder
(
getClass
().
getName
());
sb
.
append
(
"[name="
).
append
(
this
.
name
);
appendTo
(
sb
,
"displayName"
,
this
.
displayName
);
appendTo
(
sb
,
"shortDescription"
,
this
.
shortDescription
);
appendTo
(
sb
,
"preferred"
,
this
.
preferred
);
appendTo
(
sb
,
"hidden"
,
this
.
hidden
);
appendTo
(
sb
,
"expert"
,
this
.
expert
);
if
((
this
.
table
!=
null
)
&&
!
this
.
table
.
isEmpty
())
{
sb
.
append
(
"; values={"
);
for
(
Entry
<
String
,
Object
>
entry
:
this
.
table
.
entrySet
())
{
sb
.
append
(
entry
.
getKey
()).
append
(
"="
).
append
(
entry
.
getValue
()).
append
(
"; "
);
}
sb
.
setLength
(
sb
.
length
()
-
2
);
sb
.
append
(
"}"
);
}
appendTo
(
sb
);
return
sb
.
append
(
"]"
).
toString
();
}
void
appendTo
(
StringBuilder
sb
)
{
}
static
void
appendTo
(
StringBuilder
sb
,
String
name
,
Reference
reference
)
{
if
(
reference
!=
null
)
{
appendTo
(
sb
,
name
,
reference
.
get
());
}
}
static
void
appendTo
(
StringBuilder
sb
,
String
name
,
Object
value
)
{
if
(
value
!=
null
)
{
sb
.
append
(
"; "
).
append
(
name
).
append
(
"="
).
append
(
value
);
}
}
static
void
appendTo
(
StringBuilder
sb
,
String
name
,
boolean
value
)
{
if
(
value
)
{
sb
.
append
(
"; "
).
append
(
name
);
}
}
}
jdk/src/share/classes/java/beans/IndexedPropertyChangeEvent.java
浏览文件 @
277b2050
/*
* Copyright 2003-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-20
10
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 class IndexedPropertyChangeEvent extends PropertyChangeEvent {
this
.
index
=
index
;
}
/**
* Gets the index of the property that was changed.
*
...
...
@@ -72,4 +71,8 @@ public class IndexedPropertyChangeEvent extends PropertyChangeEvent {
public
int
getIndex
()
{
return
index
;
}
void
appendTo
(
StringBuilder
sb
)
{
sb
.
append
(
"; index="
).
append
(
getIndex
());
}
}
jdk/src/share/classes/java/beans/IndexedPropertyDescriptor.java
浏览文件 @
277b2050
/*
* Copyright 1996-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1996-20
10
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
...
...
@@ -26,7 +26,6 @@
package
java.beans
;
import
java.lang.ref.Reference
;
import
java.lang.reflect.Method
;
/**
...
...
@@ -117,8 +116,7 @@ public class IndexedPropertyDescriptor extends PropertyDescriptor {
* This constructor takes the name of a simple property, and Method
* objects for reading and writing the property.
*
* @param propertyName The programmatic name of the pro
perty.
* @param propertyName The programmatic name of the property.
* @param readMethod The method used for reading the property values as an array.
* May be null if the property is write-only or must be indexed.
* @param writeMethod The method used for writing the property values as an array.
...
...
@@ -518,20 +516,10 @@ perty.
return
result
;
}
/*
public String toString() {
String message = super.toString();
message += ", indexedType=";
message += getIndexedPropertyType();
message += ", indexedWriteMethod=";
message += indexedWriteMethodName;
message += ", indexedReadMethod=";
message += indexedReadMethodName;
return message;
void
appendTo
(
StringBuilder
sb
)
{
super
.
appendTo
(
sb
);
appendTo
(
sb
,
"indexedPropertyType"
,
this
.
indexedPropertyTypeRef
);
appendTo
(
sb
,
"indexedReadMethod"
,
this
.
indexedReadMethodRef
);
appendTo
(
sb
,
"indexedWriteMethod"
,
this
.
indexedWriteMethodRef
);
}
*/
}
jdk/src/share/classes/java/beans/MethodDescriptor.java
浏览文件 @
277b2050
/*
* Copyright 1996-20
03
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1996-20
10
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
...
...
@@ -27,9 +27,7 @@ package java.beans;
import
java.lang.ref.Reference
;
import
java.lang.ref.WeakReference
;
import
java.lang.reflect.Method
;
import
java.util.List
;
import
java.util.ArrayList
;
...
...
@@ -166,23 +164,6 @@ public class MethodDescriptor extends FeatureDescriptor {
return
parameterDescriptors
;
}
/*
public String toString() {
String message = "name=" + getName();
Class cls = getClass0();
if (cls != null) {
message += ", class=";
message += cls.getName();
}
String[] names = getParamNames();
if (names != null) {
for (int i = 0; i < names.length; i++) {
message += ", param=" + names[i];
}
}
return message;
} */
/*
* Package-private constructor
* Merge two method descriptors. Where they conflict, give the
...
...
@@ -233,4 +214,15 @@ public class MethodDescriptor extends FeatureDescriptor {
}
}
void
appendTo
(
StringBuilder
sb
)
{
appendTo
(
sb
,
"method"
,
this
.
methodRef
);
if
(
this
.
parameterDescriptors
!=
null
)
{
sb
.
append
(
"; parameterDescriptors={"
);
for
(
ParameterDescriptor
pd
:
this
.
parameterDescriptors
)
{
sb
.
append
(
pd
).
append
(
", "
);
}
sb
.
setLength
(
sb
.
length
()
-
2
);
sb
.
append
(
"}"
);
}
}
}
jdk/src/share/classes/java/beans/PropertyChangeEvent.java
浏览文件 @
277b2050
/*
* Copyright 1996-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1996-20
10
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
...
...
@@ -140,4 +140,25 @@ public class PropertyChangeEvent extends java.util.EventObject {
* @see #getPropagationId
*/
private
Object
propagationId
;
/**
* Returns a string representation of the object.
*
* @return a string representation of the object
*
* @since 1.7
*/
public
String
toString
()
{
StringBuilder
sb
=
new
StringBuilder
(
getClass
().
getName
());
sb
.
append
(
"[propertyName="
).
append
(
getPropertyName
());
appendTo
(
sb
);
sb
.
append
(
"; oldValue="
).
append
(
getOldValue
());
sb
.
append
(
"; newValue="
).
append
(
getNewValue
());
sb
.
append
(
"; propagationId="
).
append
(
getPropagationId
());
sb
.
append
(
"; source="
).
append
(
getSource
());
return
sb
.
append
(
"]"
).
toString
();
}
void
appendTo
(
StringBuilder
sb
)
{
}
}
jdk/src/share/classes/java/beans/PropertyDescriptor.java
浏览文件 @
277b2050
/*
* Copyright 1996-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1996-20
10
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
...
...
@@ -26,7 +26,6 @@
package
java.beans
;
import
java.lang.ref.Reference
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Constructor
;
...
...
@@ -710,22 +709,12 @@ public class PropertyDescriptor extends FeatureDescriptor {
return
baseName
;
}
/*
public String toString() {
String message = "name=" + getName();
message += ", class=" + getClass0();
message += ", type=" + getPropertyType();
message += ", writeMethod=";
message += writeMethodName;
message += ", readMethod=";
message += readMethodName;
message += ", bound=" + bound;
message += ", constrained=" + constrained;
return message;
void
appendTo
(
StringBuilder
sb
)
{
appendTo
(
sb
,
"bound"
,
this
.
bound
);
appendTo
(
sb
,
"constrained"
,
this
.
constrained
);
appendTo
(
sb
,
"propertyEditorClass"
,
this
.
propertyEditorClassRef
);
appendTo
(
sb
,
"propertyType"
,
this
.
propertyTypeRef
);
appendTo
(
sb
,
"readMethod"
,
this
.
readMethodRef
);
appendTo
(
sb
,
"writeMethod"
,
this
.
writeMethodRef
);
}
*/
}
jdk/src/share/classes/java/beans/XMLEncoder.java
浏览文件 @
277b2050
/*
* Copyright 2000-20
06
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2000-20
10
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
...
...
@@ -214,8 +214,8 @@ public class XMLEncoder extends Encoder {
private
Object
owner
;
private
int
indentation
=
0
;
private
boolean
internal
=
false
;
private
Map
valueToExpression
;
private
Map
targetToStatementList
;
private
Map
<
Object
,
ValueData
>
valueToExpression
;
private
Map
<
Object
,
List
<
Statement
>>
targetToStatementList
;
private
boolean
preambleWritten
=
false
;
private
NameGenerator
nameGenerator
;
...
...
@@ -287,8 +287,8 @@ public class XMLEncoder extends Encoder {
this
.
declaration
=
declaration
;
this
.
indentation
=
indentation
;
this
.
out
=
new
OutputStreamWriter
(
out
,
cs
.
newEncoder
());
valueToExpression
=
new
IdentityHashMap
();
targetToStatementList
=
new
IdentityHashMap
();
valueToExpression
=
new
IdentityHashMap
<
Object
,
ValueData
>
();
targetToStatementList
=
new
IdentityHashMap
<
Object
,
List
<
Statement
>>
();
nameGenerator
=
new
NameGenerator
();
}
...
...
@@ -331,13 +331,12 @@ public class XMLEncoder extends Encoder {
}
}
private
Vector
statementList
(
Object
target
)
{
Vector
list
=
(
Vector
)
targetToStatementList
.
get
(
target
);
if
(
list
!=
null
)
{
return
list
;
private
List
<
Statement
>
statementList
(
Object
target
)
{
List
<
Statement
>
list
=
targetToStatementList
.
get
(
target
);
if
(
list
==
null
)
{
list
=
new
ArrayList
<
Statement
>();
targetToStatementList
.
put
(
target
,
list
);
}
list
=
new
Vector
();
targetToStatementList
.
put
(
target
,
list
);
return
list
;
}
...
...
@@ -363,13 +362,13 @@ public class XMLEncoder extends Encoder {
}
d
.
marked
=
true
;
Object
target
=
exp
.
getTarget
();
mark
(
exp
);
if
(!(
target
instanceof
Class
))
{
statementList
(
target
).
add
(
exp
);
// Pending: Why does the reference count need to
// be incremented here?
d
.
refs
++;
}
mark
(
exp
);
}
private
void
mark
(
Statement
stm
)
{
...
...
@@ -463,9 +462,9 @@ public class XMLEncoder extends Encoder {
preambleWritten
=
true
;
}
indentation
++;
Vector
roo
ts
=
statementList
(
this
);
for
(
int
i
=
0
;
i
<
roots
.
size
();
i
++
)
{
Statement
s
=
(
Statement
)
roots
.
get
(
i
);
List
<
Statement
>
statemen
ts
=
statementList
(
this
);
while
(!
statements
.
isEmpty
()
)
{
Statement
s
=
statements
.
remove
(
0
);
if
(
"writeObject"
.
equals
(
s
.
getMethodName
()))
{
outputValue
(
s
.
getArguments
()[
0
],
this
,
true
);
}
...
...
@@ -513,7 +512,7 @@ public class XMLEncoder extends Encoder {
}
private
ValueData
getValueData
(
Object
o
)
{
ValueData
d
=
(
ValueData
)
valueToExpression
.
get
(
o
);
ValueData
d
=
valueToExpression
.
get
(
o
);
if
(
d
==
null
)
{
d
=
new
ValueData
();
valueToExpression
.
put
(
o
,
d
);
...
...
@@ -619,11 +618,11 @@ public class XMLEncoder extends Encoder {
}
if
(
d
.
name
!=
null
)
{
writeln
(
"<object idref="
+
quote
(
d
.
name
)
+
"/>"
);
return
;
outputXML
(
isArgument
?
"object"
:
"void"
,
" idref="
+
quote
(
d
.
name
),
value
);
}
else
if
(
d
.
exp
!=
null
)
{
outputStatement
(
d
.
exp
,
outer
,
isArgument
);
}
outputStatement
(
d
.
exp
,
outer
,
isArgument
);
}
private
static
String
quoteCharCode
(
int
code
)
{
...
...
@@ -683,13 +682,6 @@ public class XMLEncoder extends Encoder {
String
tag
=
(
expression
&&
isArgument
)
?
"object"
:
"void"
;
String
attributes
=
""
;
ValueData
d
=
getValueData
(
value
);
if
(
expression
)
{
if
(
d
.
refs
>
1
)
{
String
instanceName
=
nameGenerator
.
instanceName
(
value
);
d
.
name
=
instanceName
;
attributes
=
attributes
+
" id="
+
quote
(
instanceName
);
}
}
// Special cases for targets.
if
(
target
==
outer
)
{
...
...
@@ -706,13 +698,19 @@ public class XMLEncoder extends Encoder {
else
{
d
.
refs
=
2
;
getValueData
(
target
).
refs
++;
outputValue
(
target
,
outer
,
false
);
if
(
isArgument
)
{
outputValue
(
value
,
outer
,
false
);
List
<
Statement
>
statements
=
statementList
(
target
);
if
(
!
statements
.
contains
(
exp
)
)
{
statements
.
add
(
exp
);
}
outputValue
(
target
,
outer
,
false
);
outputValue
(
value
,
outer
,
isArgument
);
return
;
}
if
(
expression
&&
(
d
.
refs
>
1
))
{
String
instanceName
=
nameGenerator
.
instanceName
(
value
);
d
.
name
=
instanceName
;
attributes
=
attributes
+
" id="
+
quote
(
instanceName
);
}
// Special cases for methods.
if
((!
expression
&&
methodName
.
equals
(
"set"
)
&&
args
.
length
==
2
&&
...
...
@@ -730,8 +728,11 @@ public class XMLEncoder extends Encoder {
else
if
(!
methodName
.
equals
(
"new"
)
&&
!
methodName
.
equals
(
"newInstance"
))
{
attributes
=
attributes
+
" method="
+
quote
(
methodName
);
}
outputXML
(
tag
,
attributes
,
value
,
args
);
}
Vector
statements
=
statementList
(
value
);
private
void
outputXML
(
String
tag
,
String
attributes
,
Object
value
,
Object
...
args
)
{
List
<
Statement
>
statements
=
statementList
(
value
);
// Use XML's short form when there is no body.
if
(
args
.
length
==
0
&&
statements
.
size
()
==
0
)
{
writeln
(
"<"
+
tag
+
attributes
+
"/>"
);
...
...
@@ -745,8 +746,8 @@ public class XMLEncoder extends Encoder {
outputValue
(
args
[
i
],
null
,
true
);
}
for
(
int
i
=
0
;
i
<
statements
.
size
();
i
++
)
{
Statement
s
=
(
Statement
)
statements
.
get
(
i
);
while
(!
statements
.
isEmpty
()
)
{
Statement
s
=
statements
.
remove
(
0
);
outputStatement
(
s
,
value
,
false
);
}
...
...
jdk/src/share/classes/java/lang/Iterable.java
浏览文件 @
277b2050
...
...
@@ -27,8 +27,12 @@ package java.lang;
import
java.util.Iterator
;
/** Implementing this interface allows an object to be the target of
* the "foreach" statement.
/**
* Implementing this interface allows an object to be the target of
* the "foreach" statement.
*
* @param <T> the type of elements returned by the iterator
*
* @since 1.5
*/
public
interface
Iterable
<
T
>
{
...
...
jdk/src/share/classes/java/lang/String.java
浏览文件 @
277b2050
...
...
@@ -1492,7 +1492,7 @@ public final class String
*/
public
int
hashCode
()
{
int
h
=
hash
;
if
(
h
==
0
)
{
if
(
h
==
0
&&
count
>
0
)
{
int
off
=
offset
;
char
val
[]
=
value
;
int
len
=
count
;
...
...
jdk/src/share/classes/java/security/IdentityScope.java
浏览文件 @
277b2050
...
...
@@ -129,7 +129,8 @@ class IdentityScope extends Identity {
/**
* Returns the system's identity scope.
*
* @return the system's identity scope.
* @return the system's identity scope, or {@code null} if none has been
* set.
*
* @see #setSystemScope
*/
...
...
jdk/src/share/classes/java/util/Collection.java
浏览文件 @
277b2050
...
...
@@ -103,6 +103,8 @@ package java.util;
* <a href="{@docRoot}/../technotes/guides/collections/index.html">
* Java Collections Framework</a>.
*
* @param <E> the type of elements in this collection
*
* @author Josh Bloch
* @author Neal Gafter
* @see Set
...
...
jdk/src/share/classes/java/util/DualPivotQuicksort.java
浏览文件 @
277b2050
...
...
@@ -253,7 +253,7 @@ final class DualPivotQuicksort {
a
[
less
]
=
ak
;
}
less
++;
}
else
{
// (a[k] > pivot1) -
Move a[k] to right part
}
else
{
// (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
...
...
@@ -531,7 +531,7 @@ final class DualPivotQuicksort {
a
[
less
]
=
ak
;
}
less
++;
}
else
{
// (a[k] > pivot1) -
Move a[k] to right part
}
else
{
// (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
...
...
@@ -826,7 +826,7 @@ final class DualPivotQuicksort {
a
[
less
]
=
ak
;
}
less
++;
}
else
{
// (a[k] > pivot1) -
Move a[k] to right part
}
else
{
// (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
...
...
@@ -1119,7 +1119,7 @@ final class DualPivotQuicksort {
a
[
less
]
=
ak
;
}
less
++;
}
else
{
// (a[k] > pivot1) -
Move a[k] to right part
}
else
{
// (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
...
...
@@ -1414,7 +1414,7 @@ final class DualPivotQuicksort {
a
[
less
]
=
ak
;
}
less
++;
}
else
{
// (a[k] > pivot1) -
Move a[k] to right part
}
else
{
// (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
...
...
@@ -1531,7 +1531,7 @@ final class DualPivotQuicksort {
* Sorts the specified range of the array into ascending order. The range
* to be sorted extends from the index {@code fromIndex}, inclusive, to
* the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
* the range to be sorted is empty
and the call is a no-op).
* the range to be sorted is empty and the call is a no-op).
*
* <p>The {@code <} relation does not provide a total order on all float
* values: {@code -0.0f == 0.0f} is {@code true} and a {@code Float.NaN}
...
...
@@ -1787,7 +1787,7 @@ final class DualPivotQuicksort {
a
[
less
]
=
ak
;
}
less
++;
}
else
{
// (a[k] > pivot1) -
Move a[k] to right part
}
else
{
// (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
...
...
@@ -2160,7 +2160,7 @@ final class DualPivotQuicksort {
a
[
less
]
=
ak
;
}
less
++;
}
else
{
// (a[k] > pivot1) -
Move a[k] to right part
}
else
{
// (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
...
...
jdk/src/share/classes/java/util/Iterator.java
浏览文件 @
277b2050
...
...
@@ -41,6 +41,8 @@ package java.util;
* <a href="{@docRoot}/../technotes/guides/collections/index.html">
* Java Collections Framework</a>.
*
* @param <E> the type of elements returned by this iterator
*
* @author Josh Bloch
* @see Collection
* @see ListIterator
...
...
jdk/src/share/classes/java/util/List.java
浏览文件 @
277b2050
...
...
@@ -89,6 +89,8 @@ package java.util;
* <a href="{@docRoot}/../technotes/guides/collections/index.html">
* Java Collections Framework</a>.
*
* @param <E> the type of elements in this list
*
* @author Josh Bloch
* @author Neal Gafter
* @see Collection
...
...
jdk/src/share/classes/javax/swing/JTable.java
浏览文件 @
277b2050
...
...
@@ -2506,10 +2506,7 @@ public class JTable extends JComponent implements TableModelListener, Scrollable
Color
old
=
this
.
selectionForeground
;
this
.
selectionForeground
=
selectionForeground
;
firePropertyChange
(
"selectionForeground"
,
old
,
selectionForeground
);
if
(
!
selectionForeground
.
equals
(
old
)
)
{
repaint
();
}
repaint
();
}
/**
...
...
@@ -2547,10 +2544,7 @@ public class JTable extends JComponent implements TableModelListener, Scrollable
Color
old
=
this
.
selectionBackground
;
this
.
selectionBackground
=
selectionBackground
;
firePropertyChange
(
"selectionBackground"
,
old
,
selectionBackground
);
if
(
!
selectionBackground
.
equals
(
old
)
)
{
repaint
();
}
repaint
();
}
/**
...
...
jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java
浏览文件 @
277b2050
...
...
@@ -169,15 +169,13 @@ public class BasicSliderUI extends SliderUI{
+
c
+
" when it only knows about "
+
slider
+
"."
);
LookAndFeel
.
uninstallBorder
(
slider
);
scrollTimer
.
stop
();
scrollTimer
=
null
;
uninstallDefaults
(
slider
);
uninstallListeners
(
slider
);
uninstallKeyboardActions
(
slider
);
focusInsets
=
null
;
insetCache
=
null
;
leftToRightCache
=
true
;
focusRect
=
null
;
...
...
@@ -210,6 +208,12 @@ public class BasicSliderUI extends SliderUI{
if
(
focusInsets
==
null
)
focusInsets
=
new
InsetsUIResource
(
2
,
2
,
2
,
2
);
}
protected
void
uninstallDefaults
(
JSlider
slider
)
{
LookAndFeel
.
uninstallBorder
(
slider
);
focusInsets
=
null
;
}
protected
TrackListener
createTrackListener
(
JSlider
slider
)
{
return
new
TrackListener
();
}
...
...
@@ -1571,20 +1575,8 @@ public class BasicSliderUI extends SliderUI{
offset
=
0
;
scrollTimer
.
stop
();
// This is the way we have to determine snap-to-ticks. It's
// hard to explain but since ChangeEvents don't give us any
// idea what has changed we don't have a way to stop the thumb
// bounds from being recalculated. Recalculating the thumb
// bounds moves the thumb over the current value (i.e., snapping
// to the ticks).
if
(
slider
.
getSnapToTicks
()
/*|| slider.getSnapToValue()*/
)
{
isDragging
=
false
;
slider
.
setValueIsAdjusting
(
false
);
}
else
{
slider
.
setValueIsAdjusting
(
false
);
isDragging
=
false
;
}
isDragging
=
false
;
slider
.
setValueIsAdjusting
(
false
);
slider
.
repaint
();
}
...
...
jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
浏览文件 @
277b2050
...
...
@@ -62,6 +62,7 @@ public class SynthScrollBarUI extends BasicScrollBarUI
(
scrollbar
.
getLayout
()
instanceof
UIResource
))
{
scrollbar
.
setLayout
(
this
);
}
configureScrollBarColors
();
updateStyle
(
scrollbar
);
}
...
...
jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
浏览文件 @
277b2050
...
...
@@ -43,7 +43,7 @@ import sun.swing.SwingUtilities2;
/**
* Provides the Synth L&F UI delegate for
* {@link
javax.swing.
JSlider}.
* {@link JSlider}.
*
* @author Joshua Outwater
* @since 1.7
...
...
@@ -65,7 +65,7 @@ public class SynthSliderUI extends BasicSliderUI
* the slider has not changed sizes since being last layed out. If necessary
* we recompute the layout.
*/
private
Dimension
lastSize
=
null
;
private
Dimension
lastSize
;
private
int
trackHeight
;
private
int
trackBorder
;
...
...
@@ -109,7 +109,7 @@ public class SynthSliderUI extends BasicSliderUI
* Uninstalls default setting. This method is called when a
* {@code LookAndFeel} is uninstalled.
*/
protected
void
uninstallDefaults
()
{
protected
void
uninstallDefaults
(
JSlider
slider
)
{
SynthContext
context
=
getContext
(
slider
,
ENABLED
);
style
.
uninstallDefaults
(
context
);
context
.
dispose
();
...
...
@@ -339,6 +339,7 @@ public class SynthSliderUI extends BasicSliderUI
*/
@Override
protected
void
calculateGeometry
()
{
calculateThumbSize
();
layout
();
calculateThumbLocation
();
}
...
...
@@ -350,10 +351,6 @@ public class SynthSliderUI extends BasicSliderUI
SynthContext
context
=
getContext
(
slider
);
SynthGraphicsUtils
synthGraphics
=
style
.
getGraphicsUtils
(
context
);
// Set the thumb size.
Dimension
size
=
getThumbSize
();
thumbRect
.
setSize
(
size
.
width
,
size
.
height
);
// Get the insets for the track.
Insets
trackInsets
=
new
Insets
(
0
,
0
,
0
,
0
);
SynthContext
trackContext
=
getContext
(
slider
,
Region
.
SLIDER_TRACK
);
...
...
@@ -553,39 +550,6 @@ public class SynthSliderUI extends BasicSliderUI
}
}
/**
* @inheritDoc
*/
@Override
protected
void
calculateTickRect
()
{
if
(
slider
.
getOrientation
()
==
JSlider
.
HORIZONTAL
)
{
tickRect
.
x
=
trackRect
.
x
;
tickRect
.
y
=
trackRect
.
y
+
trackRect
.
height
+
2
+
getTickLength
();
tickRect
.
width
=
trackRect
.
width
;
tickRect
.
height
=
getTickLength
();
if
(!
slider
.
getPaintTicks
())
{
--
tickRect
.
y
;
tickRect
.
height
=
0
;
}
}
else
{
if
(
SynthLookAndFeel
.
isLeftToRight
(
slider
))
{
tickRect
.
x
=
trackRect
.
x
+
trackRect
.
width
;
tickRect
.
width
=
getTickLength
();
}
else
{
tickRect
.
width
=
getTickLength
();
tickRect
.
x
=
trackRect
.
x
-
tickRect
.
width
;
}
tickRect
.
y
=
trackRect
.
y
;
tickRect
.
height
=
trackRect
.
height
;
if
(!
slider
.
getPaintTicks
())
{
--
tickRect
.
x
;
tickRect
.
width
=
0
;
}
}
}
/**
* @inheritDoc
*/
...
...
@@ -865,13 +829,17 @@ public class SynthSliderUI extends BasicSliderUI
valueRect
.
y
,
-
1
);
}
SynthContext
subcontext
=
getContext
(
slider
,
Region
.
SLIDER_TRACK
);
paintTrack
(
subcontext
,
g
,
trackRect
);
subcontext
.
dispose
();
if
(
slider
.
getPaintTrack
()
&&
clip
.
intersects
(
trackRect
))
{
SynthContext
subcontext
=
getContext
(
slider
,
Region
.
SLIDER_TRACK
);
paintTrack
(
subcontext
,
g
,
trackRect
);
subcontext
.
dispose
();
}
subcontext
=
getContext
(
slider
,
Region
.
SLIDER_THUMB
);
paintThumb
(
subcontext
,
g
,
thumbRect
);
subcontext
.
dispose
();
if
(
clip
.
intersects
(
thumbRect
))
{
SynthContext
subcontext
=
getContext
(
slider
,
Region
.
SLIDER_THUMB
);
paintThumb
(
subcontext
,
g
,
thumbRect
);
subcontext
.
dispose
();
}
if
(
slider
.
getPaintTicks
()
&&
clip
.
intersects
(
tickRect
))
{
paintTicks
(
g
);
...
...
jdk/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
浏览文件 @
277b2050
...
...
@@ -45,8 +45,7 @@ import javax.swing.JLabel;
import
javax.swing.JTable
;
import
javax.swing.LookAndFeel
;
import
javax.swing.border.Border
;
import
javax.swing.plaf.ComponentUI
;
import
javax.swing.plaf.UIResource
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicTableUI
;
import
javax.swing.table.DefaultTableCellRenderer
;
import
javax.swing.table.JTableHeader
;
...
...
@@ -158,7 +157,7 @@ public class SynthTableUI extends BasicTableUI
if
(
gridColor
==
null
)
{
gridColor
=
style
.
getColor
(
context
,
ColorType
.
FOREGROUND
);
}
table
.
setGridColor
(
gridColor
);
table
.
setGridColor
(
gridColor
==
null
?
new
ColorUIResource
(
Color
.
GRAY
)
:
gridColor
);
}
useTableColors
=
style
.
getBoolean
(
context
,
...
...
jdk/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
浏览文件 @
277b2050
...
...
@@ -248,23 +248,26 @@ public class SynthToolBarUI extends BasicToolBarUI
toolBar
.
getOrientation
());
}
// Overloaded to do nothing so we can share listeners.
/**
* @inheritDoc
* This implementation does nothing, because the {@code rollover}
* property of the {@code JToolBar} class is not used
* in the Synth Look and Feel.
*/
@Override
protected
void
setBorderToNonRollover
(
Component
c
)
{}
// Overloaded to do nothing so we can share listeners.
/**
* @inheritDoc
* This implementation does nothing, because the {@code rollover}
* property of the {@code JToolBar} class is not used
* in the Synth Look and Feel.
*/
@Override
protected
void
setBorderToRollover
(
Component
c
)
{}
// Overloaded to do nothing so we can share listeners.
/**
* @inheritDoc
* This implementation does nothing, because the {@code rollover}
* property of the {@code JToolBar} class is not used
* in the Synth Look and Feel.
*/
@Override
protected
void
setBorderToNormal
(
Component
c
)
{}
...
...
jdk/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java
浏览文件 @
277b2050
...
...
@@ -173,13 +173,20 @@ public class SynthViewportUI extends ViewportUI
}
/**
* @inheritDoc
* Paints the border. The method is never called,
* because the {@code JViewport} class does not support a border.
* This implementation does nothing.
*
* @param context a component context
* @param g the {@code Graphics} to paint on
* @param x the X coordinate
* @param y the Y coordinate
* @param w width of the border
* @param h height of the border
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
// This does nothing on purpose, JViewport doesn't allow a border
// and therefor this will NEVER be called.
}
/**
...
...
jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java
浏览文件 @
277b2050
...
...
@@ -1461,13 +1461,17 @@ public class DefaultEditorKit extends EditorKit {
// Make sure the new visible location contains
// the location of dot, otherwise Caret will
// cause an additional scroll.
adjustScrollIfNecessary
(
target
,
newVis
,
initialY
,
newIndex
);
if
(
select
)
{
target
.
moveCaretPosition
(
newIndex
);
}
else
{
target
.
setCaretPosition
(
newIndex
);
int
newY
=
getAdjustedY
(
target
,
newVis
,
newIndex
);
if
(
direction
==
-
1
&&
newY
<=
initialY
||
direction
==
1
&&
newY
>=
initialY
)
{
// Change index and correct newVis.y only if won't cause scrolling upward
newVis
.
y
=
newY
;
if
(
select
)
{
target
.
moveCaretPosition
(
newIndex
);
}
else
{
target
.
setCaretPosition
(
newIndex
);
}
}
}
}
catch
(
BadLocationException
ble
)
{
}
...
...
@@ -1513,34 +1517,27 @@ public class DefaultEditorKit extends EditorKit {
}
/**
*
Adjusts the rectangle
that indicates the location to scroll to
*
Returns adjustsed {@code y} position
that indicates the location to scroll to
* after selecting <code>index</code>.
*/
private
void
adjustScrollIfNecessary
(
JTextComponent
text
,
Rectangle
visible
,
int
initialY
,
int
index
)
{
private
int
getAdjustedY
(
JTextComponent
text
,
Rectangle
visible
,
int
index
)
{
int
result
=
visible
.
y
;
try
{
Rectangle
dotBounds
=
text
.
modelToView
(
index
);
if
(
dotBounds
.
y
<
visible
.
y
||
(
dotBounds
.
y
>
(
visible
.
y
+
visible
.
height
))
||
(
dotBounds
.
y
+
dotBounds
.
height
)
>
(
visible
.
y
+
visible
.
height
))
{
int
y
;
if
(
dotBounds
.
y
<
visible
.
y
)
{
y
=
dotBounds
.
y
;
}
else
{
y
=
dotBounds
.
y
+
dotBounds
.
height
-
visible
.
height
;
}
if
((
direction
==
-
1
&&
y
<
initialY
)
||
(
direction
==
1
&&
y
>
initialY
))
{
// Only adjust if won't cause scrolling upward.
visible
.
y
=
y
;
if
(
dotBounds
.
y
<
visible
.
y
)
{
result
=
dotBounds
.
y
;
}
else
{
if
((
dotBounds
.
y
>
visible
.
y
+
visible
.
height
)
||
(
dotBounds
.
y
+
dotBounds
.
height
>
visible
.
y
+
visible
.
height
))
{
result
=
dotBounds
.
y
+
dotBounds
.
height
-
visible
.
height
;
}
}
}
catch
(
BadLocationException
ble
)
{}
}
catch
(
BadLocationException
ble
)
{
}
return
result
;
}
/**
...
...
jdk/src/share/classes/sun/font/SunFontManager.java
浏览文件 @
277b2050
...
...
@@ -3058,7 +3058,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
return
;
}
/* Use lock specific to the font system */
synchronized
(
lucidaFontName
)
{
synchronized
(
this
)
{
if
(
FontUtilities
.
debugFonts
())
{
Thread
.
dumpStack
();
FontUtilities
.
getLogger
()
...
...
@@ -3194,7 +3194,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
return
;
}
/* Use lock specific to the font system */
synchronized
(
lucidaFontName
)
{
synchronized
(
this
)
{
if
(
FontUtilities
.
debugFonts
())
{
Thread
.
dumpStack
();
FontUtilities
.
getLogger
().
info
(
"loadAllFontFiles() called"
);
...
...
jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java
浏览文件 @
277b2050
...
...
@@ -59,10 +59,15 @@ abstract class AbstractWatchKey extends WatchKey {
// pending events
private
List
<
WatchEvent
<?>>
events
;
// maps a context to the last event for the context (iff the last queued
// event for the context is an ENTRY_MODIFY event).
private
Map
<
Object
,
WatchEvent
<?>>
lastModifyEvents
;
protected
AbstractWatchKey
(
AbstractWatchService
watcher
)
{
this
.
watcher
=
watcher
;
this
.
state
=
State
.
READY
;
this
.
events
=
new
ArrayList
<
WatchEvent
<?>>();
this
.
lastModifyEvents
=
new
HashMap
<
Object
,
WatchEvent
<?>>();
}
final
AbstractWatchService
watcher
()
{
...
...
@@ -86,6 +91,7 @@ abstract class AbstractWatchKey extends WatchKey {
*/
@SuppressWarnings
(
"unchecked"
)
final
void
signalEvent
(
WatchEvent
.
Kind
<?>
kind
,
Object
context
)
{
boolean
isModify
=
(
kind
==
StandardWatchEventKind
.
ENTRY_MODIFY
);
synchronized
(
this
)
{
int
size
=
events
.
size
();
if
(
size
>
0
)
{
...
...
@@ -100,17 +106,43 @@ abstract class AbstractWatchKey extends WatchKey {
return
;
}
// if this is a modify event and the last entry for the context
// is a modify event then we simply increment the count
if
(!
lastModifyEvents
.
isEmpty
())
{
if
(
isModify
)
{
WatchEvent
<?>
ev
=
lastModifyEvents
.
get
(
context
);
if
(
ev
!=
null
)
{
assert
ev
.
kind
()
==
StandardWatchEventKind
.
ENTRY_MODIFY
;
((
Event
<?>)
ev
).
increment
();
return
;
}
}
else
{
// not a modify event so remove from the map as the
// last event will no longer be a modify event.
lastModifyEvents
.
remove
(
context
);
}
}
// if the list has reached the limit then drop pending events
// and queue an OVERFLOW event
if
(
size
>=
MAX_EVENT_LIST_SIZE
)
{
events
.
clear
();
kind
=
StandardWatchEventKind
.
OVERFLOW
;
isModify
=
false
;
context
=
null
;
}
}
// non-repeated event
events
.
add
(
new
Event
<
Object
>((
WatchEvent
.
Kind
<
Object
>)
kind
,
context
));
Event
<
Object
>
ev
=
new
Event
<
Object
>((
WatchEvent
.
Kind
<
Object
>)
kind
,
context
);
if
(
isModify
)
{
lastModifyEvents
.
put
(
context
,
ev
);
}
else
if
(
kind
==
StandardWatchEventKind
.
OVERFLOW
)
{
// drop all pending events
events
.
clear
();
lastModifyEvents
.
clear
();
}
events
.
add
(
ev
);
signal
();
}
}
...
...
@@ -120,6 +152,7 @@ abstract class AbstractWatchKey extends WatchKey {
synchronized
(
this
)
{
List
<
WatchEvent
<?>>
result
=
events
;
events
=
new
ArrayList
<
WatchEvent
<?>>();
lastModifyEvents
.
clear
();
return
result
;
}
}
...
...
jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java
浏览文件 @
277b2050
/*
* Portions Copyright 2000-20
06
Sun Microsystems, Inc. All Rights Reserved.
* Portions Copyright 2000-20
10
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
...
...
@@ -36,9 +36,9 @@ import sun.security.krb5.Config;
import
sun.security.krb5.EncryptedData
;
import
sun.security.krb5.EncryptionKey
;
import
sun.security.krb5.KrbException
;
import
sun.security.krb5.Asn1Exception
;
import
sun.security.krb5.KrbCryptoException
;
import
javax.crypto.*
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.ArrayList
;
...
...
@@ -48,6 +48,23 @@ import java.util.ArrayList;
public
abstract
class
EType
{
private
static
final
boolean
DEBUG
=
Krb5
.
DEBUG
;
private
static
final
boolean
ALLOW_WEAK_CRYPTO
;
static
{
boolean
allowed
=
true
;
try
{
Config
cfg
=
Config
.
getInstance
();
String
temp
=
cfg
.
getDefault
(
"allow_weak_crypto"
,
"libdefaults"
);
if
(
temp
!=
null
&&
temp
.
equals
(
"false"
))
allowed
=
false
;
}
catch
(
Exception
exc
)
{
if
(
DEBUG
)
{
System
.
out
.
println
(
"Exception in getting allow_weak_crypto, "
+
"using default value "
+
exc
.
getMessage
());
}
}
ALLOW_WEAK_CRYPTO
=
allowed
;
}
public
static
EType
getInstance
(
int
eTypeConst
)
throws
KdcErrException
{
...
...
@@ -163,6 +180,10 @@ public abstract class EType {
return
result
;
}
// Note: the first 2 entries of BUILTIN_ETYPES and BUILTIN_ETYPES_NOAES256
// should be kept DES-related. They will be removed when allow_weak_crypto
// is set to false.
private
static
final
int
[]
BUILTIN_ETYPES
=
new
int
[]
{
EncryptedData
.
ETYPE_DES_CBC_MD5
,
EncryptedData
.
ETYPE_DES_CBC_CRC
,
...
...
@@ -189,10 +210,17 @@ public abstract class EType {
}
catch
(
Exception
e
)
{
// should not happen
}
int
[]
result
;
if
(
allowed
<
256
)
{
return
BUILTIN_ETYPES_NOAES256
;
result
=
BUILTIN_ETYPES_NOAES256
;
}
else
{
result
=
BUILTIN_ETYPES
;
}
return
BUILTIN_ETYPES
;
if
(!
ALLOW_WEAK_CRYPTO
)
{
// The first 2 etypes are now weak ones
return
Arrays
.
copyOfRange
(
result
,
2
,
result
.
length
);
}
return
result
;
}
/**
...
...
@@ -207,9 +235,7 @@ public abstract class EType {
if
(
DEBUG
)
{
System
.
out
.
println
(
"Exception while getting "
+
configName
+
exc
.
getMessage
());
System
.
out
.
println
(
"Using defaults "
+
"des-cbc-md5, des-cbc-crc, des3-cbc-sha1,"
+
" aes128cts, aes256cts, rc4-hmac"
);
System
.
out
.
println
(
"Using default builtin etypes"
);
}
return
getBuiltInDefaults
();
}
...
...
jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
浏览文件 @
277b2050
...
...
@@ -29,9 +29,9 @@ import java.io.*;
import
java.security.*
;
import
java.security.cert.Certificate
;
import
java.security.cert.CertificateFactory
;
import
java.security.cert.X509Certificate
;
import
java.security.cert.CertificateException
;
import
java.util.*
;
import
sun.misc.IOUtils
;
import
sun.security.pkcs.EncryptedPrivateKeyInfo
;
...
...
@@ -677,50 +677,39 @@ abstract class JavaKeyStore extends KeyStoreSpi {
entry
.
date
=
new
Date
(
dis
.
readLong
());
// Read the private key
try
{
entry
.
protectedPrivKey
=
new
byte
[
dis
.
readInt
()];
}
catch
(
OutOfMemoryError
e
)
{
throw
new
IOException
(
"Keysize too big"
);
}
dis
.
readFully
(
entry
.
protectedPrivKey
);
entry
.
protectedPrivKey
=
IOUtils
.
readFully
(
dis
,
dis
.
readInt
(),
true
);
// Read the certificate chain
int
numOfCerts
=
dis
.
readInt
();
try
{
if
(
numOfCerts
>
0
)
{
entry
.
chain
=
new
Certificate
[
numOfCerts
];
}
}
catch
(
OutOfMemoryError
e
)
{
throw
new
IOException
(
"Too many certificates in chain"
);
}
for
(
int
j
=
0
;
j
<
numOfCerts
;
j
++)
{
if
(
xVersion
==
2
)
{
// read the certificate type, and instantiate a
// certificate factory of that type (reuse
// existing factory if possible)
String
certType
=
dis
.
readUTF
();
if
(
cfs
.
containsKey
(
certType
))
{
// reuse certificate factory
cf
=
cfs
.
get
(
certType
);
}
else
{
// create new certificate factory
cf
=
CertificateFactory
.
getInstance
(
certType
);
// store the certificate factory so we can
// reuse it later
cfs
.
put
(
certType
,
cf
);
if
(
numOfCerts
>
0
)
{
List
<
Certificate
>
certs
=
new
ArrayList
<>(
numOfCerts
>
10
?
10
:
numOfCerts
);
for
(
int
j
=
0
;
j
<
numOfCerts
;
j
++)
{
if
(
xVersion
==
2
)
{
// read the certificate type, and instantiate a
// certificate factory of that type (reuse
// existing factory if possible)
String
certType
=
dis
.
readUTF
();
if
(
cfs
.
containsKey
(
certType
))
{
// reuse certificate factory
cf
=
cfs
.
get
(
certType
);
}
else
{
// create new certificate factory
cf
=
CertificateFactory
.
getInstance
(
certType
);
// store the certificate factory so we can
// reuse it later
cfs
.
put
(
certType
,
cf
);
}
}
// instantiate the certificate
encoded
=
IOUtils
.
readFully
(
dis
,
dis
.
readInt
(),
true
);
bais
=
new
ByteArrayInputStream
(
encoded
);
certs
.
add
(
cf
.
generateCertificate
(
bais
));
bais
.
close
();
}
// instantiate the certificate
try
{
encoded
=
new
byte
[
dis
.
readInt
()];
}
catch
(
OutOfMemoryError
e
)
{
throw
new
IOException
(
"Certificate too big"
);
}
dis
.
readFully
(
encoded
);
bais
=
new
ByteArrayInputStream
(
encoded
);
entry
.
chain
[
j
]
=
cf
.
generateCertificate
(
bais
);
bais
.
close
();
// We can be sure now that numOfCerts of certs are read
entry
.
chain
=
certs
.
toArray
(
new
Certificate
[
numOfCerts
]);
}
// Add the entry to the list
...
...
@@ -753,12 +742,7 @@ abstract class JavaKeyStore extends KeyStoreSpi {
cfs
.
put
(
certType
,
cf
);
}
}
try
{
encoded
=
new
byte
[
dis
.
readInt
()];
}
catch
(
OutOfMemoryError
e
)
{
throw
new
IOException
(
"Certificate too big"
);
}
dis
.
readFully
(
encoded
);
encoded
=
IOUtils
.
readFully
(
dis
,
dis
.
readInt
(),
true
);
bais
=
new
ByteArrayInputStream
(
encoded
);
entry
.
cert
=
cf
.
generateCertificate
(
bais
);
bais
.
close
();
...
...
jdk/src/share/classes/sun/security/tools/TimestampedSigner.java
浏览文件 @
277b2050
/*
* Copyright (c) 2007-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright (c) 2007-20
10
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
...
...
@@ -375,7 +375,8 @@ public final class TimestampedSigner extends ContentSigner {
}
if
(!
isSigner
)
{
keyPurposes
=
cert
.
getExtendedKeyUsage
();
if
(!
keyPurposes
.
contains
(
KP_TIMESTAMPING_OID
))
{
if
(
keyPurposes
==
null
||
!
keyPurposes
.
contains
(
KP_TIMESTAMPING_OID
))
{
throw
new
CertificateException
(
"Certificate is not valid for timestamping"
);
}
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"Suriname Time"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"Suriname Zeit"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"Hora de Surinam"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"Heure du Surinam"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"Ora di Suriname"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"\u30b9\u30ea\u30ca\u30e0\u6642\u9593"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"\uc218\ub9ac\ub0a8 \uc2dc\uac04"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"Surinam, normaltid"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"\u82cf\u5229\u5357\u65f6\u95f4"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java
浏览文件 @
277b2050
...
...
@@ -384,6 +384,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{
"America/Manaus"
,
AMT
},
{
"America/Marigot"
,
AST
},
{
"America/Martinique"
,
AST
},
{
"America/Matamoros"
,
CST
},
{
"America/Mazatlan"
,
MST
},
{
"America/Mendoza"
,
AGT
},
{
"America/Menominee"
,
CST
},
...
...
@@ -403,6 +404,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{
"America/Noronha"
,
NORONHA
},
{
"America/North_Dakota/Center"
,
CST
},
{
"America/North_Dakota/New_Salem"
,
CST
},
{
"America/Ojinaga"
,
MST
},
{
"America/Panama"
,
EST
},
{
"America/Pangnirtung"
,
EST
},
{
"America/Paramaribo"
,
new
String
[]
{
"\u8607\u5229\u5357\u6642\u9593"
,
"SRT"
,
...
...
@@ -419,6 +421,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{
"America/Resolute"
,
RST
},
{
"America/Rio_Branco"
,
AMT
},
{
"America/Rosario"
,
AGT
},
{
"America/Santa_Isabel"
,
PST
},
{
"America/Santarem"
,
BRT
},
{
"America/Santiago"
,
CLT
},
{
"America/Santo_Domingo"
,
AST
},
...
...
jdk/src/share/lib/security/java.security
浏览文件 @
277b2050
...
...
@@ -117,11 +117,6 @@ policy.ignoreIdentityScope=false
#
keystore.type=jks
#
# Class to instantiate as the system scope:
#
system.scope=sun.security.provider.IdentityDatabase
#
# List of comma-separated packages that start with or equal this string
# will cause a security exception to be thrown when
...
...
jdk/src/solaris/classes/sun/nio/fs/UnixPath.java
浏览文件 @
277b2050
...
...
@@ -624,8 +624,11 @@ class UnixPath
public
boolean
endsWith
(
Path
other
)
{
UnixPath
that
=
checkPath
(
other
);
int
thisLen
=
path
.
length
;
int
thatLen
=
that
.
path
.
length
;
// other path is longer
if
(
that
.
path
.
length
>
path
.
length
)
if
(
that
Len
>
thisLen
)
return
false
;
// other path is absolute so this path must be absolute
...
...
@@ -643,10 +646,10 @@ class UnixPath
if
(
thatOffsetCount
==
thisOffsetCount
)
{
if
(
thisOffsetCount
==
0
)
return
true
;
int
expectedLen
=
path
.
length
;
int
expectedLen
=
thisLen
;
if
(
this
.
isAbsolute
()
&&
!
that
.
isAbsolute
())
expectedLen
--;
if
(
that
.
path
.
length
!=
expectedLen
)
if
(
that
Len
!=
expectedLen
)
return
false
;
}
else
{
// this path has more elements so given path must be relative
...
...
@@ -658,7 +661,9 @@ class UnixPath
// compare bytes
int
thisPos
=
offsets
[
thisOffsetCount
-
thatOffsetCount
];
int
thatPos
=
that
.
offsets
[
0
];
while
(
thatPos
<
that
.
path
.
length
)
{
if
((
thatLen
-
thatPos
)
!=
(
thisLen
-
thisPos
))
return
false
;
while
(
thatPos
<
thatLen
)
{
if
(
this
.
path
[
thisPos
++]
!=
that
.
path
[
thatPos
++])
return
false
;
}
...
...
jdk/src/solaris/native/java/io/UnixFileSystem_md.c
浏览文件 @
277b2050
...
...
@@ -414,9 +414,9 @@ Java_java_io_UnixFileSystem_getSpace(JNIEnv *env, jobject this,
jlong
rv
=
0L
;
WITH_FIELD_PLATFORM_STRING
(
env
,
file
,
ids
.
path
,
path
)
{
struct
statvfs
fsstat
;
memset
(
&
fsstat
,
0
,
sizeof
(
struct
statvfs
));
if
(
statvfs
(
path
,
&
fsstat
)
==
0
)
{
struct
statvfs
64
fsstat
;
memset
(
&
fsstat
,
0
,
sizeof
(
fsstat
));
if
(
statvfs
64
(
path
,
&
fsstat
)
==
0
)
{
switch
(
t
)
{
case
java_io_FileSystem_SPACE_TOTAL
:
rv
=
jlong_mul
(
long_to_jlong
(
fsstat
.
f_frsize
),
...
...
jdk/test/Makefile
浏览文件 @
277b2050
#
# Copyright 1995-20
09
Sun Microsystems, Inc. All Rights Reserved.
# Copyright 1995-20
10
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,25 +37,19 @@ GET=
AWK
=
awk
CAT
=
cat
CD
=
cd
CHMOD
=
chmod
CP
=
cp
CUT
=
cut
ECHO
=
echo
EGREP
=
egrep
EXPAND
=
expand
EXPR
=
expr
KILL
=
/usr/bin/kill
MKDIR
=
mkdir
NOHUP
=
nohup
PWD
=
pwd
SED
=
sed
SLEEP
=
sleep
SORT
=
sort
TEE
=
tee
UNAME
=
uname
UNIQ
=
uniq
WC
=
wc
XHOST
=
xhost
ZIP
=
zip
# Get OS name from uname
...
...
@@ -211,66 +205,6 @@ ifdef JPRT_ARCHIVE_BUNDLE
ARCHIVE_BUNDLE
=
$(JPRT_ARCHIVE_BUNDLE)
endif
# DISPLAY settings for virtual frame buffer
START_XVFB
=
start-Xvfb.sh
NOHUP_OUTPUT
=
$(ABS_TEST_OUTPUT_DIR)
/start-Xvfb.nohup-output.txt
DISPLAY_PID_FILE
=
$(ABS_TEST_OUTPUT_DIR)
/xvfb-display-number.txt
DISPLAY_SLEEP_TIME
=
10
DISPLAY_MAX_SLEEPS
=
10
ifeq
($(OS_NAME),solaris)
VIRTUAL_FRAME_BUFFER
=
true
endif
ifeq
($(OS_NAME),linux)
VIRTUAL_FRAME_BUFFER
=
true
endif
# Does not work yet, display dies as soon as it gets used. :^(
VIRTUAL_FRAME_BUFFER
=
false
# Are we using a VIRTUAL_FRAME_BUFFER (Xvfb)
ifeq
($(VIRTUAL_FRAME_BUFFER),true)
PREP_DISPLAY
=
\
$(CP)
$(START_XVFB)
$(ABS_TEST_OUTPUT_DIR)
;
\
$(CHMOD)
a+x
$(ABS_TEST_OUTPUT_DIR)
/
$(START_XVFB)
;
\
(
$(CD)
$(ABS_TEST_OUTPUT_DIR)
&&
\
$(NOHUP)
$(ABS_TEST_OUTPUT_DIR)
/
$(START_XVFB)
$(DISPLAY_PID_FILE)
>
$(NOHUP_OUTPUT)
2>&1
&&
\
$(SLEEP)
$(DISPLAY_SLEEP_TIME)
)
&
\
count
=
1
;
\
while
[
!
-s
$(DISPLAY_PID_FILE)
]
;
do
\
$(ECHO)
"Sleeping
$(DISPLAY_SLEEP_TIME)
more seconds, DISPLAY not ready"
;
\
$(SLEEP)
$(DISPLAY_SLEEP_TIME)
;
\
count
=
`
$(EXPR)
$
${count}
'+'
1
`
;
\
if
[
$
${count}
-gt
$(DISPLAY_MAX_SLEEPS)
]
;
then
\
$(ECHO)
"ERROR: DISPLAY not ready, giving up on DISPLAY"
;
\
exit
9
;
\
fi
;
\
done
;
\
DISPLAY
=
":
`
$(CAT)
$(DISPLAY_PID_FILE)
`
"
;
\
export
DISPLAY
;
\
$(CAT)
$(NOHUP_OUTPUT)
;
\
$(ECHO)
"Prepared DISPLAY=
$
${DISPLAY}
"
;
\
$(XHOST)
||
\
(
$(ECHO)
"ERROR: No display"
;
exit
8
)
KILL_DISPLAY
=
\
(
\
DISPLAY
=
":
`
$(CAT)
$(DISPLAY_PID_FILE)
`
"
;
\
export
DISPLAY
;
\
if
[
-s
"
$(DISPLAY_PID_FILE)
"
]
;
then
\
$(KILL)
`
$(CAT)
$(DISPLAY_PID_FILE)
`
>
/dev/null 2>&1
;
\
$(KILL)
-9
`
$(CAT)
$(DISPLAY_PID_FILE)
`
>
/dev/null 2>&1
;
\
fi
;
\
$(ECHO)
"Killed DISPLAY=
$
${DISPLAY}
"
;
\
)
else
PREP_DISPLAY
=
$(ECHO)
"VIRTUAL_FRAME_BUFFER=
$(VIRTUAL_FRAME_BUFFER)
"
KILL_DISPLAY
=
$(ECHO)
"VIRTUAL_FRAME_BUFFER=
$(VIRTUAL_FRAME_BUFFER)
"
endif
# How to create the test bundle (pass or fail, we want to create this)
# Follow command with ";$(BUNDLE_UP_AND_EXIT)", so it always gets executed.
ZIP_UP_RESULTS
=
(
$(MKDIR)
-p
`
dirname
$(ARCHIVE_BUNDLE)
`
\
...
...
@@ -327,7 +261,7 @@ BUNDLE_UP_AND_EXIT = \
$(ECHO)
"Missing file:
$
${_summary}
"
>>
$(STATS_TXT)
;
\
fi
;
\
$(CAT)
$(STATS_TXT)
;
\
$(ZIP_UP_RESULTS)
&&
$(KILL_DISPLAY)
;
\
$(ZIP_UP_RESULTS)
;
\
$(TESTEXIT)
\
)
...
...
@@ -629,7 +563,6 @@ jtreg_tests: prep $(PRODUCT_HOME) $(JTREG) $(EXCLUDELIST)
(
\
(
JT_HOME
=
$(
shell
$(GETMIXEDPATH)
"
$(JT_HOME)
"
)
;
\
export
JT_HOME
;
\
$(PREP_DISPLAY)
&&
\
$(
shell
$(GETMIXEDPATH)
"
$(JTREG)
"
)
\
$(JTREG_BASIC_OPTIONS)
\
-r
:
$(
shell
$(GETMIXEDPATH)
"
$(ABS_TEST_OUTPUT_DIR)
"
)
/JTreport
\
...
...
jdk/test/ProblemList.txt
浏览文件 @
277b2050
###########################################################################
#
# Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
# Copyright 2009
-2010
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
...
...
@@ -431,6 +431,12 @@ java/lang/ClassLoader/deadlock/TestCrossDelegate.sh generic-all
# jdk_management
# Fails on linux: KO: StringMonitor notification missed or not emitted
javax/management/monitor/NonComparableAttributeValueTest.java generic-all
# Port conflict? Fails with communication error
sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.sh generic-all
# Fails on Windows 2000, Test failed for iiop java.lang.NullPointerException
# at org.omg.stub.javax.management.remote.rmi._RMIConnectionImpl_Tie._invoke(Unknown Source)
# at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:653)
...
...
@@ -583,6 +589,9 @@ javax/print/attribute/MediaMappingsTest.java generic-all
# Suspect many of these tests auffer from using fixed ports, no concrete
# evidence.
# Times out on Windows X64
sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java generic-all
# Dies on Solaris 10 sparc and sparcv9, Linux -ea -esa with
# Interrupted or IO exception, maybe writing to non-unique named file?
com/sun/net/httpserver/bugs/B6373555.java generic-all
...
...
@@ -736,6 +745,13 @@ java/net/ProxySelector/B6737819.java generic-all
# Suspect many of these tests auffer from using fixed ports, no concrete
# evidence.
# Occasionally Failing with java.lang.AssertionError on Windows X64
# at sun.nio.ch.PendingIoCache.clearPendingIoMap(PendingIoCache.java:144)
#java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java windows-all
# Some kind of sleep/wake problem on Windows X64
java/nio/channels/Selector/Wakeup.java windows-all
# Fails with -ea -esa, Assertion error, but only on Solaris 10 machines?
com/sun/nio/sctp/SctpChannel/Send.java generic-all
com/sun/nio/sctp/SctpChannel/Shutdown.java generic-all
...
...
@@ -932,6 +948,18 @@ java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java generic-all
# jdk_security
# Unknown problem, could be a jtreg -samevm issue?
# Error while cleaning up threads after test
java/security/Security/SynchronizedAccess.java generic-all
# Failing on Solaris X64 (-d64 -server) with:
# GSSException: Failure unspecified at GSS-API level
# (Mechanism level: Specified version of key is not available (44))
sun/security/krb5/auto/BasicKrb5Test.java generic-all
# Solaris X86 failures, readjar.jks: No such file or directory
sun/security/tools/keytool/readjar.sh generic-all
# Fails with -ea -esa, but only on Solaris sparc? Suspect it is timing out
sun/security/tools/keytool/standard.sh generic-all
...
...
@@ -1256,6 +1284,13 @@ tools/jar/index/MetaInf.java windows-all
# jdk_util
# Fails with assertion error on windows
# 11 separate stacktraces created... file reuse problem?
java/util/zip/ZipFile/ReadLongZipFileName.java generic-all
# Recent failure on all platforms
sun/util/resources/TimeZone/Bug6317929.java generic-all
# Fails with -ea -esa on all platforms with Assertion error
java/util/ResourceBundle/Test4300693.java generic-all
...
...
jdk/test/com/sun/jndi/ldap/InvalidLdapFilters.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6916202
* @summary More cases of invalid ldap filters accepted and processed
* @run main/othervm InvalidLdapFilters valid (cn=Babs)
* @run main/othervm InvalidLdapFilters valid (&(cn=Bob))
* @run main/othervm InvalidLdapFilters valid (&(objectClass=*)(uid=*))
* @run main/othervm InvalidLdapFilters valid (|(cn=Bob))
* @run main/othervm InvalidLdapFilters valid (|(objectClass=*)(uid=*))
* @run main/othervm InvalidLdapFilters valid (!(cn=Tim))
* @run main/othervm InvalidLdapFilters valid (!(!(cn=Tim)))
* @run main/othervm InvalidLdapFilters valid (!(&(objectClass=*)(uid=*)))
* @run main/othervm InvalidLdapFilters valid (!(|(objectClass=*)(uid=*)))
* @run main/othervm InvalidLdapFilters valid (o=univ*of*mich*)
* @run main/othervm InvalidLdapFilters valid (seeAlso=)
* @run main/othervm InvalidLdapFilters valid (cn:caseExactMatch:=Flintstone)
* @run main/othervm InvalidLdapFilters valid (cn:=Betty)
* @run main/othervm InvalidLdapFilters valid (sn:dn:2.4.6.8.10:=Barney)
* @run main/othervm InvalidLdapFilters valid (o:dn:=Ace)
* @run main/othervm InvalidLdapFilters valid (:1.2.3:=Wilma)
* @run main/othervm InvalidLdapFilters valid (:DN:2.4.6.8.10:=Dino)
* @run main/othervm InvalidLdapFilters valid (1.2.3=abc)
* @run main/othervm InvalidLdapFilters valid (cn;lang-de;lang-en=abc)
* @run main/othervm InvalidLdapFilters valid (owner=abc)
* @run main/othervm InvalidLdapFilters valid (sn;lang-en:dn:2.4.6.8.10:=Barney)
* @run main/othervm InvalidLdapFilters valid
(&(objectClass=Person)(|(sn=Jensen)(cn=Bab*)))
* @run main/othervm InvalidLdapFilters invalid "(&(cn=Robert Dean)))"
* @run main/othervm InvalidLdapFilters invalid (&|(cn=Bob))
* @run main/othervm InvalidLdapFilters invalid (&&(cn=Bob))
* @run main/othervm InvalidLdapFilters invalid (|&(cn=Bob))
* @run main/othervm InvalidLdapFilters invalid (||(cn=Bob))
* @run main/othervm InvalidLdapFilters invalid (:1.2.:=Wilma)
* @run main/othervm InvalidLdapFilters invalid (::DN:2.4.6.8.10:=Dino)
* @run main/othervm InvalidLdapFilters invalid (:DN::2.4.6.8.10:=Dino)
* @run main/othervm InvalidLdapFilters invalid (:DN:2.4.6.8.10::=Dino)
* @run main/othervm InvalidLdapFilters invalid (:DN:2.4.6..8.10:=Dino)
* @run main/othervm InvalidLdapFilters invalid (:DN:2.4.6.8.:=Dino)
* @run main/othervm InvalidLdapFilters invalid (1.2.;::=abc)
* @run main/othervm InvalidLdapFilters invalid (1.2.3;::=abc)
* @run main/othervm InvalidLdapFilters invalid (1.2.3;x;=abc)
* @run main/othervm InvalidLdapFilters invalid (1.2.3:x::=abc)
* @run main/othervm InvalidLdapFilters invalid (1.2.3:x=abc)
* @run main/othervm InvalidLdapFilters invalid (sn;:dn:2.4.6.8.10:=Barney)
* @run main/othervm InvalidLdapFilters invalid "\"((objectClass=*)&(uid=*))\""
* @run main/othervm InvalidLdapFilters invalid "&(objectClass=*)(uid=*)"
* @run main/othervm InvalidLdapFilters invalid "(:DN:2.4.6.8.10:cn:=Dino)"
* @run main/othervm InvalidLdapFilters invalid "(:DN:2.4.6.8.10:cn=Dino)"
* @run main/othervm InvalidLdapFilters invalid
"((objectCategory=person)(cn=u)(!(cn=u2*)))"
* @run main/othervm InvalidLdapFilters invalid
"((&(objectClass=user)(cn=andy*)(cn=steve*)(cn=bob*)))"
*
* @author Xuelei Fan
*/
import
java.io.*
;
import
javax.naming.*
;
import
javax.naming.directory.*
;
import
java.util.Properties
;
import
java.util.Hashtable
;
import
java.net.Socket
;
import
java.net.ServerSocket
;
public
class
InvalidLdapFilters
{
// Should we run the client or server in a separate thread?
//
// Both sides can throw exceptions, but do you have a preference
// as to which side should be the main thread.
static
boolean
separateServerThread
=
true
;
// use any free port by default
volatile
int
serverPort
=
0
;
// Is the server ready to serve?
volatile
static
boolean
serverReady
=
false
;
// Define the server side of the test.
//
// If the server prematurely exits, serverReady will be set to true
// to avoid infinite hangs.
void
doServerSide
()
throws
Exception
{
ServerSocket
serverSock
=
new
ServerSocket
(
serverPort
);
// signal client, it's ready to accecpt connection
serverPort
=
serverSock
.
getLocalPort
();
serverReady
=
true
;
// accept a connection
Socket
socket
=
serverSock
.
accept
();
System
.
out
.
println
(
"Server: Connection accepted"
);
InputStream
is
=
socket
.
getInputStream
();
OutputStream
os
=
socket
.
getOutputStream
();
// read the bindRequest
while
(
is
.
read
()
!=
-
1
)
{
// ignore
is
.
skip
(
is
.
available
());
break
;
}
byte
[]
bindResponse
=
{
0x30
,
0x0C
,
0x02
,
0x01
,
0x01
,
0x61
,
0x07
,
0x0A
,
0x01
,
0x00
,
0x04
,
0x00
,
0x04
,
0x00
};
// write bindResponse
os
.
write
(
bindResponse
);
os
.
flush
();
// ignore any more request.
while
(
is
.
read
()
!=
-
1
)
{
// ignore
is
.
skip
(
is
.
available
());
}
is
.
close
();
os
.
close
();
socket
.
close
();
serverSock
.
close
();
}
// Define the client side of the test.
//
// If the server prematurely exits, serverReady will be set to true
// to avoid infinite hangs.
void
doClientSide
()
throws
Exception
{
// Wait for server to get started.
while
(!
serverReady
)
{
Thread
.
sleep
(
50
);
}
// set up the environment for creating the initial context
Hashtable
<
Object
,
Object
>
env
=
new
Hashtable
<
Object
,
Object
>();
env
.
put
(
Context
.
INITIAL_CONTEXT_FACTORY
,
"com.sun.jndi.ldap.LdapCtxFactory"
);
env
.
put
(
Context
.
PROVIDER_URL
,
"ldap://localhost:"
+
serverPort
);
env
.
put
(
"com.sun.jndi.ldap.read.timeout"
,
"1000"
);
// env.put(Context.SECURITY_AUTHENTICATION, "simple");
// env.put(Context.SECURITY_PRINCIPAL,"cn=root");
// env.put(Context.SECURITY_CREDENTIALS,"root");
// create initial context
DirContext
context
=
new
InitialDirContext
(
env
);
// searching
SearchControls
scs
=
new
SearchControls
();
scs
.
setSearchScope
(
SearchControls
.
SUBTREE_SCOPE
);
try
{
NamingEnumeration
answer
=
context
.
search
(
"o=sun,c=us"
,
searchFilter
,
scs
);
}
catch
(
InvalidSearchFilterException
isfe
)
{
if
(
filterIsValid
)
{
// unexpected filter exception.
throw
new
Exception
(
"Unexpected ISFE"
,
isfe
);
}
else
{
// ignore, it is the expected filter exception.
System
.
out
.
println
(
"Expected exception: "
+
isfe
.
getMessage
());
}
}
catch
(
NamingException
ne
)
{
// maybe a read timeout exception, as the server does not response.
if
(
filterIsValid
)
{
System
.
out
.
println
(
"Expected exception: "
+
ne
.
getMessage
());
}
else
{
throw
new
Exception
(
"Not an InvalidSearchFilterException"
,
ne
);
}
}
context
.
close
();
}
private
static
boolean
filterIsValid
;
private
static
String
searchFilter
;
private
static
void
parseArguments
(
String
[]
args
)
{
System
.
out
.
println
(
"arguments length: "
+
args
.
length
);
if
(
args
[
0
].
equals
(
"valid"
))
{
filterIsValid
=
true
;
}
searchFilter
=
args
[
1
];
}
/*
* ============================================================
* The remainder is just support stuff
*/
// client and server thread
Thread
clientThread
=
null
;
Thread
serverThread
=
null
;
// client and server exceptions
volatile
Exception
serverException
=
null
;
volatile
Exception
clientException
=
null
;
void
startServer
(
boolean
newThread
)
throws
Exception
{
if
(
newThread
)
{
serverThread
=
new
Thread
()
{
public
void
run
()
{
try
{
doServerSide
();
}
catch
(
Exception
e
)
{
/*
* Our server thread just died.
*
* Release the client, if not active already...
*/
System
.
err
.
println
(
"Server died..."
);
System
.
err
.
println
(
e
);
serverReady
=
true
;
serverException
=
e
;
}
}
};
serverThread
.
start
();
}
else
{
doServerSide
();
}
}
void
startClient
(
boolean
newThread
)
throws
Exception
{
if
(
newThread
)
{
clientThread
=
new
Thread
()
{
public
void
run
()
{
try
{
doClientSide
();
}
catch
(
Exception
e
)
{
/*
* Our client thread just died.
*/
System
.
err
.
println
(
"Client died..."
);
clientException
=
e
;
}
}
};
clientThread
.
start
();
}
else
{
doClientSide
();
}
}
// Primary constructor, used to drive remainder of the test.
InvalidLdapFilters
()
throws
Exception
{
if
(
separateServerThread
)
{
startServer
(
true
);
startClient
(
false
);
}
else
{
startClient
(
true
);
startServer
(
false
);
}
/*
* Wait for other side to close down.
*/
if
(
separateServerThread
)
{
serverThread
.
join
();
}
else
{
clientThread
.
join
();
}
/*
* When we get here, the test is pretty much over.
*
* If the main thread excepted, that propagates back
* immediately. If the other thread threw an exception, we
* should report back.
*/
if
(
serverException
!=
null
)
{
System
.
out
.
print
(
"Server Exception:"
);
throw
serverException
;
}
if
(
clientException
!=
null
)
{
System
.
out
.
print
(
"Client Exception:"
);
throw
clientException
;
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// parse the customized arguments
parseArguments
(
args
);
// start the test
new
InvalidLdapFilters
();
}
}
jdk/test/java/awt/AlphaComposite/TestAlphaCompositeForNaN.java
0 → 100644
浏览文件 @
277b2050
/*
* @test
* @bug 6918065
* @summary Test for passing NaN as alpha
* should throw IllegalArgumentException
*/
import
java.awt.*
;
public
class
TestAlphaCompositeForNaN
{
public
static
void
main
(
String
[]
args
)
{
try
{
AlphaComposite
a
=
AlphaComposite
.
getInstance
(
AlphaComposite
.
DST
,
Float
.
NaN
);
System
.
out
.
println
(
"Failed"
);
throw
new
RuntimeException
(
a
+
" failed to throw IllegalArgumentException for alpha = "
+
Float
.
NaN
);
}
catch
(
IllegalArgumentException
ie
)
{
System
.
out
.
println
(
"Passed"
);
System
.
out
.
println
(
"Caught "
+
ie
);
}
}
}
jdk/test/java/beans/Introspector/Test4498236.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 4498236
* @summary Tests toString methods
* @author Sergey Malenkov
*/
import
java.awt.event.KeyEvent
;
import
java.awt.event.KeyListener
;
import
java.beans.BeanDescriptor
;
import
java.beans.EventSetDescriptor
;
import
java.beans.FeatureDescriptor
;
import
java.beans.IndexedPropertyChangeEvent
;
import
java.beans.IndexedPropertyDescriptor
;
import
java.beans.MethodDescriptor
;
import
java.beans.ParameterDescriptor
;
import
java.beans.PropertyChangeEvent
;
import
java.beans.PropertyDescriptor
;
import
java.lang.reflect.Method
;
public
class
Test4498236
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
PropertyChangeEvent
event
=
new
PropertyChangeEvent
(
"source"
,
null
,
null
,
null
);
event
.
setPropagationId
(
"id"
);
test
(
"[propertyName=null; oldValue=null; newValue=null; propagationId=id; source=source]"
,
event
);
test
(
"[propertyName=name; oldValue=old; newValue=new; propagationId=null; source=source]"
,
new
PropertyChangeEvent
(
"source"
,
"name"
,
"old"
,
"new"
)
);
test
(
"[propertyName=array; index=5; oldValue=old; newValue=new; propagationId=null; source=source]"
,
new
IndexedPropertyChangeEvent
(
"source"
,
"array"
,
"old"
,
"new"
,
5
)
);
FeatureDescriptor
fd
=
new
FeatureDescriptor
();
fd
.
setName
(
"n"
);
fd
.
setDisplayName
(
"dn"
);
fd
.
setShortDescription
(
"sd"
);
fd
.
setPreferred
(
true
);
fd
.
setHidden
(
true
);
fd
.
setExpert
(
true
);
fd
.
setValue
(
"first"
,
"value"
);
test
(
"[name=n; displayName=dn; shortDescription=sd; preferred; hidden; expert; values={first=value}]"
,
fd
);
test
(
"[name=String; beanClass=class java.lang.String]"
,
new
BeanDescriptor
(
String
.
class
)
);
test
(
"[name=Object; beanClass=class java.lang.Object; customizerClass=class java.lang.String]"
,
new
BeanDescriptor
(
Object
.
class
,
String
.
class
)
);
test
(
"[name=Object; beanClass=class java.lang.Object; customizerClass=class java.lang.String]"
,
new
BeanDescriptor
(
Object
.
class
,
String
.
class
)
);
test
(
"[name=equals; method=public boolean java.lang.Object.equals(java.lang.Object)]"
,
new
MethodDescriptor
(
Object
.
class
.
getMethod
(
"equals"
,
Object
.
class
))
);
test
(
"[name=equals; method=public boolean java.lang.Object.equals(java.lang.Object); parameterDescriptors={java.beans.ParameterDescriptor[name=null]}]"
,
new
MethodDescriptor
(
Object
.
class
.
getMethod
(
"equals"
,
Object
.
class
),
new
ParameterDescriptor
[]
{
new
ParameterDescriptor
()
})
);
Class
type
=
KeyListener
.
class
;
String
[]
names
=
{
"keyTyped"
,
"keyPressed"
,
"keyReleased"
};
Method
[]
methods
=
new
Method
[
names
.
length
];
for
(
int
i
=
0
;
i
<
names
.
length
;
i
++)
{
methods
[
i
]
=
type
.
getMethod
(
names
[
i
],
KeyEvent
.
class
);
}
test
(
"[name=key; inDefaultEventSet; listenerType=interface java.awt.event.KeyListener; getListenerMethod=public java.awt.event.KeyListener Test4498236.getKeyListeners(); addListenerMethod=public void Test4498236.addKeyListener(java.awt.event.KeyListener); removeListenerMethod=public void Test4498236.removeKeyListener(java.awt.event.KeyListener)]"
,
new
EventSetDescriptor
(
Test4498236
.
class
,
"key"
,
type
,
names
[
0
])
);
test
(
"[name=$$$; inDefaultEventSet; listenerType=interface java.awt.event.KeyListener; addListenerMethod=public void Test4498236.add(java.awt.event.KeyListener); removeListenerMethod=public void Test4498236.remove(java.awt.event.KeyListener)]"
,
new
EventSetDescriptor
(
Test4498236
.
class
,
"$$$"
,
type
,
names
,
"add"
,
"remove"
)
);
test
(
"[name=$$$; inDefaultEventSet; listenerType=interface java.awt.event.KeyListener; getListenerMethod=public java.awt.event.KeyListener Test4498236.get(); addListenerMethod=public void Test4498236.add(java.awt.event.KeyListener); removeListenerMethod=public void Test4498236.remove(java.awt.event.KeyListener)]"
,
new
EventSetDescriptor
(
Test4498236
.
class
,
"$$$"
,
type
,
names
,
"add"
,
"remove"
,
"get"
)
);
test
(
"[name=$$$; inDefaultEventSet; listenerType=interface java.awt.event.KeyListener; addListenerMethod=public void Test4498236.add(java.awt.event.KeyListener); removeListenerMethod=public void Test4498236.remove(java.awt.event.KeyListener)]"
,
new
EventSetDescriptor
(
"$$$"
,
type
,
methods
,
Test4498236
.
class
.
getMethod
(
"add"
,
type
),
Test4498236
.
class
.
getMethod
(
"remove"
,
type
))
);
test
(
"[name=$$$; inDefaultEventSet; listenerType=interface java.awt.event.KeyListener; getListenerMethod=public java.awt.event.KeyListener Test4498236.get(); addListenerMethod=public void Test4498236.add(java.awt.event.KeyListener); removeListenerMethod=public void Test4498236.remove(java.awt.event.KeyListener)]"
,
new
EventSetDescriptor
(
"$$$"
,
type
,
methods
,
Test4498236
.
class
.
getMethod
(
"add"
,
type
),
Test4498236
.
class
.
getMethod
(
"remove"
,
type
),
Test4498236
.
class
.
getMethod
(
"get"
))
);
test
(
"[name=value; propertyType=boolean; readMethod=public boolean Test4498236.isValue(); writeMethod=public void Test4498236.setValue(boolean)]"
,
new
PropertyDescriptor
(
"value"
,
Test4498236
.
class
)
);
test
(
"[name=$$$]"
,
new
PropertyDescriptor
(
"$$$"
,
Test4498236
.
class
,
null
,
null
)
);
test
(
"[name=$$$; propertyType=boolean; readMethod=public boolean Test4498236.getValue()]"
,
new
PropertyDescriptor
(
"$$$"
,
Test4498236
.
class
,
"getValue"
,
null
)
);
test
(
"[name=$$$; propertyType=boolean; readMethod=public boolean Test4498236.getValue(); writeMethod=public void Test4498236.setValue(boolean)]"
,
new
PropertyDescriptor
(
"$$$"
,
Test4498236
.
class
,
"getValue"
,
"setValue"
)
);
test
(
"[name=$$$]"
,
new
PropertyDescriptor
(
"$$$"
,
null
,
null
)
);
test
(
"[name=$$$; propertyType=boolean; readMethod=public boolean Test4498236.getValue()]"
,
new
PropertyDescriptor
(
"$$$"
,
Test4498236
.
class
.
getMethod
(
"getValue"
),
null
)
);
test
(
"[name=$$$; propertyType=boolean; readMethod=public boolean Test4498236.getValue(); writeMethod=public void Test4498236.setValue(boolean)]"
,
new
PropertyDescriptor
(
"$$$"
,
Test4498236
.
class
.
getMethod
(
"getValue"
),
Test4498236
.
class
.
getMethod
(
"setValue"
,
boolean
.
class
))
);
test
(
"[name=index; propertyType=class [I; readMethod=public int[] Test4498236.getIndex(); writeMethod=public void Test4498236.setIndex(int[]); indexedPropertyType=int; indexedReadMethod=public int Test4498236.getIndex(int); indexedWriteMethod=public void Test4498236.setIndex(int,int)]"
,
new
IndexedPropertyDescriptor
(
"index"
,
Test4498236
.
class
)
);
test
(
"[name=$$$; propertyType=class [I; readMethod=public int[] Test4498236.getIndex(); writeMethod=public void Test4498236.setIndex(int[]); indexedPropertyType=int; indexedReadMethod=public int Test4498236.getIndex(int); indexedWriteMethod=public void Test4498236.setIndex(int,int)]"
,
new
IndexedPropertyDescriptor
(
"$$$"
,
Test4498236
.
class
,
"getIndex"
,
"setIndex"
,
"getIndex"
,
"setIndex"
)
);
test
(
"[name=$$$; propertyType=class [I; readMethod=public int[] Test4498236.getIndex(); writeMethod=public void Test4498236.setIndex(int[]); indexedPropertyType=int; indexedReadMethod=public int Test4498236.getIndex(int); indexedWriteMethod=public void Test4498236.setIndex(int,int)]"
,
new
IndexedPropertyDescriptor
(
"$$$"
,
Test4498236
.
class
.
getMethod
(
"getIndex"
),
Test4498236
.
class
.
getMethod
(
"setIndex"
,
new
int
[
0
].
getClass
()),
Test4498236
.
class
.
getMethod
(
"getIndex"
,
int
.
class
),
Test4498236
.
class
.
getMethod
(
"setIndex"
,
int
.
class
,
int
.
class
)
)
);
}
public
void
addKeyListener
(
KeyListener
listener
)
{
add
(
listener
);
}
public
void
removeKeyListener
(
KeyListener
listener
)
{
remove
(
listener
);
}
public
KeyListener
getKeyListeners
()
{
return
null
;
}
public
void
add
(
KeyListener
listener
)
{
}
public
void
remove
(
KeyListener
listener
)
{
}
public
KeyListener
get
()
{
return
null
;
}
public
boolean
isValue
()
{
return
true
;
}
public
boolean
getValue
()
{
return
true
;
}
public
void
setValue
(
boolean
value
)
{
}
public
int
[]
getIndex
()
{
return
null
;
}
public
int
getIndex
(
int
index
)
{
return
0
;
}
public
void
setIndex
(
int
index
,
int
value
)
{
}
public
void
setIndex
(
int
[]
value
)
{
}
private
static
void
test
(
String
expected
,
Object
object
)
{
String
actual
=
object
.
toString
();
if
(!
actual
.
equals
(
object
.
getClass
().
getName
()
+
expected
))
{
throw
new
Error
(
actual
);
}
}
}
jdk/test/java/beans/XMLEncoder/Test5023550.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 5023550
* @summary Tests complex references to owner
* @author Sergey Malenkov
*/
import
java.beans.DefaultPersistenceDelegate
;
import
java.beans.Encoder
;
import
java.beans.Expression
;
import
java.beans.XMLDecoder
;
import
java.beans.XMLEncoder
;
public
class
Test5023550
extends
AbstractTest
{
public
static
void
main
(
String
[]
args
)
{
new
Test5023550
().
test
(
true
);
}
private
final
Owner
owner
=
new
Owner
();
@Override
protected
void
initialize
(
XMLEncoder
encoder
)
{
encoder
.
setOwner
(
this
.
owner
);
encoder
.
setPersistenceDelegate
(
A
.
class
,
new
ADelegate
());
encoder
.
setPersistenceDelegate
(
B
.
class
,
new
BDelegate
());
encoder
.
setPersistenceDelegate
(
C
.
class
,
new
CDelegate
());
}
@Override
protected
void
initialize
(
XMLDecoder
decoder
)
{
decoder
.
setOwner
(
this
.
owner
);
}
protected
Object
getObject
()
{
return
this
.
owner
.
newA
(
this
.
owner
.
newB
().
newC
());
}
public
static
class
Owner
{
public
A
newA
(
C
c
)
{
return
new
A
(
c
);
}
public
B
newB
()
{
return
new
B
();
}
}
public
static
class
A
{
private
final
C
c
;
private
A
(
C
c
)
{
this
.
c
=
c
;
}
public
C
getC
()
{
return
this
.
c
;
}
}
public
static
class
B
{
public
C
newC
()
{
return
new
C
(
this
);
}
}
public
static
class
C
{
private
final
B
b
;
private
C
(
B
b
)
{
this
.
b
=
b
;
}
public
B
getB
()
{
return
this
.
b
;
}
}
public
static
class
ADelegate
extends
DefaultPersistenceDelegate
{
protected
Expression
instantiate
(
Object
old
,
Encoder
out
)
{
XMLEncoder
encoder
=
(
XMLEncoder
)
out
;
A
a
=
(
A
)
old
;
return
new
Expression
(
old
,
encoder
.
getOwner
(),
"newA"
,
new
Object
[]
{
a
.
getC
()
});
}
}
public
static
class
BDelegate
extends
DefaultPersistenceDelegate
{
protected
Expression
instantiate
(
Object
old
,
Encoder
out
)
{
XMLEncoder
encoder
=
(
XMLEncoder
)
out
;
return
new
Expression
(
old
,
encoder
.
getOwner
(),
"newB"
,
new
Object
[
0
]);
}
}
public
static
class
CDelegate
extends
DefaultPersistenceDelegate
{
protected
Expression
instantiate
(
Object
old
,
Encoder
out
)
{
C
c
=
(
C
)
old
;
return
new
Expression
(
c
,
c
.
getB
(),
"newC"
,
new
Object
[
0
]);
}
}
}
jdk/test/java/beans/XMLEncoder/Test5023557.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 5023557
* @summary Tests complex references
* @author Sergey Malenkov
*/
import
java.beans.DefaultPersistenceDelegate
;
import
java.beans.Encoder
;
import
java.beans.Expression
;
import
java.beans.XMLEncoder
;
public
class
Test5023557
extends
AbstractTest
{
public
static
void
main
(
String
[]
args
)
{
new
Test5023557
().
test
(
true
);
}
@Override
protected
void
initialize
(
XMLEncoder
encoder
)
{
encoder
.
setPersistenceDelegate
(
B
.
class
,
new
BDelegate
());
encoder
.
setPersistenceDelegate
(
C
.
class
,
new
CDelegate
());
}
protected
Object
getObject
()
{
A
a
=
new
A
();
return
a
.
newC
(
a
.
newB
());
}
public
static
class
A
{
public
B
newB
()
{
return
new
B
(
this
);
}
public
C
newC
(
B
b
)
{
return
new
C
(
b
);
}
}
public
static
class
B
{
private
final
A
a
;
private
B
(
A
a
)
{
this
.
a
=
a
;
}
public
A
getA
()
{
return
this
.
a
;
}
}
public
static
class
C
{
private
final
B
b
;
private
C
(
B
b
)
{
this
.
b
=
b
;
}
public
B
getB
()
{
return
this
.
b
;
}
}
public
static
class
BDelegate
extends
DefaultPersistenceDelegate
{
protected
Expression
instantiate
(
Object
old
,
Encoder
out
)
{
B
b
=
(
B
)
old
;
return
new
Expression
(
b
,
b
.
getA
(),
"newB"
,
new
Object
[
0
]);
}
}
public
static
class
CDelegate
extends
DefaultPersistenceDelegate
{
protected
Expression
instantiate
(
Object
old
,
Encoder
out
)
{
C
c
=
(
C
)
old
;
return
new
Expression
(
c
,
c
.
getB
().
getA
(),
"newC"
,
new
Object
[]
{
c
.
getB
()
});
}
}
}
jdk/test/java/beans/XMLEncoder/Test6921644.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6921644
* @summary Tests references to cached integer
* @author Sergey Malenkov
*/
import
java.beans.ConstructorProperties
;
import
java.util.ArrayList
;
import
java.util.List
;
public
final
class
Test6921644
extends
AbstractTest
{
public
static
void
main
(
String
[]
args
)
{
new
Test6921644
().
test
(
true
);
}
protected
Object
getObject
()
{
Owner
<
Author
>
o
=
new
Owner
<
Author
>(
100
);
// it works if ID >= 128
Category
c
=
new
Category
(
o
);
Document
d1
=
new
Document
(
o
);
Document
d2
=
new
Document
(
o
);
Document
d3
=
new
Document
(
o
);
Author
a1
=
new
Author
(
o
);
Author
a2
=
new
Author
(
o
);
Author
a3
=
new
Author
(
o
);
o
.
getList
().
add
(
a1
);
o
.
getList
().
add
(
a2
);
o
.
getList
().
add
(
a3
);
a3
.
setRef
(
o
.
getId
());
d2
.
setCategory
(
c
);
d3
.
setCategory
(
c
);
a1
.
addDocument
(
d1
);
a1
.
addDocument
(
d2
);
a3
.
addDocument
(
d3
);
c
.
addDocument
(
d2
);
c
.
addDocument
(
d3
);
return
o
;
}
public
static
class
Owner
<
T
>
{
private
int
id
;
private
List
<
T
>
list
=
new
ArrayList
<
T
>();
@ConstructorProperties
(
"id"
)
public
Owner
(
int
id
)
{
this
.
id
=
id
;
}
public
int
getId
()
{
return
this
.
id
;
}
public
List
<
T
>
getList
()
{
return
this
.
list
;
}
public
void
setList
(
List
<
T
>
list
)
{
this
.
list
=
list
;
}
}
public
static
class
Author
{
private
int
id
;
private
int
ref
;
private
Owner
owner
;
private
List
<
Document
>
list
=
new
ArrayList
<
Document
>();
@ConstructorProperties
(
"owner"
)
public
Author
(
Owner
<
Author
>
owner
)
{
this
.
owner
=
owner
;
this
.
id
=
owner
.
getId
();
}
public
Owner
getOwner
()
{
return
this
.
owner
;
}
public
Integer
getId
()
{
return
this
.
id
;
}
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
}
public
Integer
getRef
()
{
return
this
.
ref
;
}
public
void
setRef
(
Integer
ref
)
{
this
.
ref
=
ref
;
}
public
List
<
Document
>
getList
()
{
return
this
.
list
;
}
public
void
setList
(
List
<
Document
>
list
)
{
this
.
list
=
list
;
}
public
void
addDocument
(
Document
document
)
{
this
.
list
.
add
(
document
);
document
.
setAuthor
(
this
);
}
}
public
static
class
Category
{
private
Owner
owner
;
private
List
<
Document
>
list
=
new
ArrayList
<
Document
>();
@ConstructorProperties
(
"owner"
)
public
Category
(
Owner
owner
)
{
this
.
owner
=
owner
;
}
public
Owner
getOwner
()
{
return
this
.
owner
;
}
public
List
<
Document
>
getList
()
{
return
this
.
list
;
}
public
void
setList
(
List
<
Document
>
list
)
{
this
.
list
=
list
;
}
public
void
addDocument
(
Document
document
)
{
this
.
list
.
add
(
document
);
document
.
setCategory
(
this
);
}
}
public
static
class
Document
{
private
Owner
owner
;
private
Author
author
;
private
Category
category
;
@ConstructorProperties
(
"owner"
)
public
Document
(
Owner
owner
)
{
this
.
owner
=
owner
;
}
public
Owner
getOwner
()
{
return
this
.
owner
;
}
public
Author
getAuthor
()
{
return
this
.
author
;
}
public
void
setAuthor
(
Author
author
)
{
this
.
author
=
author
;
}
public
Category
getCategory
()
{
return
this
.
category
;
}
public
void
setCategory
(
Category
category
)
{
this
.
category
=
category
;
}
}
}
jdk/test/java/nio/file/Files/PrintFileTree.java
浏览文件 @
277b2050
...
...
@@ -28,27 +28,33 @@ import java.util.*;
/**
* Invokes Files.walkFileTree to traverse a file tree and prints
* each of the directories and files. The -L option causes symbolic
* links to be followed.
* each of the directories and files. The -follow option causes symbolic
* links to be followed and the -printCycles option will print links
* where the target of the link is an ancestor directory.
*/
public
class
PrintFileTree
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
boolean
followLinks
=
false
;
Path
dir
;
if
(
args
[
0
].
equals
(
"-L"
))
{
followLinks
=
true
;
dir
=
Paths
.
get
(
args
[
1
]);
}
else
{
dir
=
Paths
.
get
(
args
[
0
]);
boolean
printCycles
=
false
;
int
i
=
0
;
while
(
i
<
(
args
.
length
-
1
))
{
switch
(
args
[
i
])
{
case
"-follow"
:
followLinks
=
true
;
break
;
case
"-printCycles"
:
printCycles
=
true
;
break
;
default
:
throw
new
RuntimeException
(
args
[
i
]
+
" not recognized"
);
}
i
++;
}
Path
dir
=
Paths
.
get
(
args
[
i
]);
Set
<
FileVisitOption
>
options
=
new
HashSet
<
FileVisitOption
>();
if
(
followLinks
)
options
.
add
(
FileVisitOption
.
FOLLOW_LINKS
);
final
boolean
reportCycles
=
printCycles
;
Files
.
walkFileTree
(
dir
,
options
,
Integer
.
MAX_VALUE
,
new
FileVisitor
<
FileRef
>()
{
public
FileVisitResult
preVisitDirectory
(
FileRef
dir
)
{
System
.
out
.
println
(
dir
);
...
...
@@ -59,7 +65,8 @@ public class PrintFileTree {
return
FileVisitResult
.
CONTINUE
;
}
public
FileVisitResult
visitFile
(
FileRef
file
,
BasicFileAttributes
attrs
)
{
System
.
out
.
println
(
file
);
if
(!
attrs
.
isDirectory
()
||
reportCycles
)
System
.
out
.
println
(
file
);
return
FileVisitResult
.
CONTINUE
;
}
public
FileVisitResult
postVisitDirectory
(
FileRef
dir
,
IOException
exc
)
{
...
...
jdk/test/java/nio/file/Files/walk_file_tree.sh
浏览文件 @
277b2050
...
...
@@ -61,12 +61,20 @@ find "$ROOT" > out2
diff out1 out2
if
[
$?
!=
0
]
;
then
failures
=
`
expr
$failures
+ 1
`
;
fi
# repeat test following links (use -follow instead of -L
# to allow running on older systems)
$JAVA
PrintFileTree
-L
"
$ROOT
"
>
out1
find
"
$ROOT
"
-follow
>
out2
# repeat test following links. Some versions of find(1) output
# cycles (sym links to ancestor directories), other versions do
# not. For that reason we run PrintFileTree with the -printCycles
# option when the output without this option differs to find(1).
find
"
$ROOT
"
-follow
>
out1
$JAVA
PrintFileTree
-follow
"
$ROOT
"
>
out2
diff out1 out2
if
[
$?
!=
0
]
;
then
failures
=
`
expr
$failures
+ 1
`
;
fi
if
[
$?
!=
0
]
;
then
# re-run printing cycles to stdout
$JAVA
PrintFileTree
-follow
-printCycles
"
$ROOT
"
>
out2
diff out1 out2
if
[
$?
!=
0
]
;
then
failures
=
`
expr
$failures
+ 1
`
;
fi
fi
# test SKIP_SIBLINGS
$JAVA
SkipSiblings
"
$ROOT
"
...
...
jdk/test/java/nio/file/Path/CheckPermissions.java
浏览文件 @
277b2050
...
...
@@ -197,7 +197,7 @@ public class CheckPermissions {
}
public
static
void
main
(
String
[]
args
)
throws
IOException
{
Path
dir
=
Paths
.
get
(
System
.
getProperty
(
"test.
src
"
,
"."
));
Path
dir
=
Paths
.
get
(
System
.
getProperty
(
"test.
dir
"
,
"."
));
Path
file
=
dir
.
resolve
(
"file1234"
).
createFile
();
try
{
LoggingSecurityManager
.
install
();
...
...
jdk/test/java/nio/file/Path/PathOps.java
浏览文件 @
277b2050
...
...
@@ -22,7 +22,7 @@
*/
/* @test
* @bug 4313887 6838333
* @bug 4313887 6838333
6925932
* @summary Unit test for java.nio.file.Path path operations
*/
...
...
@@ -614,17 +614,34 @@ public class PathOps {
test
(
"/foo"
)
.
ends
(
"foo"
)
.
ends
(
"/foo"
)
.
notEnds
(
"
/
"
);
.
notEnds
(
"
fool
"
);
test
(
"/foo/bar"
)
.
ends
(
"bar"
)
.
ends
(
"foo/bar"
)
.
ends
(
"/foo/bar"
)
.
notEnds
(
"/bar"
);
.
notEnds
(
"ar"
)
.
notEnds
(
"barack"
)
.
notEnds
(
"/bar"
)
.
notEnds
(
"o/bar"
);
test
(
"foo"
)
.
ends
(
"foo"
);
.
ends
(
"foo"
)
.
notEnds
(
"oo"
)
.
notEnds
(
"oola"
);
test
(
"foo/bar"
)
.
ends
(
"bar"
)
.
ends
(
"foo/bar"
);
.
ends
(
"foo/bar"
)
.
notEnds
(
"r"
)
.
notEnds
(
"barmaid"
)
.
notEnds
(
"/bar"
);
test
(
"foo/bar/gus"
)
.
ends
(
"gus"
)
.
ends
(
"bar/gus"
)
.
ends
(
"foo/bar/gus"
)
.
notEnds
(
"g"
)
.
notEnds
(
"/gus"
)
.
notEnds
(
"r/gus"
)
.
notEnds
(
"barack/gus"
)
.
notEnds
(
"bar/gust"
);
// elements
test
(
"a/b/c"
)
...
...
jdk/test/java/nio/file/WatchService/
OverflowEventIsLoner
.java
→
jdk/test/java/nio/file/WatchService/
LotsOfEvents
.java
浏览文件 @
277b2050
...
...
@@ -22,22 +22,74 @@
*/
/* @test
* @bug 6907760
* @summary
Check that the OVERFLOW event is not retrieved with other events
* @bug 6907760
6929532
* @summary
Tests WatchService behavior when lots of events are pending
* @library ..
* @run main/timeout=180 LotsOfEvents
*/
import
java.nio.file.*
;
import
static
java
.
nio
.
file
.
StandardWatchEventKind
.*;
import
java.io.IOException
;
import
java.util.List
;
import
java.io.OutputStream
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
public
class
OverflowEventIsLoner
{
public
class
LotsOfEvents
{
static
void
drainEvents
(
WatchService
watcher
,
WatchEvent
.
Kind
<?>
expectedKind
,
int
count
)
static
final
Random
rand
=
new
Random
();
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Path
dir
=
TestUtil
.
createTemporaryDirectory
();
try
{
testOverflowEvent
(
dir
);
testModifyEventsQueuing
(
dir
);
}
finally
{
TestUtil
.
removeAll
(
dir
);
}
}
/**
* Tests that OVERFLOW events are not retreived with other events.
*/
static
void
testOverflowEvent
(
Path
dir
)
throws
IOException
,
InterruptedException
{
WatchService
watcher
=
dir
.
getFileSystem
().
newWatchService
();
try
{
dir
.
register
(
watcher
,
ENTRY_CREATE
,
ENTRY_DELETE
);
// create a lot of files
int
n
=
1024
;
Path
[]
files
=
new
Path
[
n
];
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
files
[
i
]
=
dir
.
resolve
(
"foo"
+
i
).
createFile
();
}
// give time for events to accumulate (improve chance of overflow)
Thread
.
sleep
(
1000
);
// check that we see the create events (or overflow)
drainAndCheckOverflowEvents
(
watcher
,
ENTRY_CREATE
,
n
);
// delete the files
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
files
[
i
].
delete
();
}
// give time for events to accumulate (improve chance of overflow)
Thread
.
sleep
(
1000
);
// check that we see the delete events (or overflow)
drainAndCheckOverflowEvents
(
watcher
,
ENTRY_DELETE
,
n
);
}
finally
{
watcher
.
close
();
}
}
static
void
drainAndCheckOverflowEvents
(
WatchService
watcher
,
WatchEvent
.
Kind
<?>
expectedKind
,
int
count
)
throws
IOException
,
InterruptedException
{
// wait for key to be signalled - the timeout is long to allow for
...
...
@@ -50,7 +102,7 @@ public class OverflowEventIsLoner {
int
nread
=
0
;
boolean
gotOverflow
=
false
;
do
{
while
(
key
!=
null
)
{
List
<
WatchEvent
<?>>
events
=
key
.
pollEvents
();
for
(
WatchEvent
<?>
event:
events
)
{
WatchEvent
.
Kind
<?>
kind
=
event
.
kind
();
...
...
@@ -70,53 +122,101 @@ public class OverflowEventIsLoner {
if
(!
key
.
reset
())
throw
new
RuntimeException
(
"Key is no longer valid"
);
key
=
watcher
.
poll
(
2
,
TimeUnit
.
SECONDS
);
}
while
(
key
!=
null
);
}
// check that all expected events were received or there was an overflow
if
(
nread
<
count
&&
!
gotOverflow
)
throw
new
RuntimeException
(
"Insufficient events"
);
}
/**
* Tests that check that ENTRY_MODIFY events are queued efficiently
*/
static
void
testModifyEventsQueuing
(
Path
dir
)
throws
IOException
,
InterruptedException
{
// this test uses a random number of files
final
int
nfiles
=
5
+
rand
.
nextInt
(
10
);
DirectoryEntry
[]
entries
=
new
DirectoryEntry
[
nfiles
];
for
(
int
i
=
0
;
i
<
nfiles
;
i
++)
{
entries
[
i
]
=
new
DirectoryEntry
(
dir
.
resolve
(
"foo"
+
i
));
// "some" of the files exist, some do not.
entries
[
i
].
deleteIfExists
();
if
(
rand
.
nextBoolean
())
entries
[
i
].
create
();
}
static
void
test
(
Path
dir
)
throws
IOException
,
InterruptedException
{
WatchService
watcher
=
dir
.
getFileSystem
().
newWatchService
();
try
{
WatchKey
key
=
dir
.
register
(
watcher
,
ENTRY_CREATE
,
ENTRY_DELETE
);
dir
.
register
(
watcher
,
ENTRY_CREATE
,
ENTRY_DELETE
,
ENTRY_MODIFY
);
// create a lot of files
int
n
=
1024
;
Path
[]
files
=
new
Path
[
n
];
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
files
[
i
]
=
dir
.
resolve
(
"foo"
+
i
).
createFile
();
}
// do several rounds of noise and test
for
(
int
round
=
0
;
round
<
10
;
round
++)
{
// give time for events to accumulate (improve chance of overflow)
Thread
.
sleep
(
1000
);
// check that we see the create events (or overflow)
drainEvents
(
watcher
,
ENTRY_CREATE
,
n
);
// make some noise!!!
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
DirectoryEntry
entry
=
entries
[
rand
.
nextInt
(
nfiles
)];
int
action
=
rand
.
nextInt
(
10
);
switch
(
action
)
{
case
0
:
entry
.
create
();
break
;
case
1
:
entry
.
deleteIfExists
();
break
;
default
:
entry
.
modifyIfExists
();
}
}
// delete the files
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
files
[
i
].
delete
();
// process events and ensure that we don't get repeated modify
// events for the same file.
WatchKey
key
=
watcher
.
poll
(
15
,
TimeUnit
.
SECONDS
);
while
(
key
!=
null
)
{
Set
<
Path
>
modified
=
new
HashSet
<
Path
>();
for
(
WatchEvent
<?>
event:
key
.
pollEvents
())
{
WatchEvent
.
Kind
<?>
kind
=
event
.
kind
();
Path
file
=
(
kind
==
OVERFLOW
)
?
null
:
(
Path
)
event
.
context
();
if
(
kind
==
ENTRY_MODIFY
)
{
boolean
added
=
modified
.
add
(
file
);
if
(!
added
)
{
throw
new
RuntimeException
(
"ENTRY_MODIFY events not queued efficiently"
);
}
}
else
{
if
(
file
!=
null
)
modified
.
remove
(
file
);
}
}
if
(!
key
.
reset
())
throw
new
RuntimeException
(
"Key is no longer valid"
);
key
=
watcher
.
poll
(
2
,
TimeUnit
.
SECONDS
);
}
}
// give time for events to accumulate (improve chance of overflow)
Thread
.
sleep
(
1000
);
// check that we see the delete events (or overflow)
drainEvents
(
watcher
,
ENTRY_DELETE
,
n
);
}
finally
{
watcher
.
close
();
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Path
dir
=
TestUtil
.
createTemporaryDirectory
();
try
{
test
(
dir
);
}
finally
{
TestUtil
.
removeAll
(
dir
);
static
class
DirectoryEntry
{
private
final
Path
file
;
DirectoryEntry
(
Path
file
)
{
this
.
file
=
file
;
}
void
create
()
throws
IOException
{
if
(
file
.
notExists
())
file
.
createFile
();
}
void
deleteIfExists
()
throws
IOException
{
file
.
deleteIfExists
();
}
void
modifyIfExists
()
throws
IOException
{
if
(
file
.
exists
())
{
OutputStream
out
=
file
.
newOutputStream
(
StandardOpenOption
.
APPEND
);
try
{
out
.
write
(
"message"
.
getBytes
());
}
finally
{
out
.
close
();
}
}
}
}
}
jdk/test/java/security/IdentityScope/NoDefaultSystemScope.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6921001
* @summary The default system identity scope is now null.
*/
import
java.security.*
;
public
class
NoDefaultSystemScope
{
public
static
void
main
(
String
args
[])
throws
Exception
{
IdentityScope
s
=
IdentityScope
.
getSystemScope
();
if
(
s
!=
null
)
{
throw
new
Exception
(
"The default system scope should be null"
);
}
System
.
out
.
println
(
"TEST PASSED"
);
}
}
jdk/test/javax/swing/JEditorPane/6917744/bug6917744.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6917744
* @summary JScrollPane Page Up/Down keys do not handle correctly html tables with different cells contents
* @author Pavel Porvatov
* @run main bug6917744
*/
import
java.awt.*
;
import
java.awt.event.KeyEvent
;
import
java.io.IOException
;
import
javax.swing.*
;
import
sun.awt.SunToolkit
;
public
class
bug6917744
{
private
static
JFrame
frame
;
private
static
JEditorPane
editorPane
;
private
static
JScrollPane
scrollPane
;
private
static
Robot
robot
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
SunToolkit
toolkit
=
(
SunToolkit
)
Toolkit
.
getDefaultToolkit
();
robot
=
new
Robot
();
robot
.
setAutoDelay
(
100
);
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
frame
=
new
JFrame
();
editorPane
=
new
JEditorPane
();
try
{
editorPane
.
setPage
(
bug6917744
.
class
.
getResource
(
"/test.html"
));
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"HTML resource not found"
,
e
);
}
scrollPane
=
new
JScrollPane
(
editorPane
);
frame
.
getContentPane
().
add
(
scrollPane
);
frame
.
setSize
(
400
,
300
);
frame
.
setVisible
(
true
);
}
});
toolkit
.
realSync
();
for
(
int
i
=
0
;
i
<
50
;
i
++)
{
robot
.
keyPress
(
KeyEvent
.
VK_PAGE_DOWN
);
}
toolkit
.
realSync
();
// Check that we at the end of document
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
BoundedRangeModel
model
=
scrollPane
.
getVerticalScrollBar
().
getModel
();
if
(
model
.
getValue
()
+
model
.
getExtent
()
!=
model
.
getMaximum
())
{
throw
new
RuntimeException
(
"Invalid HTML position"
);
}
}
});
toolkit
.
realSync
();
for
(
int
i
=
0
;
i
<
50
;
i
++)
{
robot
.
keyPress
(
KeyEvent
.
VK_PAGE_UP
);
}
toolkit
.
realSync
();
// Check that we at the begin of document
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
BoundedRangeModel
model
=
scrollPane
.
getVerticalScrollBar
().
getModel
();
if
(
model
.
getValue
()
!=
model
.
getMinimum
())
{
throw
new
RuntimeException
(
"Invalid HTML position"
);
}
frame
.
dispose
();
}
});
}
}
jdk/test/javax/swing/JEditorPane/6917744/test.html
0 → 100644
浏览文件 @
277b2050
<html>
<body
bgcolor=
"#ffffff"
>
<table
border=
"0"
>
<tr>
<td>
</td>
<td
valign=
"top"
>
<font
size=
"+1"
face=
"Arial, Helvetica, sans-serif"
>
<b>
TEST FOR JScrollPane BUG
</b>
<br>
</font>
<font
face=
"Arial, Helvetica, sans-serif"
size=
"-1"
>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
This is a test html file.
<br>
<font
size=
"+1"
face=
"Arial, Helvetica, sans-serif"
>
<b>
END OF TEST FOR JScrollPane BUG
</b>
<br>
</font>
</font>
</td>
<td>
</td>
</tr>
</table>
</body>
</html>
jdk/test/javax/swing/JScrollBar/6924059/bug6924059.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6924059
* @summary SynthScrollBarUI.configureScrollBarColors() should have spec different from the overridden method
* @author Pavel Porvatov
* @run main bug6924059
*/
import
javax.swing.*
;
import
javax.swing.plaf.synth.SynthLookAndFeel
;
import
javax.swing.plaf.synth.SynthScrollBarUI
;
public
class
bug6924059
{
private
static
boolean
isMethodCalled
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
UIManager
.
setLookAndFeel
(
new
SynthLookAndFeel
());
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
new
JScrollBar
().
setUI
(
new
SynthScrollBarUI
()
{
protected
void
configureScrollBarColors
()
{
super
.
configureScrollBarColors
();
isMethodCalled
=
true
;
}
});
if
(!
isMethodCalled
)
{
throw
new
RuntimeException
(
"The configureScrollBarColors was not called"
);
}
}
});
}
}
jdk/test/javax/swing/JSlider/6848475/bug6848475.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6848475
* @summary JSlider does not display the correct value of its BoundedRangeModel
* @author Pavel Porvatov
* @run main bug6848475
*/
import
sun.awt.SunToolkit
;
import
javax.swing.*
;
import
javax.swing.plaf.SliderUI
;
import
javax.swing.plaf.basic.BasicSliderUI
;
import
java.awt.*
;
import
java.awt.event.InputEvent
;
import
java.lang.reflect.Field
;
public
class
bug6848475
{
private
static
JFrame
frame
;
private
static
JSlider
slider
;
private
static
Robot
robot
;
private
static
int
thumbRectX
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
SunToolkit
toolkit
=
(
SunToolkit
)
Toolkit
.
getDefaultToolkit
();
robot
=
new
Robot
();
robot
.
setAutoDelay
(
100
);
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
frame
=
new
JFrame
();
DefaultBoundedRangeModel
sliderModel
=
new
DefaultBoundedRangeModel
()
{
public
void
setValue
(
int
n
)
{
// Don't allow value to be changed
}
};
slider
=
new
JSlider
(
sliderModel
);
frame
.
getContentPane
().
add
(
slider
);
frame
.
pack
();
frame
.
setVisible
(
true
);
}
});
toolkit
.
realSync
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
Point
p
=
slider
.
getLocationOnScreen
();
robot
.
mouseMove
(
p
.
x
,
p
.
y
);
}
});
toolkit
.
realSync
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
thumbRectX
=
getThumbRectField
().
x
;
Point
p
=
slider
.
getLocationOnScreen
();
robot
.
mouseMove
(
p
.
x
,
p
.
y
);
robot
.
mousePress
(
InputEvent
.
BUTTON1_DOWN_MASK
);
robot
.
mouseMove
(
p
.
x
+
20
,
p
.
y
);
robot
.
mouseRelease
(
InputEvent
.
BUTTON1_DOWN_MASK
);
}
});
toolkit
.
realSync
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
Rectangle
newThumbRect
=
getThumbRectField
();
if
(
newThumbRect
.
x
!=
thumbRectX
)
{
throw
new
RuntimeException
(
"Test failed: the thumb was moved"
);
}
frame
.
dispose
();
}
});
}
private
static
Rectangle
getThumbRectField
()
{
try
{
SliderUI
ui
=
slider
.
getUI
();
Field
field
=
BasicSliderUI
.
class
.
getDeclaredField
(
"thumbRect"
);
field
.
setAccessible
(
true
);
return
(
Rectangle
)
field
.
get
(
ui
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
jdk/test/javax/swing/JSlider/6918861/bug6918861.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6918861
* @summary SynthSliderUI.uninstallDefaults() is not called when UI is uninstalled
* @author Pavel Porvatov
* @run main bug6918861
*/
import
javax.swing.*
;
import
javax.swing.plaf.synth.SynthLookAndFeel
;
import
javax.swing.plaf.synth.SynthSliderUI
;
public
class
bug6918861
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
UIManager
.
setLookAndFeel
(
new
SynthLookAndFeel
());
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
JSlider
slider
=
new
JSlider
();
HackedSynthSliderUI
ui
=
new
HackedSynthSliderUI
(
slider
);
slider
.
setUI
(
ui
);
if
(
ui
.
counter
!=
111
)
{
throw
new
RuntimeException
(
"Some installers of SynthSliderUI weren't invoked"
);
}
slider
.
setUI
(
null
);
if
(
ui
.
counter
!=
0
)
{
throw
new
RuntimeException
(
"Some uninstallers of SynthSliderUI weren't invoked"
);
}
}
});
}
private
static
class
HackedSynthSliderUI
extends
SynthSliderUI
{
private
int
counter
;
protected
HackedSynthSliderUI
(
JSlider
c
)
{
super
(
c
);
}
protected
void
installDefaults
(
JSlider
slider
)
{
super
.
installDefaults
(
slider
);
counter
+=
1
;
}
protected
void
uninstallDefaults
(
JSlider
slider
)
{
super
.
uninstallDefaults
(
slider
);
counter
-=
1
;
}
protected
void
installListeners
(
JSlider
slider
)
{
super
.
installListeners
(
slider
);
counter
+=
10
;
}
protected
void
uninstallListeners
(
JSlider
slider
)
{
super
.
uninstallListeners
(
slider
);
counter
-=
10
;
}
protected
void
installKeyboardActions
(
JSlider
slider
)
{
super
.
installKeyboardActions
(
slider
);
counter
+=
100
;
}
protected
void
uninstallKeyboardActions
(
JSlider
slider
)
{
super
.
uninstallKeyboardActions
(
slider
);
counter
-=
100
;
}
}
}
jdk/test/javax/swing/JSlider/6923305/bug6923305.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6923305
* @summary SynthSliderUI paints the slider track when the slider's "paintTrack" property is set to false
* @author Pavel Porvatov
* @run main bug6923305
*/
import
javax.swing.*
;
import
javax.swing.plaf.synth.SynthContext
;
import
javax.swing.plaf.synth.SynthLookAndFeel
;
import
javax.swing.plaf.synth.SynthSliderUI
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
public
class
bug6923305
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
UIManager
.
setLookAndFeel
(
new
SynthLookAndFeel
());
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
JSlider
slider
=
new
JSlider
();
slider
.
setUI
(
new
SynthSliderUI
(
slider
)
{
@Override
protected
void
paintTrack
(
SynthContext
context
,
Graphics
g
,
Rectangle
trackBounds
)
{
throw
new
RuntimeException
(
"Test failed: the SynthSliderUI.paintTrack was invoked"
);
}
});
slider
.
setPaintTrack
(
false
);
slider
.
setSize
(
slider
.
getPreferredSize
());
BufferedImage
bufferedImage
=
new
BufferedImage
(
slider
.
getWidth
(),
slider
.
getHeight
(),
BufferedImage
.
TYPE_INT_ARGB
);
slider
.
paint
(
bufferedImage
.
getGraphics
());
}
});
}
}
jdk/test/javax/swing/JTable/6913768/bug6913768.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6913768
* @summary With default SynthLookAndFeel instance installed new JTable creation leads to throwing NPE
* @author Pavel Porvatov
* @run main bug6913768
*/
import
javax.swing.*
;
import
javax.swing.plaf.synth.SynthLookAndFeel
;
public
class
bug6913768
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
UIManager
.
setLookAndFeel
(
new
SynthLookAndFeel
());
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
JFrame
frame
=
new
JFrame
();
JTable
table
=
new
JTable
(
new
Object
[][]{{
"1"
,
"2"
},
{
"3"
,
"4"
}},
new
Object
[]{
"col1"
,
"col2"
});
frame
.
getContentPane
().
add
(
new
JScrollPane
(
table
));
frame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
frame
.
setSize
(
300
,
200
);
frame
.
setLocationRelativeTo
(
null
);
frame
.
setVisible
(
true
);
}
});
}
}
jdk/test/sun/security/krb5/etype/WeakCrypto.java
0 → 100644
浏览文件 @
277b2050
/*
* Copyright 2010 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 6844909
* @run main/othervm WeakCrypto
* @summary support allow_weak_crypto in krb5.conf
*/
import
java.io.File
;
import
sun.security.krb5.internal.crypto.EType
;
import
sun.security.krb5.EncryptedData
;
public
class
WeakCrypto
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
System
.
setProperty
(
"java.security.krb5.conf"
,
System
.
getProperty
(
"test.src"
,
"."
)
+
File
.
separator
+
"weakcrypto.conf"
);
int
[]
etypes
=
EType
.
getBuiltInDefaults
();
for
(
int
i
=
0
,
length
=
etypes
.
length
;
i
<
length
;
i
++)
{
if
(
etypes
[
i
]
==
EncryptedData
.
ETYPE_DES_CBC_CRC
||
etypes
[
i
]
==
EncryptedData
.
ETYPE_DES_CBC_MD4
||
etypes
[
i
]
==
EncryptedData
.
ETYPE_DES_CBC_MD5
)
{
throw
new
Exception
(
"DES should not appear"
);
}
}
}
}
jdk/test/sun/security/krb5/etype/weakcrypto.conf
0 → 100644
浏览文件 @
277b2050
[
libdefaults
]
allow_weak_crypto
=
false
make/jprt.properties
浏览文件 @
277b2050
#
# Copyright 2006-20
09
Sun Microsystems, Inc. All Rights Reserved.
# Copyright 2006-20
10
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
...
...
@@ -27,15 +27,15 @@
jprt.tools.default.release
=
jdk1.7.0
# Specific platform list
jprt.build.platforms
=
\
solaris_sparc_5.10,
\
solaris_sparcv9_5.10,
\
solaris_i586_5.10,
\
solaris_x64_5.10,
\
linux_i586_2.6,
\
linux_x64_2.6,
\
windows_i586,
\
windows_x64
jprt.build.platforms
=
\
solaris_sparc_5.10,
\
solaris_sparcv9_5.10,
\
solaris_i586_5.10,
\
solaris_x64_5.10,
\
linux_i586_2.6,
\
linux_x64_2.6,
\
windows_i586_5.0,
\
windows_x64_5.2
# The different build flavors we want
jprt.build.flavors
=
product,fastdebug
...
...
@@ -51,6 +51,44 @@ jprt.run.flavor.c2.option=-server
jprt.solaris_sparcv9.build.platform.match32
=
solaris_sparc_5.10
jprt.solaris_x64.build.platform.match32
=
solaris_i586_5.10
# Standard list of jprt test targets for this workspace
jprt.test.targets
=
*-*-*-jvm98
# Shortened list of vm tests
jprt.test.targets
=
\
*-product-*-jvm98,
\
*-product-*-scimark,
\
*-product-*-runThese,
\
*-product-*-GCBasher_default,
\
*-product-*-GCOld_default,
\
*-product-*-jbb_default
# Test targets in test/Makefile
jprt.make.rule.test.targets
=
\
*-product-*-jdk_beans1,
\
*-product-*-jdk_beans2,
\
*-product-*-jdk_beans3,
\
*-product-*-jdk_io,
\
*-product-*-jdk_lang,
\
*-product-*-jdk_management1,
\
*-product-*-jdk_management2,
\
*-product-*-jdk_math,
\
*-product-*-jdk_misc,
\
*-product-*-jdk_net,
\
*-product-*-jdk_nio1,
\
*-product-*-jdk_nio2,
\
*-product-*-jdk_nio3,
\
*-product-*-jdk_security1,
\
*-product-*-jdk_security2,
\
*-product-*-jdk_security3,
\
*-product-*-jdk_text,
\
*-product-*-jdk_tools1,
\
*-product-*-jdk_tools2,
\
*-product-*-jdk_util
# Not Ready Yet:
# *-product-*-langtools_all
# *-product-*-jdk_awt
# *-product-*-jdk_rmi
# *-product-*-jdk_swing
# Directories to be excluded from source bundles
jprt.bundle.exclude.src.dirs
=
build dist webrev
test/Makefile
0 → 100644
浏览文件 @
277b2050
#
# Copyright 2010 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.
#
#
# Makefile to run tests from multiple sibling directories
#
# Root of the forest that was built
TOPDIR
=
..
# This makefile depends on the availability of sibling directories.
LANGTOOLS_DIR
=
$(TOPDIR)
/langtools
JDK_DIR
=
$(TOPDIR)
/jdk
# Macro to run a test target in a subdir
define
SUBDIR_TEST
# subdirectory target
if
[
-d
$1
]
;
then
\
if
[
-r
$1/test/Makefile
]
;
then
\
echo
"$(MAKE) -C $1/test $2"
;
\
$(MAKE)
-C
$1/test
$2
;
\
else
\
echo "ERROR
:
File does not exist: $1/test/Makefile";
\
fi;
\
else
\
echo "WARNING: No testing done
,
directory does not exist: $1";
\
fi
endef
# Test target list for langtools repository
LANGTOOLS_TEST_LIST
=
langtools_all
# Test target list for jdk repository
JDK_TEST_LIST
=
\
jdk_awt
\
jdk_beans jdk_beans1 jdk_beans2 jdk_beans3
\
jdk_io
\
jdk_lang
\
jdk_management jdk_management1 jdk_management2
\
jdk_math
\
jdk_misc
\
jdk_net
\
jdk_nio jdk_nio1 jdk_nio2 jdk_nio3
\
jdk_rmi
\
jdk_security jdk_security1 jdk_security2 jdk_security3
\
jdk_swing
\
jdk_text
\
jdk_tools jdk_tools1 jdk_tools2
\
jdk_util
# Default test target (everything)
all
:
$(JDK_TEST_LIST) $(LANGTOOLS_TEST_LIST)
# Test targets
$(LANGTOOLS_TEST_LIST)
:
@
$(
call
SUBDIR_TEST,
$(LANGTOOLS_DIR)
, all
)
$(JDK_TEST_LIST)
:
@
$(
call
SUBDIR_TEST,
$(JDK_DIR)
,
$@
)
clean
:
################################################################
# Phony targets (e.g. these are not filenames)
.PHONY
:
all clean $(JDK_TEST_LIST) $(LANGTOOLS_TEST_LIST)
################################################################
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录