Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
4e203d7a
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4e203d7a
编写于
12月 09, 2010
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
1941e844
8e7a982b
变更
134
显示空白变更内容
内联
并排
Showing
134 changed file
with
9374 addition
and
2378 deletion
+9374
-2378
.hgtags
.hgtags
+2
-0
make/common/Defs.gmk
make/common/Defs.gmk
+13
-8
make/sun/nio/cs/FILES_java.gmk
make/sun/nio/cs/FILES_java.gmk
+3
-0
make/sun/xawt/mapfile-vers
make/sun/xawt/mapfile-vers
+1
-0
make/tools/CharsetMapping/IBM833.c2b
make/tools/CharsetMapping/IBM833.c2b
+94
-0
make/tools/CharsetMapping/IBM833.map
make/tools/CharsetMapping/IBM833.map
+217
-0
make/tools/CharsetMapping/extsbcs
make/tools/CharsetMapping/extsbcs
+1
-0
make/tools/GenerateCharacter/CharacterData00.java.template
make/tools/GenerateCharacter/CharacterData00.java.template
+14
-2
make/tools/GenerateCharacter/CharacterData01.java.template
make/tools/GenerateCharacter/CharacterData01.java.template
+32
-1
make/tools/UnicodeData/Scripts.txt
make/tools/UnicodeData/Scripts.txt
+147
-76
make/tools/UnicodeData/SpecialCasing.txt
make/tools/UnicodeData/SpecialCasing.txt
+9
-9
make/tools/UnicodeData/UnicodeData.txt
make/tools/UnicodeData/UnicodeData.txt
+4811
-450
make/tools/UnicodeData/VERSION
make/tools/UnicodeData/VERSION
+1
-1
src/share/bin/java.c
src/share/bin/java.c
+47
-5
src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java
...are/classes/com/sun/net/httpserver/HttpsConfigurator.java
+2
-0
src/share/classes/com/sun/net/httpserver/HttpsParameters.java
...share/classes/com/sun/net/httpserver/HttpsParameters.java
+4
-0
src/share/classes/com/sun/rowset/RowSetResourceBundle.properties
...re/classes/com/sun/rowset/RowSetResourceBundle.properties
+4
-4
src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java
...sses/com/sun/rowset/internal/XmlReaderContentHandler.java
+1
-1
src/share/classes/java/awt/Color.java
src/share/classes/java/awt/Color.java
+16
-7
src/share/classes/java/awt/Container.java
src/share/classes/java/awt/Container.java
+8
-0
src/share/classes/java/awt/Dialog.java
src/share/classes/java/awt/Dialog.java
+74
-6
src/share/classes/java/awt/FileDialog.java
src/share/classes/java/awt/FileDialog.java
+1
-1
src/share/classes/java/awt/Frame.java
src/share/classes/java/awt/Frame.java
+86
-9
src/share/classes/java/awt/Window.java
src/share/classes/java/awt/Window.java
+73
-43
src/share/classes/java/awt/font/NumericShaper.java
src/share/classes/java/awt/font/NumericShaper.java
+92
-15
src/share/classes/java/beans/Introspector.java
src/share/classes/java/beans/Introspector.java
+21
-5
src/share/classes/java/io/BufferedInputStream.java
src/share/classes/java/io/BufferedInputStream.java
+5
-1
src/share/classes/java/io/PushbackInputStream.java
src/share/classes/java/io/PushbackInputStream.java
+5
-1
src/share/classes/java/lang/Character.java
src/share/classes/java/lang/Character.java
+521
-62
src/share/classes/java/lang/Readable.java
src/share/classes/java/lang/Readable.java
+2
-2
src/share/classes/java/nio/StringCharBuffer.java
src/share/classes/java/nio/StringCharBuffer.java
+1
-1
src/share/classes/java/nio/channels/AsynchronousSocketChannel.java
.../classes/java/nio/channels/AsynchronousSocketChannel.java
+8
-13
src/share/classes/java/sql/SQLPermission.java
src/share/classes/java/sql/SQLPermission.java
+1
-1
src/share/classes/java/util/Formatter.java
src/share/classes/java/util/Formatter.java
+1
-0
src/share/classes/java/util/spi/CurrencyNameProvider.java
src/share/classes/java/util/spi/CurrencyNameProvider.java
+19
-0
src/share/classes/java/util/spi/LocaleNameProvider.java
src/share/classes/java/util/spi/LocaleNameProvider.java
+3
-1
src/share/classes/javax/security/auth/Policy.java
src/share/classes/javax/security/auth/Policy.java
+49
-0
src/share/classes/javax/security/auth/SubjectDomainCombiner.java
...re/classes/javax/security/auth/SubjectDomainCombiner.java
+6
-33
src/share/classes/javax/swing/AbstractButton.java
src/share/classes/javax/swing/AbstractButton.java
+4
-0
src/share/classes/javax/swing/BorderFactory.java
src/share/classes/javax/swing/BorderFactory.java
+2
-2
src/share/classes/javax/swing/JLayer.java
src/share/classes/javax/swing/JLayer.java
+7
-3
src/share/classes/javax/swing/JTabbedPane.java
src/share/classes/javax/swing/JTabbedPane.java
+7
-0
src/share/classes/javax/swing/border/TitledBorder.java
src/share/classes/javax/swing/border/TitledBorder.java
+63
-45
src/share/classes/javax/swing/plaf/LayerUI.java
src/share/classes/javax/swing/plaf/LayerUI.java
+4
-4
src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java
src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java
+48
-1
src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java
...are/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java
+11
-2
src/share/classes/sun/awt/AWTAccessor.java
src/share/classes/sun/awt/AWTAccessor.java
+36
-38
src/share/classes/sun/io/ByteToCharCp833.java
src/share/classes/sun/io/ByteToCharCp833.java
+42
-0
src/share/classes/sun/io/CharToByteCp833.java
src/share/classes/sun/io/CharToByteCp833.java
+46
-0
src/share/classes/sun/io/CharacterEncoding.java
src/share/classes/sun/io/CharacterEncoding.java
+6
-1
src/share/classes/sun/launcher/LauncherHelper.java
src/share/classes/sun/launcher/LauncherHelper.java
+197
-0
src/share/classes/sun/launcher/resources/launcher.properties
src/share/classes/sun/launcher/resources/launcher.properties
+10
-2
src/share/classes/sun/net/httpserver/ChunkedInputStream.java
src/share/classes/sun/net/httpserver/ChunkedInputStream.java
+1
-0
src/share/classes/sun/net/httpserver/Event.java
src/share/classes/sun/net/httpserver/Event.java
+2
-0
src/share/classes/sun/net/httpserver/ExchangeImpl.java
src/share/classes/sun/net/httpserver/ExchangeImpl.java
+1
-0
src/share/classes/sun/net/httpserver/FixedLengthInputStream.java
...re/classes/sun/net/httpserver/FixedLengthInputStream.java
+3
-0
src/share/classes/sun/net/httpserver/HttpConnection.java
src/share/classes/sun/net/httpserver/HttpConnection.java
+13
-0
src/share/classes/sun/net/httpserver/Request.java
src/share/classes/sun/net/httpserver/Request.java
+27
-81
src/share/classes/sun/net/httpserver/SSLStreams.java
src/share/classes/sun/net/httpserver/SSLStreams.java
+9
-32
src/share/classes/sun/net/httpserver/SelectorCache.java
src/share/classes/sun/net/httpserver/SelectorCache.java
+0
-134
src/share/classes/sun/net/httpserver/ServerConfig.java
src/share/classes/sun/net/httpserver/ServerConfig.java
+77
-34
src/share/classes/sun/net/httpserver/ServerImpl.java
src/share/classes/sun/net/httpserver/ServerImpl.java
+230
-52
src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java
...are/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java
+0
-4
src/share/classes/sun/nio/cs/UTF_8.java
src/share/classes/sun/nio/cs/UTF_8.java
+1
-1
src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
+7
-0
src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java
.../sun/security/krb5/internal/ccache/CCacheInputStream.java
+27
-16
src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
...n/security/krb5/internal/ccache/FileCredentialsCache.java
+5
-2
src/share/classes/sun/security/pkcs11/P11Cipher.java
src/share/classes/sun/security/pkcs11/P11Cipher.java
+5
-4
src/share/classes/sun/security/ssl/Krb5Helper.java
src/share/classes/sun/security/ssl/Krb5Helper.java
+1
-1
src/share/classes/sun/security/ssl/Krb5Proxy.java
src/share/classes/sun/security/ssl/Krb5Proxy.java
+1
-1
src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java
src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java
+1
-1
src/share/classes/sun/text/normalizer/NormalizerImpl.java
src/share/classes/sun/text/normalizer/NormalizerImpl.java
+3
-13
src/share/classes/sun/text/resources/ubidi.icu
src/share/classes/sun/text/resources/ubidi.icu
+0
-0
src/share/classes/sun/text/resources/unorm.icu
src/share/classes/sun/text/resources/unorm.icu
+0
-0
src/share/classes/sun/text/resources/uprops.icu
src/share/classes/sun/text/resources/uprops.icu
+0
-0
src/share/demo/applets/NervousText/example1.html
src/share/demo/applets/NervousText/example1.html
+1
-1
src/share/lib/security/sunpkcs11-solaris.cfg
src/share/lib/security/sunpkcs11-solaris.cfg
+4
-0
src/share/native/java/util/zip/Deflater.c
src/share/native/java/util/zip/Deflater.c
+9
-4
src/share/native/java/util/zip/Inflater.c
src/share/native/java/util/zip/Inflater.c
+4
-2
src/share/native/java/util/zip/zip_util.c
src/share/native/java/util/zip/zip_util.c
+17
-8
src/share/native/java/util/zip/zlib-1.2.3/compress.c
src/share/native/java/util/zip/zlib-1.2.3/compress.c
+1
-1
src/share/native/java/util/zip/zlib-1.2.3/uncompr.c
src/share/native/java/util/zip/zlib-1.2.3/uncompr.c
+1
-1
src/solaris/classes/sun/awt/X11/GtkFileDialogPeer.java
src/solaris/classes/sun/awt/X11/GtkFileDialogPeer.java
+4
-1
src/solaris/classes/sun/awt/X11/XFramePeer.java
src/solaris/classes/sun/awt/X11/XFramePeer.java
+3
-1
src/solaris/native/java/lang/java_props_md.c
src/solaris/native/java/lang/java_props_md.c
+7
-4
src/solaris/native/java/lang/locale_str.h
src/solaris/native/java/lang/locale_str.h
+1
-918
src/solaris/native/java/net/net_util_md.c
src/solaris/native/java/net/net_util_md.c
+83
-13
src/solaris/native/sun/awt/gtk2_interface.c
src/solaris/native/sun/awt/gtk2_interface.c
+1
-0
src/solaris/native/sun/awt/gtk2_interface.h
src/solaris/native/sun/awt/gtk2_interface.h
+1
-0
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c
+22
-0
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.h
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.h
+8
-0
src/windows/bin/java_md.c
src/windows/bin/java_md.c
+5
-1
src/windows/classes/sun/awt/windows/WFramePeer.java
src/windows/classes/sun/awt/windows/WFramePeer.java
+41
-1
src/windows/classes/sun/security/krb5/internal/tools/Ktab.java
...indows/classes/sun/security/krb5/internal/tools/Ktab.java
+2
-2
src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp
src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp
+9
-6
src/windows/native/sun/windows/awt_Choice.cpp
src/windows/native/sun/windows/awt_Choice.cpp
+5
-3
src/windows/native/sun/windows/awt_Choice.h
src/windows/native/sun/windows/awt_Choice.h
+1
-0
src/windows/native/sun/windows/awt_Toolkit.cpp
src/windows/native/sun/windows/awt_Toolkit.cpp
+5
-0
src/windows/native/sun/windows/awt_Toolkit.h
src/windows/native/sun/windows/awt_Toolkit.h
+2
-0
src/windows/resource/java.manifest
src/windows/resource/java.manifest
+1
-1
test/ProblemList.txt
test/ProblemList.txt
+0
-4
test/com/sun/net/httpserver/Test.java
test/com/sun/net/httpserver/Test.java
+12
-0
test/com/sun/net/httpserver/Test1.java
test/com/sun/net/httpserver/Test1.java
+1
-0
test/com/sun/net/httpserver/Test13.java
test/com/sun/net/httpserver/Test13.java
+13
-3
test/com/sun/net/httpserver/bugs/6725892/Test.java
test/com/sun/net/httpserver/bugs/6725892/Test.java
+266
-0
test/com/sun/net/httpserver/bugs/B6401598.java
test/com/sun/net/httpserver/bugs/B6401598.java
+1
-1
test/java/awt/Color/OpacityChange/OpacityChange.java
test/java/awt/Color/OpacityChange/OpacityChange.java
+54
-0
test/java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java
test/java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java
+73
-0
test/java/awt/font/NumericShaper/ShapingTest.java
test/java/awt/font/NumericShaper/ShapingTest.java
+31
-2
test/java/beans/Introspector/Test6447751.java
test/java/beans/Introspector/Test6447751.java
+100
-0
test/java/lang/Character/CheckScript.java
test/java/lang/Character/CheckScript.java
+9
-6
test/java/lang/Character/Scripts.txt
test/java/lang/Character/Scripts.txt
+147
-76
test/java/nio/Buffer/StringCharBufferSliceTest.java
test/java/nio/Buffer/StringCharBufferSliceTest.java
+18
-2
test/java/nio/channels/AsynchronousSocketChannel/Basic.java
test/java/nio/channels/AsynchronousSocketChannel/Basic.java
+56
-43
test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh
...urity/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh
+11
-5
test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh
test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh
+5
-3
test/java/text/Bidi/Bug7002398.java
test/java/text/Bidi/Bug7002398.java
+70
-0
test/java/util/Currency/Bug6807534.java
test/java/util/Currency/Bug6807534.java
+84
-0
test/java/util/Locale/data/deflocale.rhel5
test/java/util/Locale/data/deflocale.rhel5
+5
-5
test/java/util/Locale/data/deflocale.rhel5.fmtasdefault
test/java/util/Locale/data/deflocale.rhel5.fmtasdefault
+5
-5
test/java/util/ResourceBundle/Bug4168625Test.java
test/java/util/ResourceBundle/Bug4168625Test.java
+0
-6
test/java/util/concurrent/Executors/AutoShutdown.java
test/java/util/concurrent/Executors/AutoShutdown.java
+27
-8
test/javax/swing/JFileChooser/4150029/bug4150029.html
test/javax/swing/JFileChooser/4150029/bug4150029.html
+9
-0
test/javax/swing/JFileChooser/4150029/bug4150029.java
test/javax/swing/JFileChooser/4150029/bug4150029.java
+84
-0
test/javax/swing/JLayer/6994419/bug6994419.java
test/javax/swing/JLayer/6994419/bug6994419.java
+55
-0
test/javax/swing/JLayer/SerializationTest/SerializationTest.java
...vax/swing/JLayer/SerializationTest/SerializationTest.java
+0
-3
test/javax/swing/JScrollPane/6559589/bug6559589.java
test/javax/swing/JScrollPane/6559589/bug6559589.java
+54
-0
test/javax/swing/border/Test6981576.java
test/javax/swing/border/Test6981576.java
+91
-0
test/sun/nio/cs/CheckHistoricalNames.java
test/sun/nio/cs/CheckHistoricalNames.java
+3
-1
test/sun/security/krb5/UnknownCCEntry.java
test/sun/security/krb5/UnknownCCEntry.java
+219
-0
test/sun/security/krb5/tools/ktarg.sh
test/sun/security/krb5/tools/ktarg.sh
+67
-0
test/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java
test/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java
+132
-0
test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java
test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java
+5
-5
test/tools/launcher/Settings.java
test/tools/launcher/Settings.java
+137
-0
未找到文件。
.hgtags
浏览文件 @
4e203d7a
...
...
@@ -93,4 +93,6 @@ e250cef36ea05e627e7e6f7d75e5e19f529e2ba3 jdk7-b114
1657ed4e1d86c8aa2028ab5a41f9da1ac4a369f8 jdk7-b116
3e6726bbf80a4254ecd01051c8ed77ee19325e46 jdk7-b117
b357910aa04aead2a16b6d6ff395a8df4b51d1dd jdk7-b118
ecab7eefb8f2326fd90fb632f47f1b6f81e928f8 jdk7-b119
37d74e29687cf07c2bf9411af58c7e42440855c3 jdk7-b120
a661d8587b5d8986aacae086f5df66af9e1a96b1 jdk7-b121
make/common/Defs.gmk
浏览文件 @
4e203d7a
...
...
@@ -83,14 +83,19 @@ ifndef CLOSED_SRC
CLOSED_SRC = $(BUILDDIR)/../src/closed
endif
# If we have no closed directory, force it to an openjdk build
CLOSED_SRC_DIR_EXISTS := $(shell \
# If CLOSE_SRC_INCLUDED isn't set to true, check if there's any
# closed directory.
ifneq ($(CLOSED_SRC_INCLUDED), true)
CLOSED_SRC_INCLUDED := $(shell \
if [ -d $(CLOSED_SRC) ] ; then \
echo true; \
else \
echo false; \
fi)
ifeq ($(CLOSED_SRC_DIR_EXISTS), false)
endif
# Set OPENJDK based on CLOSED_SRC_INCLUDED
ifeq ($(CLOSED_SRC_INCLUDED), false)
OPENJDK = true
endif
...
...
make/sun/nio/cs/FILES_java.gmk
浏览文件 @
4e203d7a
...
...
@@ -85,6 +85,7 @@ FILES_src = \
sun/io/ByteToCharCp500.java \
sun/io/ByteToCharCp737.java \
sun/io/ByteToCharCp775.java \
sun/io/ByteToCharCp833.java \
sun/io/ByteToCharCp834.java \
sun/io/ByteToCharCp838.java \
sun/io/ByteToCharCp850.java \
...
...
@@ -214,6 +215,7 @@ FILES_src = \
sun/io/CharToByteCp500.java \
sun/io/CharToByteCp737.java \
sun/io/CharToByteCp775.java \
sun/io/CharToByteCp833.java \
sun/io/CharToByteCp834.java \
sun/io/CharToByteCp838.java \
sun/io/CharToByteCp850.java \
...
...
@@ -331,6 +333,7 @@ FILES_gen_extcs = \
sun/nio/cs/ext/IBM420.java \
sun/nio/cs/ext/IBM424.java \
sun/nio/cs/ext/IBM500.java \
sun/nio/cs/ext/IBM833.java \
sun/nio/cs/ext/IBM838.java \
sun/nio/cs/ext/IBM856.java \
sun/nio/cs/ext/IBM860.java \
...
...
make/sun/xawt/mapfile-vers
浏览文件 @
4e203d7a
...
...
@@ -432,6 +432,7 @@ SUNWprivate_1.1 {
Java_sun_awt_X11_GtkFileDialogPeer_initIDs;
Java_sun_awt_X11_GtkFileDialogPeer_run;
Java_sun_awt_X11_GtkFileDialogPeer_quit;
Java_sun_awt_X11_GtkFileDialogPeer_toFront;
Java_sun_print_CUPSPrinter_initIDs;
Java_sun_print_CUPSPrinter_getCupsServer;
...
...
make/tools/CharsetMapping/IBM833.c2b
0 → 100644
浏览文件 @
4e203d7a
0x5A U+FF01
0x7F U+FF02
0x7B U+FF03
0x5B U+FF04
0x6C U+FF05
0x50 U+FF06
0x7D U+FF07
0x4D U+FF08
0x5D U+FF09
0x5C U+FF0A
0x4E U+FF0B
0x6B U+FF0C
0x60 U+FF0D
0x4B U+FF0E
0x61 U+FF0F
0xF0 U+FF10
0xF1 U+FF11
0xF2 U+FF12
0xF3 U+FF13
0xF4 U+FF14
0xF5 U+FF15
0xF6 U+FF16
0xF7 U+FF17
0xF8 U+FF18
0xF9 U+FF19
0x7A U+FF1A
0x5E U+FF1B
0x4C U+FF1C
0x7E U+FF1D
0x6E U+FF1E
0x6F U+FF1F
0x7C U+FF20
0xC1 U+FF21
0xC2 U+FF22
0xC3 U+FF23
0xC4 U+FF24
0xC5 U+FF25
0xC6 U+FF26
0xC7 U+FF27
0xC8 U+FF28
0xC9 U+FF29
0xD1 U+FF2A
0xD2 U+FF2B
0xD3 U+FF2C
0xD4 U+FF2D
0xD5 U+FF2E
0xD6 U+FF2F
0xD7 U+FF30
0xD8 U+FF31
0xD9 U+FF32
0xE2 U+FF33
0xE3 U+FF34
0xE4 U+FF35
0xE5 U+FF36
0xE6 U+FF37
0xE7 U+FF38
0xE8 U+FF39
0xE9 U+FF3A
0x70 U+FF3B
0xB2 U+FF3C
0x80 U+FF3D
0xB0 U+FF3E
0x6D U+FF3F
0x79 U+FF40
0x81 U+FF41
0x82 U+FF42
0x83 U+FF43
0x84 U+FF44
0x85 U+FF45
0x86 U+FF46
0x87 U+FF47
0x88 U+FF48
0x89 U+FF49
0x91 U+FF4A
0x92 U+FF4B
0x93 U+FF4C
0x94 U+FF4D
0x95 U+FF4E
0x96 U+FF4F
0x97 U+FF50
0x98 U+FF51
0x99 U+FF52
0xA2 U+FF53
0xA3 U+FF54
0xA4 U+FF55
0xA5 U+FF56
0xA6 U+FF57
0xA7 U+FF58
0xA8 U+FF59
0xA9 U+FF5A
0xC0 U+FF5B
0x4F U+FF5C
0xD0 U+FF5D
0xA1 U+FF5E
make/tools/CharsetMapping/IBM833.map
0 → 100644
浏览文件 @
4e203d7a
0x00 U+0000
0x01 U+0001
0x02 U+0002
0x03 U+0003
0x37 U+0004
0x2D U+0005
0x2E U+0006
0x2F U+0007
0x16 U+0008
0x05 U+0009
0x25 U+000A
0x0B U+000B
0x0C U+000C
0x0D U+000D
0x0E U+000E
0x0F U+000F
0x10 U+0010
0x11 U+0011
0x12 U+0012
0x13 U+0013
0x3C U+0014
0x3D U+0015
0x32 U+0016
0x26 U+0017
0x18 U+0018
0x19 U+0019
0x3F U+001A
0x27 U+001B
0x1C U+001C
0x1D U+001D
0x1E U+001E
0x1F U+001F
0x40 U+0020
0x5A U+0021
0x7F U+0022
0x7B U+0023
0x5B U+0024
0x6C U+0025
0x50 U+0026
0x7D U+0027
0x4D U+0028
0x5D U+0029
0x5C U+002A
0x4E U+002B
0x6B U+002C
0x60 U+002D
0x4B U+002E
0x61 U+002F
0xF0 U+0030
0xF1 U+0031
0xF2 U+0032
0xF3 U+0033
0xF4 U+0034
0xF5 U+0035
0xF6 U+0036
0xF7 U+0037
0xF8 U+0038
0xF9 U+0039
0x7A U+003A
0x5E U+003B
0x4C U+003C
0x7E U+003D
0x6E U+003E
0x6F U+003F
0x7C U+0040
0xC1 U+0041
0xC2 U+0042
0xC3 U+0043
0xC4 U+0044
0xC5 U+0045
0xC6 U+0046
0xC7 U+0047
0xC8 U+0048
0xC9 U+0049
0xD1 U+004A
0xD2 U+004B
0xD3 U+004C
0xD4 U+004D
0xD5 U+004E
0xD6 U+004F
0xD7 U+0050
0xD8 U+0051
0xD9 U+0052
0xE2 U+0053
0xE3 U+0054
0xE4 U+0055
0xE5 U+0056
0xE6 U+0057
0xE7 U+0058
0xE8 U+0059
0xE9 U+005A
0x70 U+005B
0xB2 U+005C
0x80 U+005D
0xB0 U+005E
0x6D U+005F
0x79 U+0060
0x81 U+0061
0x82 U+0062
0x83 U+0063
0x84 U+0064
0x85 U+0065
0x86 U+0066
0x87 U+0067
0x88 U+0068
0x89 U+0069
0x91 U+006A
0x92 U+006B
0x93 U+006C
0x94 U+006D
0x95 U+006E
0x96 U+006F
0x97 U+0070
0x98 U+0071
0x99 U+0072
0xA2 U+0073
0xA3 U+0074
0xA4 U+0075
0xA5 U+0076
0xA6 U+0077
0xA7 U+0078
0xA8 U+0079
0xA9 U+007A
0xC0 U+007B
0x4F U+007C
0xD0 U+007D
0xA1 U+007E
0x07 U+007F
0x20 U+0080
0x21 U+0081
0x22 U+0082
0x23 U+0083
0x24 U+0084
0x15 U+0085
0x06 U+0086
0x17 U+0087
0x28 U+0088
0x29 U+0089
0x2A U+008A
0x2B U+008B
0x2C U+008C
0x09 U+008D
0x0A U+008E
0x1B U+008F
0x30 U+0090
0x31 U+0091
0x1A U+0092
0x33 U+0093
0x34 U+0094
0x35 U+0095
0x36 U+0096
0x08 U+0097
0x38 U+0098
0x39 U+0099
0x3A U+009A
0x3B U+009B
0x04 U+009C
0x14 U+009D
0x3E U+009E
0xFF U+009F
0x4A U+00A2
0x6A U+00A6
0x5F U+00AC
0xA0 U+203E
0xE0 U+20A9
0x42 U+FFA0
0x43 U+FFA1
0x44 U+FFA2
0x45 U+FFA3
0x46 U+FFA4
0x47 U+FFA5
0x48 U+FFA6
0x49 U+FFA7
0x52 U+FFA8
0x53 U+FFA9
0x54 U+FFAA
0x55 U+FFAB
0x56 U+FFAC
0x57 U+FFAD
0x58 U+FFAE
0x59 U+FFAF
0x62 U+FFB0
0x63 U+FFB1
0x64 U+FFB2
0x65 U+FFB3
0x66 U+FFB4
0x67 U+FFB5
0x68 U+FFB6
0x69 U+FFB7
0x72 U+FFB8
0x73 U+FFB9
0x74 U+FFBA
0x75 U+FFBB
0x76 U+FFBC
0x77 U+FFBD
0x78 U+FFBE
0x8A U+FFC2
0x8B U+FFC3
0x8C U+FFC4
0x8D U+FFC5
0x8E U+FFC6
0x8F U+FFC7
0x9A U+FFCA
0x9B U+FFCB
0x9C U+FFCC
0x9D U+FFCD
0x9E U+FFCE
0x9F U+FFCF
0xAA U+FFD2
0xAB U+FFD3
0xAC U+FFD4
0xAD U+FFD5
0xAE U+FFD6
0xAF U+FFD7
0xBA U+FFDA
0xBB U+FFDB
0xBC U+FFDC
make/tools/CharsetMapping/extsbcs
浏览文件 @
4e203d7a
...
...
@@ -32,6 +32,7 @@ IBM297 IBM297 Cp297 false sun.nio.cs.ext
IBM420 IBM420 Cp420 false sun.nio.cs.ext
IBM424 IBM424 Cp424 false sun.nio.cs.ext
IBM500 IBM500 Cp500 false sun.nio.cs.ext
IBM833 x-IBM833 Cp833 false sun.nio.cs.ext
IBM838 IBM-Thai Cp838 false sun.nio.cs.ext
IBM856 x-IBM856 Cp856 false sun.nio.cs.ext
IBM860 IBM860 Cp860 false sun.nio.cs.ext
...
...
make/tools/GenerateCharacter/CharacterData00.java.template
浏览文件 @
4e203d7a
/*
*
Copyright
(
c
)
2003
,
20
06
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
*
Copyright
(
c
)
2003
,
20
10
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
*
DO
NOT
ALTER
OR
REMOVE
COPYRIGHT
NOTICES
OR
THIS
FILE
HEADER
.
*
*
This
code
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
...
...
@@ -192,7 +192,11 @@ class CharacterData00 extends CharacterData {
case
0x2C6D
:
mapChar
=
0x0251
;
break
;
case
0x2C6E
:
mapChar
=
0x0271
;
break
;
case
0x2C6F
:
mapChar
=
0x0250
;
break
;
case
0x2C70
:
mapChar
=
0x0252
;
break
;
case
0x2C7E
:
mapChar
=
0x023F
;
break
;
case
0x2C7F
:
mapChar
=
0x0240
;
break
;
case
0xA77D
:
mapChar
=
0x1D79
;
break
;
case
0xA78D
:
mapChar
=
0x0265
;
break
;
//
default
mapChar
is
already
set
,
so
no
//
need
to
redo
it
here
.
//
default
:
mapChar
=
ch
;
...
...
@@ -246,8 +250,12 @@ class CharacterData00 extends CharacterData {
case
0x1FC3
:
mapChar
=
0x1FCC
;
break
;
case
0x1FF3
:
mapChar
=
0x1FFC
;
break
;
case
0x023F
:
mapChar
=
0x2C7E
;
break
;
case
0x0240
:
mapChar
=
0x2C7F
;
break
;
case
0x0250
:
mapChar
=
0x2C6F
;
break
;
case
0x0251
:
mapChar
=
0x2C6D
;
break
;
case
0x0252
:
mapChar
=
0x2C70
;
break
;
case
0x0265
:
mapChar
=
0xA78D
;
break
;
case
0x026B
:
mapChar
=
0x2C62
;
break
;
case
0x0271
:
mapChar
=
0x2C6E
;
break
;
case
0x027D
:
mapChar
=
0x2C64
;
break
;
...
...
@@ -487,8 +495,12 @@ class CharacterData00 extends CharacterData {
case 0x017F : mapChar = 0x0053; break;
case 0x1FBE : mapChar = 0x0399; break;
case 0x023F : mapChar = 0x2C7E; break;
case 0x0240 : mapChar = 0x2C7F; break;
case 0x0250 : mapChar = 0x2C6F; break;
case 0x0251 : mapChar = 0x2C6D; break;
case 0x0252 : mapChar = 0x2C70; break;
case 0x0265 : mapChar = 0xA78D; break;
case 0x026B : mapChar = 0x2C62; break;
case 0x0271 : mapChar = 0x2C6E; break;
case 0x027D : mapChar = 0x2C64; break;
...
...
make/tools/GenerateCharacter/CharacterData01.java.template
浏览文件 @
4e203d7a
/*
*
Copyright
(
c
)
2003
,
20
06
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
*
Copyright
(
c
)
2003
,
20
10
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
*
DO
NOT
ALTER
OR
REMOVE
COPYRIGHT
NOTICES
OR
THIS
FILE
HEADER
.
*
*
This
code
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
...
...
@@ -251,9 +251,40 @@ class CharacterData01 extends CharacterData {
case
0x010341
:
retval
=
90
;
break
;
//
GOTHIC
LETTER
NINETY
case
0x01034A
:
retval
=
900
;
break
;
//
GOTHIC
LETTER
NINE
HUNDRED
case
0x0103D5
:
retval
=
100
;
break
;
//
OLD
PERSIAN
NUMBER
HUNDRED
case
0x01085D
:
retval
=
100
;
break
;
//
IMPERIAL
ARAMAIC
NUMBER
ONE
HUNDRED
case
0x01085E
:
retval
=
1000
;
break
;
//
IMPERIAL
ARAMAIC
NUMBER
ONE
THOUSAND
case
0x01085F
:
retval
=
10000
;
break
;
//
IMPERIAL
ARAMAIC
NUMBER
TEN
THOUSAND
case
0x010919
:
retval
=
100
;
break
;
//
PHOENICIAN
NUMBER
ONE
HUNDRED
case
0x010A46
:
retval
=
100
;
break
;
//
KHAROSHTHI
NUMBER
ONE
HUNDRED
case
0x010A47
:
retval
=
1000
;
break
;
//
KHAROSHTHI
NUMBER
ONE
THOUSAND
case
0x010A7E
:
retval
=
50
;
break
;
//
OLD
SOUTH
ARABIAN
NUMBER
FIFTY
case
0x010B5E
:
retval
=
100
;
break
;
//
INSCRIPTIONAL
PARTHIAN
NUMBER
ONE
HUNDRED
case
0x010B5F
:
retval
=
1000
;
break
;
//
INSCRIPTIONAL
PARTHIAN
NUMBER
ONE
THOUSAND
case
0x010B7E
:
retval
=
100
;
break
;
//
INSCRIPTIONAL
PAHLAVI
NUMBER
ONE
HUNDRED
case
0x010B7F
:
retval
=
1000
;
break
;
//
INSCRIPTIONAL
PAHLAVI
NUMBER
ONE
THOUSAND
case
0x010E6C
:
retval
=
40
;
break
;
//
RUMI
NUMBER
FORTY
case
0x010E6D
:
retval
=
50
;
break
;
//
RUMI
NUMBER
FIFTY
case
0x010E6E
:
retval
=
60
;
break
;
//
RUMI
NUMBER
SIXTY
case
0x010E6F
:
retval
=
70
;
break
;
//
RUMI
NUMBER
SEVENTY
case
0x010E70
:
retval
=
80
;
break
;
//
RUMI
NUMBER
EIGHTY
case
0x010E71
:
retval
=
90
;
break
;
//
RUMI
NUMBER
NINETY
case
0x010E72
:
retval
=
100
;
break
;
//
RUMI
NUMBER
ONE
HUNDRED
case
0x010E73
:
retval
=
200
;
break
;
//
RUMI
NUMBER
TWO
HUNDRED
case
0x010E74
:
retval
=
300
;
break
;
//
RUMI
NUMBER
THREE
HUNDRED
case
0x010E75
:
retval
=
400
;
break
;
//
RUMI
NUMBER
FOUR
HUNDRED
case
0x010E76
:
retval
=
500
;
break
;
//
RUMI
NUMBER
FIVE
HUNDRED
case
0x010E77
:
retval
=
600
;
break
;
//
RUMI
NUMBER
SIX
HUNDRED
case
0x010E78
:
retval
=
700
;
break
;
//
RUMI
NUMBER
SEVEN
HUNDRED
case
0x010E79
:
retval
=
800
;
break
;
//
RUMI
NUMBER
EIGHT
HUNDRED
case
0x010E7A
:
retval
=
900
;
break
;
//
RUMI
NUMBER
NINE
HUNDRED
case
0x01105E
:
retval
=
40
;
break
;
//
BRAHMI
NUMBER
FORTY
case
0x01105F
:
retval
=
50
;
break
;
//
BRAHMI
NUMBER
FIFTY
case
0x011060
:
retval
=
60
;
break
;
//
BRAHMI
NUMBER
SIXTY
case
0x011061
:
retval
=
70
;
break
;
//
BRAHMI
NUMBER
SEVENTY
case
0x011062
:
retval
=
80
;
break
;
//
BRAHMI
NUMBER
EIGHTY
case
0x011063
:
retval
=
90
;
break
;
//
BRAHMI
NUMBER
NINETY
case
0x011064
:
retval
=
100
;
break
;
//
BRAHMI
NUMBER
ONE
HUNDRED
case
0x011065
:
retval
=
1000
;
break
;
//
BRAHMI
NUMBER
ONE
THOUSAND
case
0x01D36C
:
retval
=
40
;
break
;
//
COUNTING
ROD
TENS
DIGIT
FOUR
case
0x01D36D
:
retval
=
50
;
break
;
//
COUNTING
ROD
TENS
DIGIT
FIVE
case
0x01D36E
:
retval
=
60
;
break
;
//
COUNTING
ROD
TENS
DIGIT
SIX
...
...
make/tools/UnicodeData/Scripts.txt
浏览文件 @
4e203d7a
# Scripts-
5.2
.0.txt
# Date: 20
09-08-22, 04:58:43
GMT [MD]
# Scripts-
6.0
.0.txt
# Date: 20
10-08-19, 00:48:47
GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-20
09
Unicode, Inc.
# Copyright (c) 1991-20
10
Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
...
...
@@ -73,7 +73,7 @@
02C2..02C5 ; Common # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
02C6..02D1 ; Common # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
02D2..02DF ; Common # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
02E5..02E
B ; Common # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
02E5..02E
9 ; Common # Sk [5] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER EXTRA-LOW TONE BAR
02EC ; Common # Lm MODIFIER LETTER VOICING
02ED ; Common # Sk MODIFIER LETTER UNASPIRATED
02EE ; Common # Lm MODIFIER LETTER DOUBLE APOSTROPHE
...
...
@@ -83,7 +83,6 @@
0385 ; Common # Sk GREEK DIALYTIKA TONOS
0387 ; Common # Po GREEK ANO TELEIA
0589 ; Common # Po ARMENIAN FULL STOP
0600..0603 ; Common # Cf [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
060C ; Common # Po ARABIC COMMA
061B ; Common # Po ARABIC SEMICOLON
061F ; Common # Po ARABIC QUESTION MARK
...
...
@@ -92,7 +91,6 @@
06DD ; Common # Cf ARABIC END OF AYAH
0964..0965 ; Common # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
0970 ; Common # Po DEVANAGARI ABBREVIATION SIGN
0CF1..0CF2 ; Common # So [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
0E3F ; Common # Sc THAI CURRENCY SYMBOL BAHT
0FD5..0FD8 ; Common # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
10FB ; Common # Po GEORGIAN PARAGRAPH SEPARATOR
...
...
@@ -148,7 +146,7 @@
208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
20A0..20B
8 ; Common # Sc [25] EURO-CURRENCY SIGN..TENG
E SIGN
20A0..20B
9 ; Common # Sc [26] EURO-CURRENCY SIGN..INDIAN RUPE
E SIGN
2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
...
...
@@ -157,7 +155,8 @@
210A..2113 ; Common # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
2114 ; Common # So L B BAR SYMBOL
2115 ; Common # L& DOUBLE-STRUCK CAPITAL N
2116..2118 ; Common # So [3] NUMERO SIGN..SCRIPT CAPITAL P
2116..2117 ; Common # So [2] NUMERO SIGN..SOUND RECORDING COPYRIGHT
2118 ; Common # Sm SCRIPT CAPITAL P
2119..211D ; Common # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
211E..2123 ; Common # So [6] PRESCRIPTION TAKE..VERSICLE
2124 ; Common # L& DOUBLE-STRUCK CAPITAL Z
...
...
@@ -213,7 +212,7 @@
239B..23B3 ; Common # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
23B4..23DB ; Common # So [40] TOP SQUARE BRACKET..FUSE
23DC..23E1 ; Common # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
23E2..23
E8 ; Common # So [7] WHITE TRAPEZIUM..DECIMAL EXPONENT SYMBOL
23E2..23
F3 ; Common # So [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
2400..2426 ; Common # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
2440..244A ; Common # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
2460..249B ; Common # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
...
...
@@ -227,18 +226,8 @@
25F8..25FF ; Common # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
2600..266E ; Common # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
266F ; Common # Sm MUSIC SHARP SIGN
2670..26CD ; Common # So [94] WEST SYRIAC CROSS..DISABLED CAR
26CF..26E1 ; Common # So [19] PICK..RESTRICTED LEFT ENTRY-2
26E3 ; Common # So HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
26E8..26FF ; Common # So [24] BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
2701..2704 ; Common # So [4] UPPER BLADE SCISSORS..WHITE SCISSORS
2706..2709 ; Common # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
270C..2727 ; Common # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
2729..274B ; Common # So [35] STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
274D ; Common # So SHADOWED WHITE CIRCLE
274F..2752 ; Common # So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
2756..275E ; Common # So [9] BLACK DIAMOND MINUS WHITE X..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
2761..2767 ; Common # So [7] CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
2670..26FF ; Common # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
2701..2767 ; Common # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
2768 ; Common # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
2769 ; Common # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
276A ; Common # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
...
...
@@ -254,15 +243,13 @@
2774 ; Common # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
2775 ; Common # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
2776..2793 ; Common # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
2794 ; Common # So HEAVY WIDE-HEADED RIGHTWARDS ARROW
2798..27AF ; Common # So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
27B1..27BE ; Common # So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
2794..27BF ; Common # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
27C0..27C4 ; Common # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
27C5 ; Common # Ps LEFT S-SHAPED BAG DELIMITER
27C6 ; Common # Pe RIGHT S-SHAPED BAG DELIMITER
27C7..27CA ; Common # Sm [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
27CC ; Common # Sm LONG DIVISION
27
D0..27E5 ; Common # Sm [22] WHITE DIAMOND WITH CENTRED DOT
..WHITE SQUARE WITH RIGHTWARDS TICK
27
CE..27E5 ; Common # Sm [24] SQUARED LOGICAL AND
..WHITE SQUARE WITH RIGHTWARDS TICK
27E6 ; Common # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
27E7 ; Common # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
27E8 ; Common # Ps MATHEMATICAL LEFT ANGLE BRACKET
...
...
@@ -555,27 +542,51 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1D7CE..1D7FF ; Common # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
1F000..1F02B ; Common # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
1F030..1F093 ; Common # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
1F0A0..1F0AE ; Common # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
1F0B1..1F0BE ; Common # So [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
1F0C1..1F0CF ; Common # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
1F0D1..1F0DF ; Common # So [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
1F100..1F10A ; Common # No [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
1F110..1F12E ; Common # So [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
1F131 ; Common # So SQUARED LATIN CAPITAL LETTER B
1F13D ; Common # So SQUARED LATIN CAPITAL LETTER N
1F13F ; Common # So SQUARED LATIN CAPITAL LETTER P
1F142 ; Common # So SQUARED LATIN CAPITAL LETTER S
1F146 ; Common # So SQUARED LATIN CAPITAL LETTER W
1F14A..1F14E ; Common # So [5] SQUARED HV..SQUARED PPV
1F157 ; Common # So NEGATIVE CIRCLED LATIN CAPITAL LETTER H
1F15F ; Common # So NEGATIVE CIRCLED LATIN CAPITAL LETTER P
1F179 ; Common # So NEGATIVE SQUARED LATIN CAPITAL LETTER J
1F17B..1F17C ; Common # So [2] NEGATIVE SQUARED LATIN CAPITAL LETTER L..NEGATIVE SQUARED LATIN CAPITAL LETTER M
1F17F ; Common # So NEGATIVE SQUARED LATIN CAPITAL LETTER P
1F18A..1F18D ; Common # So [4] CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P..NEGATIVE SQUARED SA
1F190 ; Common # So SQUARE DJ
1F210..1F231 ; Common # So [34] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-6253
1F130..1F169 ; Common # So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F19A ; Common # So [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
1F1E6..1F1FF ; Common # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
1F201..1F202 ; Common # So [2] SQUARED KATAKANA KOKO..SQUARED KATAKANA SA
1F210..1F23A ; Common # So [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
1F240..1F248 ; Common # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
1F250..1F251 ; Common # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
1F300..1F320 ; Common # So [33] CYCLONE..SHOOTING STAR
1F330..1F335 ; Common # So [6] CHESTNUT..CACTUS
1F337..1F37C ; Common # So [70] TULIP..BABY BOTTLE
1F380..1F393 ; Common # So [20] RIBBON..GRADUATION CAP
1F3A0..1F3C4 ; Common # So [37] CAROUSEL HORSE..SURFER
1F3C6..1F3CA ; Common # So [5] TROPHY..SWIMMER
1F3E0..1F3F0 ; Common # So [17] HOUSE BUILDING..EUROPEAN CASTLE
1F400..1F43E ; Common # So [63] RAT..PAW PRINTS
1F440 ; Common # So EYES
1F442..1F4F7 ; Common # So [182] EAR..CAMERA
1F4F9..1F4FC ; Common # So [4] VIDEO CAMERA..VIDEOCASSETTE
1F500..1F53D ; Common # So [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
1F550..1F567 ; Common # So [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
1F5FB..1F5FF ; Common # So [5] MOUNT FUJI..MOYAI
1F601..1F610 ; Common # So [16] GRINNING FACE WITH SMILING EYES..NEUTRAL FACE
1F612..1F614 ; Common # So [3] UNAMUSED FACE..PENSIVE FACE
1F616 ; Common # So CONFOUNDED FACE
1F618 ; Common # So FACE THROWING A KISS
1F61A ; Common # So KISSING FACE WITH CLOSED EYES
1F61C..1F61E ; Common # So [3] FACE WITH STUCK-OUT TONGUE AND WINKING EYE..DISAPPOINTED FACE
1F620..1F625 ; Common # So [6] ANGRY FACE..DISAPPOINTED BUT RELIEVED FACE
1F628..1F62B ; Common # So [4] FEARFUL FACE..TIRED FACE
1F62D ; Common # So LOUDLY CRYING FACE
1F630..1F633 ; Common # So [4] FACE WITH OPEN MOUTH AND COLD SWEAT..FLUSHED FACE
1F635..1F640 ; Common # So [12] DIZZY FACE..WEARY CAT FACE
1F645..1F64F ; Common # So [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
1F680..1F6C5 ; Common # So [70] ROCKET..LEFT LUGGAGE
1F700..1F773 ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
E0001 ; Common # Cf LANGUAGE TAG
E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
# Total code points:
5395
# Total code points:
6379
# ================================================
...
...
@@ -603,7 +614,7 @@ E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
1E00..1EFF ; Latin # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
2071 ; Latin # Lm SUPERSCRIPT LATIN SMALL LETTER I
207F ; Latin # Lm SUPERSCRIPT LATIN SMALL LETTER N
2090..209
4 ; Latin # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
2090..209
C ; Latin # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
212A..212B ; Latin # L& [2] KELVIN SIGN..ANGSTROM SIGN
2132 ; Latin # L& TURNED CAPITAL F
214E ; Latin # L& TURNED SMALL F
...
...
@@ -616,13 +627,16 @@ E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
A722..A76F ; Latin # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
A770 ; Latin # Lm MODIFIER LETTER US
A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
A78B..A78C ; Latin # L& [2] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER SALTILLO
A78B..A78E ; Latin # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A790..A791 ; Latin # L& [2] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER N WITH DESCENDER
A7A0..A7A9 ; Latin # L& [10] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN SMALL LETTER S WITH OBLIQUE STROKE
A7FA ; Latin # L& LATIN LETTER SMALL CAPITAL TURNED M
A7FB..A7FF ; Latin # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
# Total code points: 12
44
# Total code points: 12
67
# ================================================
...
...
@@ -687,12 +701,11 @@ FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
0483..0484 ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PALATALIZATION
0487 ; Cyrillic # Mn COMBINING CYRILLIC POKRYTIE
0488..0489 ; Cyrillic # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
048A..052
5 ; Cyrillic # L& [156] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER PE
WITH DESCENDER
048A..052
7 ; Cyrillic # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA
WITH DESCENDER
1D2B ; Cyrillic # L& CYRILLIC LETTER SMALL CAPITAL EL
1D78 ; Cyrillic # Lm MODIFIER LETTER CYRILLIC EN
2DE0..2DFF ; Cyrillic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
A640..A65F ; Cyrillic # L& [32] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER YN
A662..A66D ; Cyrillic # L& [12] CYRILLIC CAPITAL LETTER SOFT DE..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
A640..A66D ; Cyrillic # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
A66E ; Cyrillic # Lo CYRILLIC LETTER MULTIOCULAR O
A66F ; Cyrillic # Mn COMBINING CYRILLIC VZMET
A670..A672 ; Cyrillic # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
...
...
@@ -702,7 +715,7 @@ A67E ; Cyrillic # Po CYRILLIC KAVYKA
A67F ; Cyrillic # Lm CYRILLIC PAYEROK
A680..A697 ; Cyrillic # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
# Total code points: 40
4
# Total code points: 40
8
# ================================================
...
...
@@ -744,6 +757,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
# ================================================
0600..0603 ; Arabic # Cf [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
0606..0608 ; Arabic # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
0609..060A ; Arabic # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
060B ; Arabic # Sc AFGHANI SIGN
...
...
@@ -751,7 +765,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
0610..061A ; Arabic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK
062
1..063F ; Arabic # Lo [31] ARABIC LETTER HAMZA
..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
062
0..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH
..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
0656..065E ; Arabic # Mn [9] ARABIC SUBSCRIPT ALEF..ARABIC FATHA WITH TWO DOTS
066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
...
...
@@ -760,7 +774,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
06D4 ; Arabic # Po ARABIC FULL STOP
06D5 ; Arabic # Lo ARABIC LETTER AE
06D6..06DC ; Arabic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
06DE ; Arabic #
Me
ARABIC START OF RUB EL HIZB
06DE ; Arabic #
So
ARABIC START OF RUB EL HIZB
06DF..06E4 ; Arabic # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
06E5..06E6 ; Arabic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
06E7..06E8 ; Arabic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
...
...
@@ -773,6 +787,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
FBB2..FBC1 ; Arabic # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
...
...
@@ -782,7 +797,7 @@ FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN
FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
10E60..10E7E ; Arabic # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
# Total code points: 10
30
# Total code points: 10
51
# ================================================
...
...
@@ -809,27 +824,29 @@ FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
0900..0902 ; Devanagari # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
0903 ; Devanagari # Mc DEVANAGARI SIGN VISARGA
0904..0939 ; Devanagari # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
093A ; Devanagari # Mn DEVANAGARI VOWEL SIGN OE
093B ; Devanagari # Mc DEVANAGARI VOWEL SIGN OOE
093C ; Devanagari # Mn DEVANAGARI SIGN NUKTA
093D ; Devanagari # Lo DEVANAGARI SIGN AVAGRAHA
093E..0940 ; Devanagari # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
0941..0948 ; Devanagari # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
0949..094C ; Devanagari # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
094D ; Devanagari # Mn DEVANAGARI SIGN VIRAMA
094E
; Devanagari # Mc DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
094E
..094F ; Devanagari # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
0950 ; Devanagari # Lo DEVANAGARI OM
0953..095
5 ; Devanagari # Mn [3] DEVANAGARI GRAVE ACCENT..DEVANAGARI VOWEL SIGN CANDRA LONG
E
0953..095
7 ; Devanagari # Mn [5] DEVANAGARI GRAVE ACCENT..DEVANAGARI VOWEL SIGN UU
E
0958..0961 ; Devanagari # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
0962..0963 ; Devanagari # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0966..096F ; Devanagari # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
0971 ; Devanagari # Lm DEVANAGARI SIGN HIGH SPACING DOT
0972
; Devanagari # Lo DEVANAGARI LETTER CANDRA A
0972
..0977 ; Devanagari # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
0979..097F ; Devanagari # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
A8E0..A8F1 ; Devanagari # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
A8F2..A8F7 ; Devanagari # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
A8F8..A8FA ; Devanagari # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
# Total code points: 1
4
0
# Total code points: 1
5
0
# ================================================
...
...
@@ -941,8 +958,9 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0B66..0B6F ; Oriya # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
0B70 ; Oriya # So ORIYA ISSHAR
0B71 ; Oriya # Lo ORIYA LETTER WA
0B72..0B77 ; Oriya # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
# Total code points:
84
# Total code points:
90
# ================================================
...
...
@@ -1018,22 +1036,23 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0CE0..0CE1 ; Kannada # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
0CE2..0CE3 ; Kannada # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0CF1..0CF2 ; Kannada # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
# Total code points: 8
4
# Total code points: 8
6
# ================================================
0D02..0D03 ; Malayalam # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D05..0D0C ; Malayalam # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
0D0E..0D10 ; Malayalam # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
0D12..0D28 ; Malayalam # Lo [23] MALAYALAM LETTER O..MALAYALAM LETTER NA
0D2A..0D39 ; Malayalam # Lo [16] MALAYALAM LETTER PA..MALAYALAM LETTER HA
0D12..0D3A ; Malayalam # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
0D3D ; Malayalam # Lo MALAYALAM SIGN AVAGRAHA
0D3E..0D40 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
0D41..0D44 ; Malayalam # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0D46..0D48 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
0D4A..0D4C ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
0D4D ; Malayalam # Mn MALAYALAM SIGN VIRAMA
0D4E ; Malayalam # Lo MALAYALAM LETTER DOT REPH
0D57 ; Malayalam # Mc MALAYALAM AU LENGTH MARK
0D60..0D61 ; Malayalam # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
0D62..0D63 ; Malayalam # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
...
...
@@ -1042,7 +1061,7 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0D79 ; Malayalam # So MALAYALAM DATE MARK
0D7A..0D7F ; Malayalam # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
# Total code points: 9
5
# Total code points: 9
8
# ================================================
...
...
@@ -1132,16 +1151,17 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0F80..0F84 ; Tibetan # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
0F85 ; Tibetan # Po TIBETAN MARK PALUTA
0F86..0F87 ; Tibetan # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
0F88..0F8
B ; Tibetan # Lo [4] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN GRU MED RGYINGS
0F
90..0F97 ; Tibetan # Mn [8] TIBETAN SUBJOINED LETTER KA
..TIBETAN SUBJOINED LETTER JA
0F88..0F8
C ; Tibetan # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
0F
8D..0F97 ; Tibetan # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN
..TIBETAN SUBJOINED LETTER JA
0F99..0FBC ; Tibetan # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0FBE..0FC5 ; Tibetan # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
0FC6 ; Tibetan # Mn TIBETAN SYMBOL PADMA GDAN
0FC7..0FCC ; Tibetan # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
0FCE..0FCF ; Tibetan # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
0FD0..0FD4 ; Tibetan # Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
0FD9..0FDA ; Tibetan # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
# Total code points: 20
1
# Total code points: 20
7
# ================================================
...
...
@@ -1201,6 +1221,7 @@ AA7B ; Myanmar # Mc MYANMAR SIGN PAO KAREN TONE
# ================================================
1100..11FF ; Hangul # Lo [256] HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
302E..302F ; Hangul # Mn [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
3131..318E ; Hangul # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
3200..321E ; Hangul # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
3260..327E ; Hangul # So [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
...
...
@@ -1214,7 +1235,7 @@ FFCA..FFCF ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL
FFD2..FFD7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
# Total code points: 1173
7
# Total code points: 1173
9
# ================================================
...
...
@@ -1234,7 +1255,7 @@ FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL L
12D8..1310 ; Ethiopic # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
1312..1315 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
1318..135A ; Ethiopic # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
135
F ; Ethiopic # Mn
ETHIOPIC COMBINING GEMINATION MARK
135
D..135F ; Ethiopic # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..
ETHIOPIC COMBINING GEMINATION MARK
1360 ; Ethiopic # So ETHIOPIC SECTION MARK
1361..1368 ; Ethiopic # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
1369..137C ; Ethiopic # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
...
...
@@ -1249,8 +1270,13 @@ FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL L
2DC8..2DCE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
2DD0..2DD6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
2DD8..2DDE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
AB01..AB06 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
AB09..AB0E ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
AB11..AB16 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
AB20..AB26 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
AB28..AB2E ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
# Total code points: 4
61
# Total code points: 4
95
# ================================================
...
...
@@ -1329,9 +1355,10 @@ FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL L
3041..3096 ; Hiragana # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI
1B001 ; Hiragana # Lo HIRAGANA LETTER ARCHAIC YE
1F200 ; Hiragana # So SQUARE HIRAGANA HOKA
# Total code points: 9
0
# Total code points: 9
1
# ================================================
...
...
@@ -1343,15 +1370,17 @@ FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL L
3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
# Total code points:
299
# Total code points:
300
# ================================================
02EA..02EB ; Bopomofo # Sk [2] MODIFIER LETTER YIN DEPARTING TONE MARK..MODIFIER LETTER YANG DEPARTING TONE MARK
3105..312D ; Bopomofo # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH
31A0..31B
7 ; Bopomofo # Lo [24] BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
31A0..31B
A ; Bopomofo # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY
# Total code points:
65
# Total code points:
70
# ================================================
...
...
@@ -1370,9 +1399,10 @@ FA30..FA6D ; Han # Lo [62] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILI
FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
20000..2A6D6 ; Han # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
2A700..2B734 ; Han # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
# Total code points: 75
738
# Total code points: 75
960
# ================================================
...
...
@@ -1410,6 +1440,7 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
0300..036F ; Inherited # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
0485..0486 ; Inherited # Mn [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA
064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
065F ; Inherited # Mn ARABIC WAVY HAMZA BELOW
0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF
0951..0952 ; Inherited # Mn [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
...
...
@@ -1417,14 +1448,14 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
1CE2..1CE8 ; Inherited # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; Inherited # Mn VEDIC SIGN TIRYAK
1DC0..1DE6 ; Inherited # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
1DF
D..1DFF ; Inherited # Mn [3] COMBINING ALMOST EQUAL TO
BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
1DF
C..1DFF ; Inherited # Mn [4] COMBINING DOUBLE INVERTED BREVE
BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; Inherited # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
20E1 ; Inherited # Mn COMBINING LEFT RIGHT ARROW ABOVE
20E2..20E4 ; Inherited # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
20E5..20F0 ; Inherited # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
302A..302
F ; Inherited # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT
TONE MARK
302A..302
D ; Inherited # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING
TONE MARK
3099..309A ; Inherited # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
FE00..FE0F ; Inherited # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
FE20..FE26 ; Inherited # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
...
...
@@ -1568,8 +1599,9 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
19B0..19C0 ; New_Tai_Lue # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
19C1..19C7 ; New_Tai_Lue # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
19C8..19C9 ; New_Tai_Lue # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
19D0..19DA ; New_Tai_Lue # Nd [11] NEW TAI LUE DIGIT ZERO..NEW TAI LUE THAM DIGIT ONE
19DE..19DF ; New_Tai_Lue # Po [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
19D0..19D9 ; New_Tai_Lue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
19DA ; New_Tai_Lue # No NEW TAI LUE THAM DIGIT ONE
19DE..19DF ; New_Tai_Lue # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
# Total code points: 83
...
...
@@ -1584,8 +1616,10 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
2D30..2D65 ; Tifinagh # Lo [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
2D6F ; Tifinagh # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
2D70 ; Tifinagh # Po TIFINAGH SEPARATOR MARK
2D7F ; Tifinagh # Mn TIFINAGH CONSONANT JOINER
# Total code points: 5
5
# Total code points: 5
7
# ================================================
...
...
@@ -1882,8 +1916,9 @@ A6A0..A6E5 ; Bamum # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
A6E6..A6EF ; Bamum # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
A6F0..A6F1 ; Bamum # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
A6F2..A6F7 ; Bamum # Po [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
16800..16A38 ; Bamum # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
# Total code points:
88
# Total code points:
657
# ================================================
...
...
@@ -1969,4 +2004,40 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
# Total code points: 66
# ================================================
1BC0..1BE5 ; Batak # Lo [38] BATAK LETTER A..BATAK LETTER U
1BE6 ; Batak # Mn BATAK SIGN TOMPI
1BE7 ; Batak # Mc BATAK VOWEL SIGN E
1BE8..1BE9 ; Batak # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
1BEA..1BEC ; Batak # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
1BED ; Batak # Mn BATAK VOWEL SIGN KARO O
1BEE ; Batak # Mc BATAK VOWEL SIGN U
1BEF..1BF1 ; Batak # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
1BF2..1BF3 ; Batak # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
1BFC..1BFF ; Batak # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
# Total code points: 56
# ================================================
11000 ; Brahmi # Mc BRAHMI SIGN CANDRABINDU
11001 ; Brahmi # Mn BRAHMI SIGN ANUSVARA
11002 ; Brahmi # Mc BRAHMI SIGN VISARGA
11003..11037 ; Brahmi # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
11038..11046 ; Brahmi # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
11047..1104D ; Brahmi # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
11052..11065 ; Brahmi # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
11066..1106F ; Brahmi # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
# Total code points: 108
# ================================================
0840..0858 ; Mandaic # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
0859..085B ; Mandaic # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
085E ; Mandaic # Po MANDAIC PUNCTUATION
# Total code points: 29
# EOF
make/tools/UnicodeData/SpecialCasing.txt
浏览文件 @
4e203d7a
# SpecialCasing-
5.1
.0.txt
# Date: 20
08-03-03, 21:58:10
GMT [MD]
# SpecialCasing-
6.0
.0.txt
# Date: 20
10-05-18, 00:49:39
GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-20
08
Unicode, Inc.
# Copyright (c) 1991-20
10
Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see
UCD.html
# For documentation, see
http://www.unicode.org/reports/tr44/
#
# Special Casing Properties
#
...
...
@@ -106,11 +106,11 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
1FE7; 1FE7; 03A5 0308 0342; 03A5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
1FF6; 1FF6; 03A9 0342; 03A9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
# IMPORTANT-when
capitalizing iota-subscript (0345)
#
It MUST be in normalized form--moved to the end of any sequence of combining marks.
#
This is because logically it represents a following base character!
#
E.g. <iota_subscript> (<Mn> | <Mc> | <Me>)+ => (<Mn> | <Mc> | <Me>)+ <iota_subscript>
#
It should never be the first character in a word, so in titlecasing it can be left as is.
# IMPORTANT-when
iota-subscript (0345) is uppercased or titlecased,
#
the result will be incorrect unless the iota-subscript is moved to the end
#
of any sequence of combining marks. Otherwise, the accents will go on the capital iota.
#
This process can be achieved by first transforming the text to NFC before casing.
#
E.g. <alpha><iota_subscript><acute> is uppercased to <ALPHA><acute><IOTA>
# The following cases are already in the UnicodeData file, so are only commented here.
...
...
make/tools/UnicodeData/UnicodeData.txt
浏览文件 @
4e203d7a
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
make/tools/UnicodeData/VERSION
浏览文件 @
4e203d7a
5.1
.0
6.0
.0
src/share/bin/java.c
浏览文件 @
4e203d7a
...
...
@@ -65,6 +65,7 @@ static jboolean printVersion = JNI_FALSE; /* print and exit */
static
jboolean
showVersion
=
JNI_FALSE
;
/* print but continue */
static
jboolean
printUsage
=
JNI_FALSE
;
/* print and exit*/
static
jboolean
printXUsage
=
JNI_FALSE
;
/* print and exit*/
static
char
*
showSettings
=
NULL
;
/* print but continue */
static
const
char
*
_program_name
;
static
const
char
*
_launcher_name
;
...
...
@@ -109,6 +110,7 @@ static void SetApplicationClassPath(const char**);
static
void
PrintJavaVersion
(
JNIEnv
*
env
,
jboolean
extraLF
);
static
void
PrintUsage
(
JNIEnv
*
env
,
jboolean
doXUsage
);
static
void
ShowSettings
(
JNIEnv
*
env
,
char
*
optString
);
static
void
SetPaths
(
int
argc
,
char
**
argv
);
...
...
@@ -157,6 +159,7 @@ static jboolean IsWildCardEnabled();
* create a new thread to invoke JVM. See 6316197 for more information.
*/
static
jlong
threadStackSize
=
0
;
/* stack size of the new thread */
static
jlong
heapSize
=
0
;
/* heap size */
int
JNICALL
JavaMain
(
void
*
args
);
/* entry point */
...
...
@@ -376,6 +379,10 @@ JavaMain(void * _args)
}
}
if
(
showSettings
!=
NULL
)
{
ShowSettings
(
env
,
showSettings
);
CHECK_EXCEPTION_LEAVE
(
0
);
}
/* If the user specified neither a class name nor a JAR file */
if
(
printXUsage
||
printUsage
||
(
jarfile
==
0
&&
classname
==
0
))
{
PrintUsage
(
env
,
printXUsage
);
...
...
@@ -611,7 +618,7 @@ CheckJvmType(int *pargc, char ***argv, jboolean speculative) {
/* copied from HotSpot function "atomll()" */
static
int
parse_s
tack_s
ize
(
const
char
*
s
,
jlong
*
result
)
{
parse_size
(
const
char
*
s
,
jlong
*
result
)
{
jlong
n
=
0
;
int
args_read
=
sscanf
(
s
,
jlong_format_specifier
(),
&
n
);
if
(
args_read
!=
1
)
{
...
...
@@ -674,10 +681,17 @@ AddOption(char *str, void *info)
if
(
JLI_StrCCmp
(
str
,
"-Xss"
)
==
0
)
{
jlong
tmp
;
if
(
parse_stack
_size
(
str
+
4
,
&
tmp
))
{
if
(
parse
_size
(
str
+
4
,
&
tmp
))
{
threadStackSize
=
tmp
;
}
}
if
(
JLI_StrCCmp
(
str
,
"-Xmx"
)
==
0
)
{
jlong
tmp
;
if
(
parse_size
(
str
+
4
,
&
tmp
))
{
heapSize
=
tmp
;
}
}
}
static
void
...
...
@@ -1014,6 +1028,13 @@ ParseArguments(int *pargc, char ***pargv, char **pjarfile,
}
else
if
(
JLI_StrCmp
(
arg
,
"-X"
)
==
0
)
{
printXUsage
=
JNI_TRUE
;
return
JNI_TRUE
;
/*
* The following case checks for -XshowSettings OR -XshowSetting:SUBOPT.
* In the latter case, any SUBOPT value not recognized will default to "all"
*/
}
else
if
(
JLI_StrCmp
(
arg
,
"-XshowSettings"
)
==
0
||
JLI_StrCCmp
(
arg
,
"-XshowSettings:"
)
==
0
)
{
showSettings
=
arg
;
/*
* The following case provide backward compatibility with old-style
* command line options.
...
...
@@ -1474,6 +1495,27 @@ PrintJavaVersion(JNIEnv *env, jboolean extraLF)
(
*
env
)
->
CallStaticVoidMethod
(
env
,
ver
,
print
);
}
/*
* Prints all the Java settings, see the java implementation for more details.
*/
static
void
ShowSettings
(
JNIEnv
*
env
,
char
*
optString
)
{
jclass
cls
;
jmethodID
showSettingsID
;
jstring
joptString
;
NULL_CHECK
(
cls
=
FindBootStrapClass
(
env
,
"sun/launcher/LauncherHelper"
));
NULL_CHECK
(
showSettingsID
=
(
*
env
)
->
GetStaticMethodID
(
env
,
cls
,
"showSettings"
,
"(ZLjava/lang/String;JJZ)V"
));
joptString
=
(
*
env
)
->
NewStringUTF
(
env
,
optString
);
(
*
env
)
->
CallStaticVoidMethod
(
env
,
cls
,
showSettingsID
,
JNI_TRUE
,
joptString
,
(
jlong
)
heapSize
,
(
jlong
)
threadStackSize
,
ServerClassMachine
());
}
/*
* Prints default usage or the Xusage message, see sun.launcher.LauncherHelper.java
*/
...
...
src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java
浏览文件 @
4e203d7a
...
...
@@ -91,6 +91,7 @@ public class HttpsConfigurator {
return
context
;
}
//BEGIN_TIGER_EXCLUDE
/**
* Called by the HttpsServer to configure the parameters
* for a https connection currently being established.
...
...
@@ -111,4 +112,5 @@ public class HttpsConfigurator {
public
void
configure
(
HttpsParameters
params
)
{
params
.
setSSLParameters
(
getSSLContext
().
getDefaultSSLParameters
());
}
//END_TIGER_EXCLUDE
}
src/share/classes/com/sun/net/httpserver/HttpsParameters.java
浏览文件 @
4e203d7a
...
...
@@ -25,7 +25,9 @@
package
com.sun.net.httpserver
;
import
java.net.InetSocketAddress
;
//BEGIN_TIGER_EXCLUDE
import
javax.net.ssl.SSLParameters
;
//END_TIGER_EXCLUDE
/**
* Represents the set of parameters for each https
...
...
@@ -67,6 +69,7 @@ public abstract class HttpsParameters {
*/
public
abstract
InetSocketAddress
getClientAddress
();
//BEGIN_TIGER_EXCLUDE
/**
* Sets the SSLParameters to use for this HttpsParameters.
* The parameters must be supported by the SSLContext contained
...
...
@@ -79,6 +82,7 @@ public abstract class HttpsParameters {
* invalid or unsupported.
*/
public
abstract
void
setSSLParameters
(
SSLParameters
params
);
//END_TIGER_EXCLUDE
/**
* Returns a copy of the array of ciphersuites or null if none
...
...
src/share/classes/com/sun/rowset/RowSetResourceBundle.properties
浏览文件 @
4e203d7a
#
# Copyright (c) 2005, 20
06
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2005, 20
10
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -140,7 +140,7 @@ syncrsimpl.valtores = Value to be resolved can either be in the database or in c
#WebRowSetXmlReader exception
wrsxmlreader.invalidcp
=
End of RowSet reached. Invalid cursor position
wrsxmlreader.readxml
=
readXML : {0}
wrsxmlreader.parseerr
=
** Parsing Error : {0} , line : {
0} , uri : {0
}
wrsxmlreader.parseerr
=
** Parsing Error : {0} , line : {
1} , uri : {2
}
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex
=
IOException : {0}
...
...
@@ -151,7 +151,7 @@ wsrxmlwriter.notproper = Not a proper type
#XmlReaderContentHandler exceptions
xmlrch.errmap
=
Error setting Map : {0}
xmlrch.errmetadata
=
Error setting metadata : {0}
xmlrch.errinsert
=
Error inserting values : {0}
xmlrch.errinsert
val
=
Error inserting values : {0}
xmlrch.errconstr
=
Error constructing row : {0}
xmlrch.errdel
=
Error deleting row : {0}
xmlrch.errinsert
=
Error constructing insert row : {0}
...
...
@@ -161,7 +161,7 @@ xmlrch.errupdrow = Error updating row : {0}
xmlrch.chars
=
characters :
xmlrch.badvalue
=
Bad value ; non-nullable property
xmlrch.badvalue1
=
Bad value ; non-nullable metadata
xmlrch.warning
=
** Warning : {0} , line : {
0} , uri : {0
}
xmlrch.warning
=
** Warning : {0} , line : {
1} , uri : {2
}
#RIOptimisticProvider Exceptions
riop.locking
=
Locking classification is not supported
...
...
src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java
浏览文件 @
4e203d7a
...
...
@@ -738,7 +738,7 @@ public class XmlReaderContentHandler extends DefaultHandler {
// columnValue now need to be reset to the empty string
columnValue
=
""
;
}
catch
(
SQLException
ex
)
{
throw
new
SAXException
(
MessageFormat
.
format
(
resBundle
.
handleGetObject
(
"xmlrch.errinsert"
).
toString
(),
ex
.
getMessage
()));
throw
new
SAXException
(
MessageFormat
.
format
(
resBundle
.
handleGetObject
(
"xmlrch.errinsert
val
"
).
toString
(),
ex
.
getMessage
()));
}
break
;
case
RowTag:
...
...
src/share/classes/java/awt/Color.java
浏览文件 @
4e203d7a
...
...
@@ -611,12 +611,15 @@ public class Color implements Paint, java.io.Serializable {
* <p>
* This method applies an arbitrary scale factor to each of the three RGB
* components of this <code>Color</code> to create a brighter version
* of this <code>Color</code>. Although <code>brighter</code> and
* of this <code>Color</code>.
* The {@code alpha} value is preserved.
* Although <code>brighter</code> and
* <code>darker</code> are inverse operations, the results of a
* series of invocations of these two methods might be inconsistent
* because of rounding errors.
* @return a new <code>Color</code> object that is
* a brighter version of this <code>Color</code>.
* a brighter version of this <code>Color</code>
* with the same {@code alpha} value.
* @see java.awt.Color#darker
* @since JDK1.0
*/
...
...
@@ -624,6 +627,7 @@ public class Color implements Paint, java.io.Serializable {
int
r
=
getRed
();
int
g
=
getGreen
();
int
b
=
getBlue
();
int
alpha
=
getAlpha
();
/* From 2D group:
* 1. black.brighter() should return grey
...
...
@@ -632,7 +636,7 @@ public class Color implements Paint, java.io.Serializable {
*/
int
i
=
(
int
)(
1.0
/(
1.0
-
FACTOR
));
if
(
r
==
0
&&
g
==
0
&&
b
==
0
)
{
return
new
Color
(
i
,
i
,
i
);
return
new
Color
(
i
,
i
,
i
,
alpha
);
}
if
(
r
>
0
&&
r
<
i
)
r
=
i
;
if
(
g
>
0
&&
g
<
i
)
g
=
i
;
...
...
@@ -640,7 +644,8 @@ public class Color implements Paint, java.io.Serializable {
return
new
Color
(
Math
.
min
((
int
)(
r
/
FACTOR
),
255
),
Math
.
min
((
int
)(
g
/
FACTOR
),
255
),
Math
.
min
((
int
)(
b
/
FACTOR
),
255
));
Math
.
min
((
int
)(
b
/
FACTOR
),
255
),
alpha
);
}
/**
...
...
@@ -649,19 +654,23 @@ public class Color implements Paint, java.io.Serializable {
* <p>
* This method applies an arbitrary scale factor to each of the three RGB
* components of this <code>Color</code> to create a darker version of
* this <code>Color</code>. Although <code>brighter</code> and
* this <code>Color</code>.
* The {@code alpha} value is preserved.
* Although <code>brighter</code> and
* <code>darker</code> are inverse operations, the results of a series
* of invocations of these two methods might be inconsistent because
* of rounding errors.
* @return a new <code>Color</code> object that is
* a darker version of this <code>Color</code>.
* a darker version of this <code>Color</code>
* with the same {@code alpha} value.
* @see java.awt.Color#brighter
* @since JDK1.0
*/
public
Color
darker
()
{
return
new
Color
(
Math
.
max
((
int
)(
getRed
()
*
FACTOR
),
0
),
Math
.
max
((
int
)(
getGreen
()*
FACTOR
),
0
),
Math
.
max
((
int
)(
getBlue
()
*
FACTOR
),
0
));
Math
.
max
((
int
)(
getBlue
()
*
FACTOR
),
0
),
getAlpha
());
}
/**
...
...
src/share/classes/java/awt/Container.java
浏览文件 @
4e203d7a
...
...
@@ -51,6 +51,7 @@ import javax.accessibility.*;
import
sun.util.logging.PlatformLogger
;
import
sun.awt.AppContext
;
import
sun.awt.AWTAccessor
;
import
sun.awt.CausedFocusEvent
;
import
sun.awt.PeerEvent
;
import
sun.awt.SunToolkit
;
...
...
@@ -247,6 +248,13 @@ public class Container extends Component {
if
(!
GraphicsEnvironment
.
isHeadless
())
{
initIDs
();
}
AWTAccessor
.
setContainerAccessor
(
new
AWTAccessor
.
ContainerAccessor
()
{
@Override
public
void
validateUnconditionally
(
Container
cont
)
{
cont
.
validateUnconditionally
();
}
});
}
/**
...
...
src/share/classes/java/awt/Dialog.java
浏览文件 @
4e203d7a
...
...
@@ -1248,14 +1248,31 @@ public class Dialog extends Window {
/**
* Disables or enables decorations for this dialog.
* This method can only be called while the dialog is not displayable.
* @param undecorated <code>true</code> if no dialog decorations are
* to be enabled;
* <code>false</code> if dialog decorations are to be enabled.
* @throws <code>IllegalComponentStateException</code> if the dialog
* is displayable.
* <p>
* This method can only be called while the dialog is not displayable. To
* make this dialog decorated, it must be opaque and have the default shape,
* otherwise the {@code IllegalComponentStateException} will be thrown.
* Refer to {@link Window#setShape}, {@link Window#setOpacity} and {@link
* Window#setBackground} for details
*
* @param undecorated {@code true} if no dialog decorations are to be
* enabled; {@code false} if dialog decorations are to be enabled
*
* @throws IllegalComponentStateException if the dialog is displayable
* @throws IllegalComponentStateException if {@code undecorated} is
* {@code false}, and this dialog does not have the default shape
* @throws IllegalComponentStateException if {@code undecorated} is
* {@code false}, and this dialog opacity is less than {@code 1.0f}
* @throws IllegalComponentStateException if {@code undecorated} is
* {@code false}, and the alpha value of this dialog background
* color is less than {@code 1.0f}
*
* @see #isUndecorated
* @see Component#isDisplayable
* @see Window#getShape
* @see Window#getOpacity
* @see Window#getBackground
*
* @since 1.4
*/
public
void
setUndecorated
(
boolean
undecorated
)
{
...
...
@@ -1264,6 +1281,18 @@ public class Dialog extends Window {
if
(
isDisplayable
())
{
throw
new
IllegalComponentStateException
(
"The dialog is displayable."
);
}
if
(!
undecorated
)
{
if
(
getOpacity
()
<
1.0f
)
{
throw
new
IllegalComponentStateException
(
"The dialog is not opaque"
);
}
if
(
getShape
()
!=
null
)
{
throw
new
IllegalComponentStateException
(
"The dialog does not have a default shape"
);
}
Color
bg
=
getBackground
();
if
((
bg
!=
null
)
&&
(
bg
.
getAlpha
()
<
255
))
{
throw
new
IllegalComponentStateException
(
"The dialog background color is not opaque"
);
}
}
this
.
undecorated
=
undecorated
;
}
}
...
...
@@ -1280,6 +1309,45 @@ public class Dialog extends Window {
return
undecorated
;
}
/**
* {@inheritDoc}
*/
@Override
public
void
setOpacity
(
float
opacity
)
{
synchronized
(
getTreeLock
())
{
if
((
opacity
<
1.0f
)
&&
!
isUndecorated
())
{
throw
new
IllegalComponentStateException
(
"The dialog is decorated"
);
}
super
.
setOpacity
(
opacity
);
}
}
/**
* {@inheritDoc}
*/
@Override
public
void
setShape
(
Shape
shape
)
{
synchronized
(
getTreeLock
())
{
if
((
shape
!=
null
)
&&
!
isUndecorated
())
{
throw
new
IllegalComponentStateException
(
"The dialog is decorated"
);
}
super
.
setShape
(
shape
);
}
}
/**
* {@inheritDoc}
*/
@Override
public
void
setBackground
(
Color
bgColor
)
{
synchronized
(
getTreeLock
())
{
if
((
bgColor
!=
null
)
&&
(
bgColor
.
getAlpha
()
<
255
)
&&
!
isUndecorated
())
{
throw
new
IllegalComponentStateException
(
"The dialog is decorated"
);
}
super
.
setBackground
(
bgColor
);
}
}
/**
* Returns a string representing the state of this dialog. This
* method is intended to be used only for debugging purposes, and the
...
...
src/share/classes/java/awt/FileDialog.java
浏览文件 @
4e203d7a
...
...
@@ -99,7 +99,7 @@ public class FileDialog extends Dialog {
* Contains the File instances for all the files that the user selects.
*
* @serial
* @see getFiles
* @see
#
getFiles
* @since 1.7
*/
private
File
[]
files
;
...
...
src/share/classes/java/awt/Frame.java
浏览文件 @
4e203d7a
...
...
@@ -828,6 +828,11 @@ public class Frame extends Window implements MenuContainer {
return
frame
.
state
;
}
}
public
Rectangle
getMaximizedBounds
(
Frame
frame
)
{
synchronized
(
frame
.
getObjectLock
())
{
return
frame
.
maximizedBounds
;
}
}
}
);
}
...
...
@@ -855,8 +860,10 @@ public class Frame extends Window implements MenuContainer {
* @see #getMaximizedBounds()
* @since 1.4
*/
public
synchronized
void
setMaximizedBounds
(
Rectangle
bounds
)
{
public
void
setMaximizedBounds
(
Rectangle
bounds
)
{
synchronized
(
getObjectLock
())
{
this
.
maximizedBounds
=
bounds
;
}
FramePeer
peer
=
(
FramePeer
)
this
.
peer
;
if
(
peer
!=
null
)
{
peer
.
setMaximizedBounds
(
bounds
);
...
...
@@ -873,21 +880,40 @@ public class Frame extends Window implements MenuContainer {
* @since 1.4
*/
public
Rectangle
getMaximizedBounds
()
{
synchronized
(
getObjectLock
())
{
return
maximizedBounds
;
}
}
/**
* Disables or enables decorations for this frame.
* This method can only be called while the frame is not displayable.
* @param undecorated <code>true</code> if no frame decorations are
* to be enabled;
* <code>false</code> if frame decorations are to be enabled.
* @throws <code>IllegalComponentStateException</code> if the frame
* is displayable.
* <p>
* This method can only be called while the frame is not displayable. To
* make this frame decorated, it must be opaque and have the default shape,
* otherwise the {@code IllegalComponentStateException} will be thrown.
* Refer to {@link Window#setShape}, {@link Window#setOpacity} and {@link
* Window#setBackground} for details
*
* @param undecorated {@code true} if no frame decorations are to be
* enabled; {@code false} if frame decorations are to be enabled
*
* @throws IllegalComponentStateException if the frame is displayable
* @throws IllegalComponentStateException if {@code undecorated} is
* {@code false}, and this frame does not have the default shape
* @throws IllegalComponentStateException if {@code undecorated} is
* {@code false}, and this frame opacity is less than {@code 1.0f}
* @throws IllegalComponentStateException if {@code undecorated} is
* {@code false}, and the alpha value of this frame background
* color is less than {@code 1.0f}
*
* @see #isUndecorated
* @see Component#isDisplayable
* @see Window#getShape
* @see Window#getOpacity
* @see Window#getBackground
* @see javax.swing.JFrame#setDefaultLookAndFeelDecorated(boolean)
*
* @since 1.4
*/
public
void
setUndecorated
(
boolean
undecorated
)
{
...
...
@@ -896,6 +922,18 @@ public class Frame extends Window implements MenuContainer {
if
(
isDisplayable
())
{
throw
new
IllegalComponentStateException
(
"The frame is displayable."
);
}
if
(!
undecorated
)
{
if
(
getOpacity
()
<
1.0f
)
{
throw
new
IllegalComponentStateException
(
"The frame is not opaque"
);
}
if
(
getShape
()
!=
null
)
{
throw
new
IllegalComponentStateException
(
"The frame does not have a default shape"
);
}
Color
bg
=
getBackground
();
if
((
bg
!=
null
)
&&
(
bg
.
getAlpha
()
<
255
))
{
throw
new
IllegalComponentStateException
(
"The frame background color is not opaque"
);
}
}
this
.
undecorated
=
undecorated
;
}
}
...
...
@@ -912,6 +950,45 @@ public class Frame extends Window implements MenuContainer {
return
undecorated
;
}
/**
* {@inheritDoc}
*/
@Override
public
void
setOpacity
(
float
opacity
)
{
synchronized
(
getTreeLock
())
{
if
((
opacity
<
1.0f
)
&&
!
isUndecorated
())
{
throw
new
IllegalComponentStateException
(
"The frame is decorated"
);
}
super
.
setOpacity
(
opacity
);
}
}
/**
* {@inheritDoc}
*/
@Override
public
void
setShape
(
Shape
shape
)
{
synchronized
(
getTreeLock
())
{
if
((
shape
!=
null
)
&&
!
isUndecorated
())
{
throw
new
IllegalComponentStateException
(
"The frame is decorated"
);
}
super
.
setShape
(
shape
);
}
}
/**
* {@inheritDoc}
*/
@Override
public
void
setBackground
(
Color
bgColor
)
{
synchronized
(
getTreeLock
())
{
if
((
bgColor
!=
null
)
&&
(
bgColor
.
getAlpha
()
<
255
)
&&
!
isUndecorated
())
{
throw
new
IllegalComponentStateException
(
"The frame is decorated"
);
}
super
.
setBackground
(
bgColor
);
}
}
/**
* Removes the specified menu bar from this frame.
* @param m the menu component to remove.
...
...
src/share/classes/java/awt/Window.java
浏览文件 @
4e203d7a
...
...
@@ -3474,14 +3474,20 @@ public class Window extends Container implements Accessible {
* level of 0 may or may not disable the mouse event handling on this
* window. This is a platform-dependent behavior.
* <p>
* In order for this method to enable the translucency effect, the {@link
* GraphicsDevice#isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)} method must indicate that
* the {@link GraphicsDevice.WindowTranslucency#TRANSLUCENT TRANSLUCENT}
* translucency is supported.
* The following conditions must be met in order to set the opacity value
* less than {@code 1.0f}:
* <ul>
* <li>The {@link GraphicsDevice.WindowTranslucency#TRANSLUCENT TRANSLUCENT}
* translucency must be supported by the underlying system
* <li>The window must be undecorated (see {@link Frame#setUndecorated}
* and {@link Dialog#setUndecorated})
* <li>The window must not be in full-screen mode (see {@link
* GraphicsDevice#setFullScreenWindow(Window)})
* </ul>
* <p>
*
Also note that the window must not be in the full-screen mode when
*
setting the opacity value < 1.0f. Otherwise the {@code
*
IllegalComponentStateException} is
thrown.
*
If the requested opacity value is less than {@code 1.0f}, and any of the
*
above conditions are not met, the window opacity will not change,
*
and the {@code IllegalComponentStateException} will be
thrown.
* <p>
* The translucency levels of individual pixels may also be effected by the
* alpha component of their color (see {@link Window#setBackground(Color)}) and the
...
...
@@ -3491,15 +3497,20 @@ public class Window extends Container implements Accessible {
*
* @throws IllegalArgumentException if the opacity is out of the range
* [0..1]
* @throws IllegalComponentStateException if the window is decorated and
* the opacity is less than {@code 1.0f}
* @throws IllegalComponentStateException if the window is in full screen
* mode, and the opacity is less than
1.0f
* mode, and the opacity is less than
{@code 1.0f}
* @throws UnsupportedOperationException if the {@code
* GraphicsDevice.WindowTranslucency#TRANSLUCENT TRANSLUCENT}
* translucency kind is not supported and the opacity is less than 1.0f
* translucency is not supported and the opacity is less than
* {@code 1.0f}
*
* @see Window#getOpacity
* @see Window#setBackground(Color)
* @see Window#setShape(Shape)
* @see Frame#isUndecorated
* @see Dialog#isUndecorated
* @see GraphicsDevice.WindowTranslucency
* @see GraphicsDevice#isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
*
...
...
@@ -3557,24 +3568,26 @@ public class Window extends Container implements Accessible {
/**
* Sets the shape of the window.
* <p>
* Setting a shape enables cutting off some parts of the window, leaving
* visible and clickable only those parts belonging to the given shape
* (see {@link Shape}). If the shape argument is null, this methods
* restores the default shape (making the window rectangular on most
* platforms.)
* Setting a shape cuts off some parts of the window. Only the parts that
* belong to the given {@link Shape} remain visible and clickable. If
* the shape argument is {@code null}, this method restores the default
* shape, making the window rectangular on most platforms.
* <p>
* The following conditions must be met
in order
to set a non-null shape:
* The following conditions must be met to set a non-null shape:
* <ul>
* <li>The {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSPARENT
* PERPIXEL_TRANSPARENT} translucency
kind
must be supported by the
* PERPIXEL_TRANSPARENT} translucency must be supported by the
* underlying system
* <i>and</i>
* <li>The window must not be in the full-screen mode (see
* {@link GraphicsDevice#setFullScreenWindow(Window)})
* <li>The window must be undecorated (see {@link Frame#setUndecorated}
* and {@link Dialog#setUndecorated})
* <li>The window must not be in full-screen mode (see {@link
* GraphicsDevice#setFullScreenWindow(Window)})
* </ul>
* If a certain condition is not met, either the {@code
* UnsupportedOperationException} or {@code IllegalComponentStateException}
* is thrown.
* <p>
* If the requested shape is not {@code null}, and any of the above
* conditions are not met, the shape of this window will not change,
* and either the {@code UnsupportedOperationException} or {@code
* IllegalComponentStateException} will be thrown.
* <p>
* The tranlucency levels of individual pixels may also be effected by the
* alpha component of their color (see {@link Window#setBackground(Color)}) and the
...
...
@@ -3584,6 +3597,8 @@ public class Window extends Container implements Accessible {
* @param shape the shape to set to the window
*
* @throws IllegalComponentStateException if the shape is not {@code
* null} and the window is decorated
* @throws IllegalComponentStateException if the shape is not {@code
* null} and the window is in full-screen mode
* @throws UnsupportedOperationException if the shape is not {@code
* null} and {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSPARENT
...
...
@@ -3592,6 +3607,8 @@ public class Window extends Container implements Accessible {
* @see Window#getShape()
* @see Window#setBackground(Color)
* @see Window#setOpacity(float)
* @see Frame#isUndecorated
* @see Dialog#isUndecorated
* @see GraphicsDevice.WindowTranslucency
* @see GraphicsDevice#isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
*
...
...
@@ -3645,37 +3662,46 @@ public class Window extends Container implements Accessible {
* GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT PERPIXEL_TRANSLUCENT}
* tranclucency, the alpha component of the given background color
* may effect the mode of operation for this window: it indicates whether
* this window must be opaque (alpha == 1.0f) or per-pixel translucent
* (alpha < 1.0f). All the following conditions must be met in order
* to be able to enable the per-pixel transparency mode for this window:
* this window must be opaque (alpha equals {@code 1.0f}) or per-pixel translucent
* (alpha is less than {@code 1.0f}). If the given background color is
* {@code null}, the window is considered completely opaque.
* <p>
* All the following conditions must be met to enable the per-pixel
* transparency mode for this window:
* <ul>
* <li>The {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
* PERPIXEL_TRANSLUCENT} translucency must be supported
* by the graphics device where this window is located <i>and</i>
* <li>The window must not be in the full-screen mode (see {@link
* PERPIXEL_TRANSLUCENT} translucency must be supported by the graphics
* device where this window is located
* <li>The window must be undecorated (see {@link Frame#setUndecorated}
* and {@link Dialog#setUndecorated})
* <li>The window must not be in full-screen mode (see {@link
* GraphicsDevice#setFullScreenWindow(Window)})
* </ul>
* If a certain condition is not met at the time of calling this method,
* the alpha component of the given background color will not effect the
* mode of operation for this window.
* <p>
* If the alpha component of the requested background color is less than
* {@code 1.0f}, and any of the above conditions are not met, the background
* color of this window will not change, the alpha component of the given
* background color will not affect the mode of operation for this window,
* and either the {@code UnsupportedOperationException} or {@code
* IllegalComponentStateException} will be thrown.
* <p>
* When the window is per-pixel translucent, the drawing sub-system
* respects the alpha value of each individual pixel. If a pixel gets
* painted with the alpha color component equal to zero, it becomes
* visually transparent
, i
f the alpha of the pixel is equal to 1.0f, the
* visually transparent
. I
f the alpha of the pixel is equal to 1.0f, the
* pixel is fully opaque. Interim values of the alpha color component make
* the pixel semi-transparent. In this mode the background of the window
* gets painted with the alpha value of the given background color
(meaning
*
that it is not painted at all if the alpha value of the argument of this
*
method is equal to zero.)
* the pixel semi-transparent. In this mode
,
the background of the window
* gets painted with the alpha value of the given background color
. If the
*
alpha value of the argument of this method is equal to {@code 0}, the
*
background is not painted at all.
* <p>
* The actual level of translucency of a given pixel also depends on window
* opacity (see {@link #setOpacity(float)}), as well as the current shape of
* this window (see {@link #setShape(Shape)}).
* <p>
* Note that painting a pixel with the alpha value of
0 may or may not
* disable the mouse event handling on this pixel. This is a
* platform-dependent behavior. To make sure the mouse
click
s do not get
* Note that painting a pixel with the alpha value of
{@code 0} may or may
*
not
disable the mouse event handling on this pixel. This is a
* platform-dependent behavior. To make sure the mouse
event
s do not get
* dispatched to a particular pixel, the pixel must be excluded from the
* shape of the window.
* <p>
...
...
@@ -3685,17 +3711,21 @@ public class Window extends Container implements Accessible {
* @param bgColor the color to become this window's background color.
*
* @throws IllegalComponentStateException if the alpha value of the given
* background color is less than 1.0f and the window is in
* background color is less than {@code 1.0f} and the window is decorated
* @throws IllegalComponentStateException if the alpha value of the given
* background color is less than {@code 1.0f} and the window is in
* full-screen mode
* @throws UnsupportedOperationException if the alpha value of the given
* background color is less than
1.0f and
*
{@link
GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
* background color is less than
{@code 1.0f} and {@link
* GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
* PERPIXEL_TRANSLUCENT} translucency is not supported
*
* @see Window#getBackground
* @see Window#isOpaque
* @see Window#setOpacity(float)
* @see Window#setShape(Shape)
* @see Frame#isUndecorated
* @see Dialog#isUndecorated
* @see GraphicsDevice.WindowTranslucency
* @see GraphicsDevice#isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
* @see GraphicsConfiguration#isTranslucencyCapable()
...
...
@@ -3739,7 +3769,7 @@ public class Window extends Container implements Accessible {
* <p>
* The method returns {@code false} if the background color of the window
* is not {@code null} and the alpha component of the color is less than
*
1.0f
. The method returns {@code true} otherwise.
*
{@code 1.0f}
. The method returns {@code true} otherwise.
*
* @return {@code true} if the window is opaque, {@code false} otherwise
*
...
...
src/share/classes/java/awt/font/NumericShaper.java
浏览文件 @
4e203d7a
/*
* Copyright (c) 2000, 20
09
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 20
10
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -262,7 +262,23 @@ public final class NumericShaper implements java.io.Serializable {
/**
* The Cham range with the Cham digits.
*/
CHAM
(
'\uaa50'
,
'\uaa00'
,
'\uaa60'
);
CHAM
(
'\uaa50'
,
'\uaa00'
,
'\uaa60'
),
/**
* The Tai Tham Hora range with the Tai Tham Hora digits.
*/
TAI_THAM_HORA
(
'\u1a80'
,
'\u1a20'
,
'\u1ab0'
),
/**
* The Tai Tham Tham range with the Tai Tham Tham digits.
*/
TAI_THAM_THAM
(
'\u1a90'
,
'\u1a20'
,
'\u1ab0'
),
/**
* The Javanese range with the Javanese digits.
*/
JAVANESE
(
'\ua9d0'
,
'\ua980'
,
'\ua9e0'
),
/**
* The Meetei Mayek range with the Meetei Mayek digits.
*/
MEETEI_MAYEK
(
'\uabf0'
,
'\uabc0'
,
'\uac00'
);
private
static
int
toRangeIndex
(
Range
script
)
{
int
index
=
script
.
ordinal
();
...
...
@@ -592,10 +608,16 @@ public final class NumericShaper implements java.io.Serializable {
0x07a6
,
0x07b1
,
0x07eb
,
0x07f4
,
0x07f6
,
0x07fa
,
0x0901
,
0x0903
,
0x0816
,
0x081a
,
0x081b
,
0x0824
,
0x0825
,
0x0828
,
0x0829
,
0x0830
,
0x0859
,
0x085e
,
0x0900
,
0x0903
,
0x093a
,
0x093b
,
0x093c
,
0x093d
,
0x0941
,
0x0949
,
0x094d
,
0x09
50
,
0x094d
,
0x09
4e
,
0x0951
,
0x0958
,
0x0962
,
0x0964
,
0x0981
,
0x0982
,
...
...
@@ -604,7 +626,7 @@ public final class NumericShaper implements java.io.Serializable {
0x09cd
,
0x09ce
,
0x09e2
,
0x09e6
,
0x09f2
,
0x09f4
,
0x0
a01
,
0x0a03
,
0x0
9fb
,
0x0a03
,
0x0a3c
,
0x0a3e
,
0x0a41
,
0x0a59
,
0x0a70
,
0x0a72
,
...
...
@@ -630,9 +652,8 @@ public final class NumericShaper implements java.io.Serializable {
0x0cbc
,
0x0cbd
,
0x0ccc
,
0x0cd5
,
0x0ce2
,
0x0ce6
,
0x0cf1
,
0x0d02
,
0x0d41
,
0x0d46
,
0x0d4d
,
0x0d
57
,
0x0d4d
,
0x0d
4e
,
0x0d62
,
0x0d66
,
0x0dca
,
0x0dcf
,
0x0dd2
,
0x0dd8
,
...
...
@@ -649,7 +670,7 @@ public final class NumericShaper implements java.io.Serializable {
0x0f71
,
0x0f7f
,
0x0f80
,
0x0f85
,
0x0f86
,
0x0f88
,
0x0f
90
,
0x0fbe
,
0x0f
8d
,
0x0fbe
,
0x0fc6
,
0x0fc7
,
0x102d
,
0x1031
,
0x1032
,
0x1038
,
...
...
@@ -661,8 +682,10 @@ public final class NumericShaper implements java.io.Serializable {
0x1082
,
0x1083
,
0x1085
,
0x1087
,
0x108d
,
0x108e
,
0x135f
,
0x1360
,
0x109d
,
0x109e
,
0x135d
,
0x1360
,
0x1390
,
0x13a0
,
0x1400
,
0x1401
,
0x1680
,
0x1681
,
0x169b
,
0x16a0
,
0x1712
,
0x1720
,
...
...
@@ -682,6 +705,11 @@ public final class NumericShaper implements java.io.Serializable {
0x1939
,
0x1946
,
0x19de
,
0x1a00
,
0x1a17
,
0x1a19
,
0x1a56
,
0x1a57
,
0x1a58
,
0x1a61
,
0x1a62
,
0x1a63
,
0x1a65
,
0x1a6d
,
0x1a73
,
0x1a80
,
0x1b00
,
0x1b04
,
0x1b34
,
0x1b35
,
0x1b36
,
0x1b3b
,
...
...
@@ -691,8 +719,16 @@ public final class NumericShaper implements java.io.Serializable {
0x1b80
,
0x1b82
,
0x1ba2
,
0x1ba6
,
0x1ba8
,
0x1baa
,
0x1be6
,
0x1be7
,
0x1be8
,
0x1bea
,
0x1bed
,
0x1bee
,
0x1bef
,
0x1bf2
,
0x1c2c
,
0x1c34
,
0x1c36
,
0x1c3b
,
0x1cd0
,
0x1cd3
,
0x1cd4
,
0x1ce1
,
0x1ce2
,
0x1ce9
,
0x1ced
,
0x1cee
,
0x1dc0
,
0x1e00
,
0x1fbd
,
0x1fbe
,
0x1fbf
,
0x1fc2
,
...
...
@@ -716,14 +752,16 @@ public final class NumericShaper implements java.io.Serializable {
0x213a
,
0x213c
,
0x2140
,
0x2145
,
0x214a
,
0x214e
,
0x215
3
,
0x2160
,
0x21
90
,
0x2336
,
0x215
0
,
0x2160
,
0x21
89
,
0x2336
,
0x237b
,
0x2395
,
0x2396
,
0x249c
,
0x24ea
,
0x26ac
,
0x26ad
,
0x2800
,
0x2900
,
0x2c00
,
0x2ce5
,
0x2d00
,
0x2ce5
,
0x2ceb
,
0x2cef
,
0x2d00
,
0x2d7f
,
0x2d80
,
0x2de0
,
0x3005
,
0x3008
,
0x3021
,
0x302a
,
0x3031
,
...
...
@@ -742,25 +780,40 @@ public final class NumericShaper implements java.io.Serializable {
0x33de
,
0x33e0
,
0x33ff
,
0x3400
,
0x4dc0
,
0x4e00
,
0xa490
,
0xa
50
0
,
0xa490
,
0xa
4d
0
,
0xa60d
,
0xa610
,
0xa66f
,
0xa680
,
0xa6f0
,
0xa6f2
,
0xa700
,
0xa722
,
0xa788
,
0xa789
,
0xa802
,
0xa803
,
0xa806
,
0xa807
,
0xa80b
,
0xa80c
,
0xa825
,
0xa827
,
0xa828
,
0xa840
,
0xa828
,
0xa830
,
0xa838
,
0xa840
,
0xa874
,
0xa880
,
0xa8c4
,
0xa8ce
,
0xa8e0
,
0xa8f2
,
0xa926
,
0xa92e
,
0xa947
,
0xa952
,
0xa980
,
0xa983
,
0xa9b3
,
0xa9b4
,
0xa9b6
,
0xa9ba
,
0xa9bc
,
0xa9bd
,
0xaa29
,
0xaa2f
,
0xaa31
,
0xaa33
,
0xaa35
,
0xaa40
,
0xaa43
,
0xaa44
,
0xaa4c
,
0xaa4d
,
0xaab0
,
0xaab1
,
0xaab2
,
0xaab5
,
0xaab7
,
0xaab9
,
0xaabe
,
0xaac0
,
0xaac1
,
0xaac2
,
0xabe5
,
0xabe6
,
0xabe8
,
0xabe9
,
0xabed
,
0xabf0
,
0xfb1e
,
0xfb1f
,
0xfb29
,
0xfb2a
,
0xfd3e
,
0xfd50
,
...
...
@@ -775,12 +828,28 @@ public final class NumericShaper implements java.io.Serializable {
0x1091f
,
0x10920
,
0x10a01
,
0x10a10
,
0x10a38
,
0x10a40
,
0x10b39
,
0x10b40
,
0x10e60
,
0x11000
,
0x11001
,
0x11002
,
0x11038
,
0x11047
,
0x11052
,
0x11066
,
0x11080
,
0x11082
,
0x110b3
,
0x110b7
,
0x110b9
,
0x110bb
,
0x1d167
,
0x1d16a
,
0x1d173
,
0x1d183
,
0x1d185
,
0x1d18c
,
0x1d1aa
,
0x1d1ae
,
0x1d200
,
0x1d360
,
0x1d7ce
,
0x20000
,
0x1d6db
,
0x1d6dc
,
0x1d715
,
0x1d716
,
0x1d74f
,
0x1d750
,
0x1d789
,
0x1d78a
,
0x1d7c3
,
0x1d7c4
,
0x1d7ce
,
0x1f110
,
0x1f300
,
0x1f48c
,
0x1f48d
,
0x1f524
,
0x1f525
,
0x20000
,
0xe0001
,
0xf0000
,
0x10fffe
,
0x10ffff
// sentinel
};
...
...
@@ -947,6 +1016,14 @@ public final class NumericShaper implements java.io.Serializable {
&&
rangeSet
.
contains
(
Range
.
ARABIC
))
{
rangeSet
.
remove
(
Range
.
ARABIC
);
}
// As well as the above case, give precedance to TAI_THAM_THAM if both
// TAI_THAM_HORA and TAI_THAM_THAM are specified.
if
(
rangeSet
.
contains
(
Range
.
TAI_THAM_THAM
)
&&
rangeSet
.
contains
(
Range
.
TAI_THAM_HORA
))
{
rangeSet
.
remove
(
Range
.
TAI_THAM_HORA
);
}
rangeArray
=
rangeSet
.
toArray
(
new
Range
[
rangeSet
.
size
()]);
if
(
rangeArray
.
length
>
BSEARCH_THRESHOLD
)
{
// sort rangeArray for binary search
...
...
src/share/classes/java/beans/Introspector.java
浏览文件 @
4e203d7a
...
...
@@ -29,6 +29,8 @@ import com.sun.beans.WeakCache;
import
com.sun.beans.finder.BeanInfoFinder
;
import
com.sun.beans.finder.ClassFinder
;
import
java.awt.Component
;
import
java.lang.ref.Reference
;
import
java.lang.ref.SoftReference
;
import
java.lang.reflect.Method
;
...
...
@@ -39,6 +41,7 @@ import java.util.ArrayList;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.EventListener
;
import
java.util.EventObject
;
import
java.util.List
;
import
java.util.TreeMap
;
import
java.util.WeakHashMap
;
...
...
@@ -1234,7 +1237,23 @@ public class Introspector {
}
}
// OK, fabricate a default BeanDescriptor.
return
(
new
BeanDescriptor
(
beanClass
));
return
new
BeanDescriptor
(
this
.
beanClass
,
findCustomizerClass
(
this
.
beanClass
));
}
private
static
Class
<?>
findCustomizerClass
(
Class
<?>
type
)
{
String
name
=
type
.
getName
()
+
"Customizer"
;
try
{
type
=
ClassFinder
.
findClass
(
name
,
type
.
getClassLoader
());
// Each customizer should inherit java.awt.Component and implement java.beans.Customizer
// according to the section 9.3 of JavaBeans specification
if
(
Component
.
class
.
isAssignableFrom
(
type
)
&&
Customizer
.
class
.
isAssignableFrom
(
type
))
{
return
type
;
}
}
catch
(
Exception
exception
)
{
// ignore any exceptions
}
return
null
;
}
private
boolean
isEventHandler
(
Method
m
)
{
...
...
@@ -1244,10 +1263,7 @@ public class Introspector {
if
(
argTypes
.
length
!=
1
)
{
return
false
;
}
if
(
isSubclass
(
argTypes
[
0
],
java
.
util
.
EventObject
.
class
))
{
return
true
;
}
return
false
;
return
isSubclass
(
argTypes
[
0
],
EventObject
.
class
);
}
/*
...
...
src/share/classes/java/io/BufferedInputStream.java
浏览文件 @
4e203d7a
...
...
@@ -395,7 +395,11 @@ class BufferedInputStream extends FilterInputStream {
* or an I/O error occurs.
*/
public
synchronized
int
available
()
throws
IOException
{
return
getInIfOpen
().
available
()
+
(
count
-
pos
);
int
n
=
count
-
pos
;
int
avail
=
getInIfOpen
().
available
();
return
n
>
(
Integer
.
MAX_VALUE
-
avail
)
?
Integer
.
MAX_VALUE
:
n
+
avail
;
}
/**
...
...
src/share/classes/java/io/PushbackInputStream.java
浏览文件 @
4e203d7a
...
...
@@ -273,7 +273,11 @@ class PushbackInputStream extends FilterInputStream {
*/
public
int
available
()
throws
IOException
{
ensureOpen
();
return
(
buf
.
length
-
pos
)
+
super
.
available
();
int
n
=
buf
.
length
-
pos
;
int
avail
=
super
.
available
();
return
n
>
(
Integer
.
MAX_VALUE
-
avail
)
?
Integer
.
MAX_VALUE
:
n
+
avail
;
}
/**
...
...
src/share/classes/java/lang/Character.java
浏览文件 @
4e203d7a
/*
* Copyright (c) 2002, 20
09
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 20
10
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -40,7 +40,7 @@ import java.util.Locale;
* a character's category (lowercase letter, digit, etc.) and for converting
* characters from uppercase to lowercase and vice versa.
* <p>
* Character information is based on the Unicode Standard, version
5.1
.0.
* Character information is based on the Unicode Standard, version
6.0
.0.
* <p>
* The methods and data of class <code>Character</code> are defined by
* the information in the <i>UnicodeData</i> file that is part of the
...
...
@@ -910,7 +910,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"GENERALPUNCTUATION"
);
/**
* Constant for the "Superscripts and Subscripts" Unicode character block.
* Constant for the "Superscripts and Subscripts" Unicode character
* block.
* @since 1.2
*/
public
static
final
UnicodeBlock
SUPERSCRIPTS_AND_SUBSCRIPTS
=
...
...
@@ -928,7 +929,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"CURRENCYSYMBOLS"
);
/**
* Constant for the "Combining Diacritical Marks for Symbols" Unicode character block.
* Constant for the "Combining Diacritical Marks for Symbols" Unicode
* character block.
* <p>
* This block was previously known as "Combining Marks for Symbols".
* @since 1.2
...
...
@@ -1145,7 +1147,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"PRIVATEUSEAREA"
);
/**
* Constant for the "CJK Compatibility Ideographs" Unicode character block.
* Constant for the "CJK Compatibility Ideographs" Unicode character
* block.
* @since 1.2
*/
public
static
final
UnicodeBlock
CJK_COMPATIBILITY_IDEOGRAPHS
=
...
...
@@ -1163,7 +1166,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"ALPHABETICPRESENTATIONFORMS"
);
/**
* Constant for the "Arabic Presentation Forms-A" Unicode character block.
* Constant for the "Arabic Presentation Forms-A" Unicode character
* block.
* @since 1.2
*/
public
static
final
UnicodeBlock
ARABIC_PRESENTATION_FORMS_A
=
...
...
@@ -1208,7 +1212,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"ARABICPRESENTATIONFORMS-B"
);
/**
* Constant for the "Halfwidth and Fullwidth Forms" Unicode character block.
* Constant for the "Halfwidth and Fullwidth Forms" Unicode character
* block.
* @since 1.2
*/
public
static
final
UnicodeBlock
HALFWIDTH_AND_FULLWIDTH_FORMS
=
...
...
@@ -1386,7 +1391,6 @@ class Character implements java.io.Serializable, Comparable<Character> {
"YI RADICALS"
,
"YIRADICALS"
);
/**
* Constant for the "Cyrillic Supplementary" Unicode character block.
* @since 1.5
...
...
@@ -1488,7 +1492,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"SUPPLEMENTALARROWS-B"
);
/**
* Constant for the "Miscellaneous Mathematical Symbols-B" Unicode character block.
* Constant for the "Miscellaneous Mathematical Symbols-B" Unicode
* character block.
* @since 1.5
*/
public
static
final
UnicodeBlock
MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B
=
...
...
@@ -1497,7 +1502,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"MISCELLANEOUSMATHEMATICALSYMBOLS-B"
);
/**
* Constant for the "Supplemental Mathematical Operators" Unicode character block.
* Constant for the "Supplemental Mathematical Operators" Unicode
* character block.
* @since 1.5
*/
public
static
final
UnicodeBlock
SUPPLEMENTAL_MATHEMATICAL_OPERATORS
=
...
...
@@ -1506,7 +1512,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"SUPPLEMENTALMATHEMATICALOPERATORS"
);
/**
* Constant for the "Miscellaneous Symbols and Arrows" Unicode character block.
* Constant for the "Miscellaneous Symbols and Arrows" Unicode character
* block.
* @since 1.5
*/
public
static
final
UnicodeBlock
MISCELLANEOUS_SYMBOLS_AND_ARROWS
=
...
...
@@ -1515,7 +1522,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"MISCELLANEOUSSYMBOLSANDARROWS"
);
/**
* Constant for the "Katakana Phonetic Extensions" Unicode character block.
* Constant for the "Katakana Phonetic Extensions" Unicode character
* block.
* @since 1.5
*/
public
static
final
UnicodeBlock
KATAKANA_PHONETIC_EXTENSIONS
=
...
...
@@ -1649,7 +1657,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"TAIXUANJINGSYMBOLS"
);
/**
* Constant for the "Mathematical Alphanumeric Symbols" Unicode character block.
* Constant for the "Mathematical Alphanumeric Symbols" Unicode
* character block.
* @since 1.5
*/
public
static
final
UnicodeBlock
MATHEMATICAL_ALPHANUMERIC_SYMBOLS
=
...
...
@@ -1658,7 +1667,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"MATHEMATICALALPHANUMERICSYMBOLS"
);
/**
* Constant for the "CJK Unified Ideographs Extension B" Unicode character block.
* Constant for the "CJK Unified Ideographs Extension B" Unicode
* character block.
* @since 1.5
*/
public
static
final
UnicodeBlock
CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
=
...
...
@@ -1683,7 +1693,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
new
UnicodeBlock
(
"TAGS"
);
/**
* Constant for the "Variation Selectors Supplement" Unicode character block.
* Constant for the "Variation Selectors Supplement" Unicode character
* block.
* @since 1.5
*/
public
static
final
UnicodeBlock
VARIATION_SELECTORS_SUPPLEMENT
=
...
...
@@ -1692,7 +1703,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"VARIATIONSELECTORSSUPPLEMENT"
);
/**
* Constant for the "Supplementary Private Use Area-A" Unicode character block.
* Constant for the "Supplementary Private Use Area-A" Unicode character
* block.
* @since 1.5
*/
public
static
final
UnicodeBlock
SUPPLEMENTARY_PRIVATE_USE_AREA_A
=
...
...
@@ -1701,7 +1713,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
"SUPPLEMENTARYPRIVATEUSEAREA-A"
);
/**
* Constant for the "Supplementary Private Use Area-B" Unicode character block.
* Constant for the "Supplementary Private Use Area-B" Unicode character
* block.
* @since 1.5
*/
public
static
final
UnicodeBlock
SUPPLEMENTARY_PRIVATE_USE_AREA_B
=
...
...
@@ -1722,9 +1735,10 @@ class Character implements java.io.Serializable, Comparable<Character> {
"HIGHSURROGATES"
);
/**
* Constant for the "High Private Use Surrogates" Unicode character block.
* This block represents codepoint values in the private use high surrogate
* range: U+DB80 through U+DBFF
* Constant for the "High Private Use Surrogates" Unicode character
* block.
* This block represents codepoint values in the private use high
* surrogate range: U+DB80 through U+DBFF
*
* @since 1.5
*/
...
...
@@ -1761,6 +1775,20 @@ class Character implements java.io.Serializable, Comparable<Character> {
public
static
final
UnicodeBlock
NKO
=
new
UnicodeBlock
(
"NKO"
);
/**
* Constant for the "Samaritan" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
SAMARITAN
=
new
UnicodeBlock
(
"SAMARITAN"
);
/**
* Constant for the "Mandaic" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
MANDAIC
=
new
UnicodeBlock
(
"MANDAIC"
);
/**
* Constant for the "Ethiopic Supplement" Unicode character block.
* @since 1.7
...
...
@@ -1770,6 +1798,16 @@ class Character implements java.io.Serializable, Comparable<Character> {
"ETHIOPIC SUPPLEMENT"
,
"ETHIOPICSUPPLEMENT"
);
/**
* Constant for the "Unified Canadian Aboriginal Syllabics Extended"
* Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED
=
new
UnicodeBlock
(
"UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED"
,
"UNIFIED CANADIAN ABORIGINAL SYLLABICS EXTENDED"
,
"UNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED"
);
/**
* Constant for the "New Tai Lue" Unicode character block.
* @since 1.7
...
...
@@ -1786,6 +1824,15 @@ class Character implements java.io.Serializable, Comparable<Character> {
public
static
final
UnicodeBlock
BUGINESE
=
new
UnicodeBlock
(
"BUGINESE"
);
/**
* Constant for the "Tai Tham" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
TAI_THAM
=
new
UnicodeBlock
(
"TAI_THAM"
,
"TAI THAM"
,
"TAITHAM"
);
/**
* Constant for the "Balinese" Unicode character block.
* @since 1.7
...
...
@@ -1800,6 +1847,13 @@ class Character implements java.io.Serializable, Comparable<Character> {
public
static
final
UnicodeBlock
SUNDANESE
=
new
UnicodeBlock
(
"SUNDANESE"
);
/**
* Constant for the "Batak" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
BATAK
=
new
UnicodeBlock
(
"BATAK"
);
/**
* Constant for the "Lepcha" Unicode character block.
* @since 1.7
...
...
@@ -1816,6 +1870,15 @@ class Character implements java.io.Serializable, Comparable<Character> {
"OL CHIKI"
,
"OLCHIKI"
);
/**
* Constant for the "Vedic Extensions" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
VEDIC_EXTENSIONS
=
new
UnicodeBlock
(
"VEDIC_EXTENSIONS"
,
"VEDIC EXTENSIONS"
,
"VEDICEXTENSIONS"
);
/**
* Constant for the "Phonetic Extensions Supplement" Unicode character
* block.
...
...
@@ -1911,6 +1974,13 @@ class Character implements java.io.Serializable, Comparable<Character> {
"CJK STROKES"
,
"CJKSTROKES"
);
/**
* Constant for the "Lisu" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
LISU
=
new
UnicodeBlock
(
"LISU"
);
/**
* Constant for the "Vai" Unicode character block.
* @since 1.7
...
...
@@ -1927,6 +1997,13 @@ class Character implements java.io.Serializable, Comparable<Character> {
"CYRILLIC EXTENDED-B"
,
"CYRILLICEXTENDED-B"
);
/**
* Constant for the "Bamum" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
BAMUM
=
new
UnicodeBlock
(
"BAMUM"
);
/**
* Constant for the "Modifier Tone Letters" Unicode character block.
* @since 1.7
...
...
@@ -1954,6 +2031,15 @@ class Character implements java.io.Serializable, Comparable<Character> {
"SYLOTI NAGRI"
,
"SYLOTINAGRI"
);
/**
* Constant for the "Common Indic Number Forms" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
COMMON_INDIC_NUMBER_FORMS
=
new
UnicodeBlock
(
"COMMON_INDIC_NUMBER_FORMS"
,
"COMMON INDIC NUMBER FORMS"
,
"COMMONINDICNUMBERFORMS"
);
/**
* Constant for the "Phags-pa" Unicode character block.
* @since 1.7
...
...
@@ -1969,6 +2055,15 @@ class Character implements java.io.Serializable, Comparable<Character> {
public
static
final
UnicodeBlock
SAURASHTRA
=
new
UnicodeBlock
(
"SAURASHTRA"
);
/**
* Constant for the "Devanagari Extended" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
DEVANAGARI_EXTENDED
=
new
UnicodeBlock
(
"DEVANAGARI_EXTENDED"
,
"DEVANAGARI EXTENDED"
,
"DEVANAGARIEXTENDED"
);
/**
* Constant for the "Kayah Li" Unicode character block.
* @since 1.7
...
...
@@ -1985,6 +2080,22 @@ class Character implements java.io.Serializable, Comparable<Character> {
public
static
final
UnicodeBlock
REJANG
=
new
UnicodeBlock
(
"REJANG"
);
/**
* Constant for the "Hangul Jamo Extended-A" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
HANGUL_JAMO_EXTENDED_A
=
new
UnicodeBlock
(
"HANGUL_JAMO_EXTENDED_A"
,
"HANGUL JAMO EXTENDED-A"
,
"HANGULJAMOEXTENDED-A"
);
/**
* Constant for the "Javanese" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
JAVANESE
=
new
UnicodeBlock
(
"JAVANESE"
);
/**
* Constant for the "Cham" Unicode character block.
* @since 1.7
...
...
@@ -1992,6 +2103,51 @@ class Character implements java.io.Serializable, Comparable<Character> {
public
static
final
UnicodeBlock
CHAM
=
new
UnicodeBlock
(
"CHAM"
);
/**
* Constant for the "Myanmar Extended-A" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
MYANMAR_EXTENDED_A
=
new
UnicodeBlock
(
"MYANMAR_EXTENDED_A"
,
"MYANMAR EXTENDED-A"
,
"MYANMAREXTENDED-A"
);
/**
* Constant for the "Tai Viet" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
TAI_VIET
=
new
UnicodeBlock
(
"TAI_VIET"
,
"TAI VIET"
,
"TAIVIET"
);
/**
* Constant for the "Ethiopic Extended-A" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
ETHIOPIC_EXTENDED_A
=
new
UnicodeBlock
(
"ETHIOPIC_EXTENDED_A"
,
"ETHIOPIC EXTENDED-A"
,
"ETHIOPICEXTENDED-A"
);
/**
* Constant for the "Meetei Mayek" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
MEETEI_MAYEK
=
new
UnicodeBlock
(
"MEETEI_MAYEK"
,
"MEETEI MAYEK"
,
"MEETEIMAYEK"
);
/**
* Constant for the "Hangul Jamo Extended-B" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
HANGUL_JAMO_EXTENDED_B
=
new
UnicodeBlock
(
"HANGUL_JAMO_EXTENDED_B"
,
"HANGUL JAMO EXTENDED-B"
,
"HANGULJAMOEXTENDED-B"
);
/**
* Constant for the "Vertical Forms" Unicode character block.
* @since 1.7
...
...
@@ -2051,6 +2207,15 @@ class Character implements java.io.Serializable, Comparable<Character> {
"OLD PERSIAN"
,
"OLDPERSIAN"
);
/**
* Constant for the "Imperial Aramaic" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
IMPERIAL_ARAMAIC
=
new
UnicodeBlock
(
"IMPERIAL_ARAMAIC"
,
"IMPERIAL ARAMAIC"
,
"IMPERIALARAMAIC"
);
/**
* Constant for the "Phoenician" Unicode character block.
* @since 1.7
...
...
@@ -2072,6 +2237,72 @@ class Character implements java.io.Serializable, Comparable<Character> {
public
static
final
UnicodeBlock
KHAROSHTHI
=
new
UnicodeBlock
(
"KHAROSHTHI"
);
/**
* Constant for the "Old South Arabian" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
OLD_SOUTH_ARABIAN
=
new
UnicodeBlock
(
"OLD_SOUTH_ARABIAN"
,
"OLD SOUTH ARABIAN"
,
"OLDSOUTHARABIAN"
);
/**
* Constant for the "Avestan" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
AVESTAN
=
new
UnicodeBlock
(
"AVESTAN"
);
/**
* Constant for the "Inscriptional Parthian" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
INSCRIPTIONAL_PARTHIAN
=
new
UnicodeBlock
(
"INSCRIPTIONAL_PARTHIAN"
,
"INSCRIPTIONAL PARTHIAN"
,
"INSCRIPTIONALPARTHIAN"
);
/**
* Constant for the "Inscriptional Pahlavi" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
INSCRIPTIONAL_PAHLAVI
=
new
UnicodeBlock
(
"INSCRIPTIONAL_PAHLAVI"
,
"INSCRIPTIONAL PAHLAVI"
,
"INSCRIPTIONALPAHLAVI"
);
/**
* Constant for the "Old Turkic" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
OLD_TURKIC
=
new
UnicodeBlock
(
"OLD_TURKIC"
,
"OLD TURKIC"
,
"OLDTURKIC"
);
/**
* Constant for the "Rumi Numeral Symbols" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
RUMI_NUMERAL_SYMBOLS
=
new
UnicodeBlock
(
"RUMI_NUMERAL_SYMBOLS"
,
"RUMI NUMERAL SYMBOLS"
,
"RUMINUMERALSYMBOLS"
);
/**
* Constant for the "Brahmi" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
BRAHMI
=
new
UnicodeBlock
(
"BRAHMI"
);
/**
* Constant for the "Kaithi" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
KAITHI
=
new
UnicodeBlock
(
"KAITHI"
);
/**
* Constant for the "Cuneiform" Unicode character block.
* @since 1.7
...
...
@@ -2089,6 +2320,33 @@ class Character implements java.io.Serializable, Comparable<Character> {
"CUNEIFORM NUMBERS AND PUNCTUATION"
,
"CUNEIFORMNUMBERSANDPUNCTUATION"
);
/**
* Constant for the "Egyptian Hieroglyphs" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
EGYPTIAN_HIEROGLYPHS
=
new
UnicodeBlock
(
"EGYPTIAN_HIEROGLYPHS"
,
"EGYPTIAN HIEROGLYPHS"
,
"EGYPTIANHIEROGLYPHS"
);
/**
* Constant for the "Bamum Supplement" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
BAMUM_SUPPLEMENT
=
new
UnicodeBlock
(
"BAMUM_SUPPLEMENT"
,
"BAMUM SUPPLEMENT"
,
"BAMUMSUPPLEMENT"
);
/**
* Constant for the "Kana Supplement" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
KANA_SUPPLEMENT
=
new
UnicodeBlock
(
"KANA_SUPPLEMENT"
,
"KANA SUPPLEMENT"
,
"KANASUPPLEMENT"
);
/**
* Constant for the "Ancient Greek Musical Notation" Unicode character
* block.
...
...
@@ -2126,6 +2384,90 @@ class Character implements java.io.Serializable, Comparable<Character> {
"DOMINO TILES"
,
"DOMINOTILES"
);
/**
* Constant for the "Playing Cards" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
PLAYING_CARDS
=
new
UnicodeBlock
(
"PLAYING_CARDS"
,
"PLAYING CARDS"
,
"PLAYINGCARDS"
);
/**
* Constant for the "Enclosed Alphanumeric Supplement" Unicode character
* block.
* @since 1.7
*/
public
static
final
UnicodeBlock
ENCLOSED_ALPHANUMERIC_SUPPLEMENT
=
new
UnicodeBlock
(
"ENCLOSED_ALPHANUMERIC_SUPPLEMENT"
,
"ENCLOSED ALPHANUMERIC SUPPLEMENT"
,
"ENCLOSEDALPHANUMERICSUPPLEMENT"
);
/**
* Constant for the "Enclosed Ideographic Supplement" Unicode character
* block.
* @since 1.7
*/
public
static
final
UnicodeBlock
ENCLOSED_IDEOGRAPHIC_SUPPLEMENT
=
new
UnicodeBlock
(
"ENCLOSED_IDEOGRAPHIC_SUPPLEMENT"
,
"ENCLOSED IDEOGRAPHIC SUPPLEMENT"
,
"ENCLOSEDIDEOGRAPHICSUPPLEMENT"
);
/**
* Constant for the "Miscellaneous Symbols And Pictographs" Unicode
* character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS
=
new
UnicodeBlock
(
"MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS"
,
"MISCELLANEOUS SYMBOLS AND PICTOGRAPHS"
,
"MISCELLANEOUSSYMBOLSANDPICTOGRAPHS"
);
/**
* Constant for the "Emoticons" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
EMOTICONS
=
new
UnicodeBlock
(
"EMOTICONS"
);
/**
* Constant for the "Transport And Map Symbols" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
TRANSPORT_AND_MAP_SYMBOLS
=
new
UnicodeBlock
(
"TRANSPORT_AND_MAP_SYMBOLS"
,
"TRANSPORT AND MAP SYMBOLS"
,
"TRANSPORTANDMAPSYMBOLS"
);
/**
* Constant for the "Alchemical Symbols" Unicode character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
ALCHEMICAL_SYMBOLS
=
new
UnicodeBlock
(
"ALCHEMICAL_SYMBOLS"
,
"ALCHEMICAL SYMBOLS"
,
"ALCHEMICALSYMBOLS"
);
/**
* Constant for the "CJK Unified Ideographs Extension C" Unicode
* character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C
=
new
UnicodeBlock
(
"CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C"
,
"CJK UNIFIED IDEOGRAPHS EXTENSION C"
,
"CJKUNIFIEDIDEOGRAPHSEXTENSIONC"
);
/**
* Constant for the "CJK Unified Ideographs Extension D" Unicode
* character block.
* @since 1.7
*/
public
static
final
UnicodeBlock
CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D
=
new
UnicodeBlock
(
"CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D"
,
"CJK UNIFIED IDEOGRAPHS EXTENSION D"
,
"CJKUNIFIEDIDEOGRAPHSEXTENSIOND"
);
private
static
final
int
blockStarts
[]
=
{
0x0000
,
// 0000..007F; Basic Latin
0x0080
,
// 0080..00FF; Latin-1 Supplement
...
...
@@ -2144,7 +2486,9 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x0750
,
// 0750..077F; Arabic Supplement
0x0780
,
// 0780..07BF; Thaana
0x07C0
,
// 07C0..07FF; NKo
0x0800
,
// unassigned
0x0800
,
// 0800..083F; Samaritan
0x0840
,
// 0840..085F; Mandaic
0x0860
,
// unassigned
0x0900
,
// 0900..097F; Devanagari
0x0980
,
// 0980..09FF; Bengali
0x0A00
,
// 0A00..0A7F; Gurmukhi
...
...
@@ -2173,19 +2517,21 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x1760
,
// 1760..177F; Tagbanwa
0x1780
,
// 1780..17FF; Khmer
0x1800
,
// 1800..18AF; Mongolian
0x18B0
,
//
unassign
ed
0x18B0
,
//
18B0..18FF; Unified Canadian Aboriginal Syllabics Extend
ed
0x1900
,
// 1900..194F; Limbu
0x1950
,
// 1950..197F; Tai Le
0x1980
,
// 1980..19DF; New Tai Lue
0x19E0
,
// 19E0..19FF; Khmer Symbols
0x1A00
,
// 1A00..1A1F; Buginese
0x1A20
,
// unassigned
0x1A20
,
// 1A20..1AAF; Tai Tham
0x1AB0
,
// unassigned
0x1B00
,
// 1B00..1B7F; Balinese
0x1B80
,
// 1B80..1BBF; Sundanese
0x1BC0
,
//
unassigned
0x1BC0
,
//
1BC0..1BFF; Batak
0x1C00
,
// 1C00..1C4F; Lepcha
0x1C50
,
// 1C50..1C7F; Ol Chiki
0x1C80
,
// unassigned
0x1CD0
,
// 1CD0..1CFF; Vedic Extensions
0x1D00
,
// 1D00..1D7F; Phonetic Extensions
0x1D80
,
// 1D80..1DBF; Phonetic Extensions Supplement
0x1DC0
,
// 1DC0..1DFF; Combining Diacritical Marks Supplement
...
...
@@ -2240,27 +2586,34 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x3300
,
// 3300..33FF; CJK Compatibility
0x3400
,
// 3400..4DBF; CJK Unified Ideographs Extension A
0x4DC0
,
// 4DC0..4DFF; Yijing Hexagram Symbols
0x4E00
,
// 4E00..9FFF; CJK Unified Ideograph
0x4E00
,
// 4E00..9FFF; CJK Unified Ideograph
s
0xA000
,
// A000..A48F; Yi Syllables
0xA490
,
// A490..A4CF; Yi Radicals
0xA4D0
,
//
unassigned
0xA4D0
,
//
A4D0..A4FF; Lisu
0xA500
,
// A500..A63F; Vai
0xA640
,
// A640..A69F; Cyrillic Extended-B
0xA6A0
,
//
unassigned
0xA6A0
,
//
A6A0..A6FF; Bamum
0xA700
,
// A700..A71F; Modifier Tone Letters
0xA720
,
// A720..A7FF; Latin Extended-D
0xA800
,
// A800..A82F; Syloti Nagri
0xA830
,
//
unassigned
0xA830
,
//
A830..A83F; Common Indic Number Forms
0xA840
,
// A840..A87F; Phags-pa
0xA880
,
// A880..A8DF; Saurashtra
0xA8E0
,
//
unassign
ed
0xA8E0
,
//
A8E0..A8FF; Devanagari Extend
ed
0xA900
,
// A900..A92F; Kayah Li
0xA930
,
// A930..A95F; Rejang
0xA960
,
// unassigned
0xA960
,
// A960..A97F; Hangul Jamo Extended-A
0xA980
,
// A980..A9DF; Javanese
0xA9E0
,
// unassigned
0xAA00
,
// AA00..AA5F; Cham
0xAA60
,
// unassigned
0xAA60
,
// AA60..AA7F; Myanmar Extended-A
0xAA80
,
// AA80..AADF; Tai Viet
0xAAE0
,
// unassigned
0xAB00
,
// AB00..AB2F; Ethiopic Extended-A
0xAB30
,
// unassigned
0xABC0
,
// ABC0..ABFF; Meetei Mayek
0xAC00
,
// AC00..D7AF; Hangul Syllables
0xD7B0
,
//
unassigned
0xD7B0
,
//
D7B0..D7FF; Hangul Jamo Extended-B
0xD800
,
// D800..DB7F; High Surrogates
0xDB80
,
// DB80..DBFF; High Private Use Surrogates
0xDC00
,
// DC00..DFFF; Low Surrogates
...
...
@@ -2292,20 +2645,39 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x10380
,
// 10380..1039F; Ugaritic
0x103A0
,
// 103A0..103DF; Old Persian
0x103E0
,
// unassigned
0x10400
,
// 10400..1044F; Desere
0x10400
,
// 10400..1044F; Desere
t
0x10450
,
// 10450..1047F; Shavian
0x10480
,
// 10480..104AF; Osmanya
0x104B0
,
// unassigned
0x10800
,
// 10800..1083F; Cypriot Syllabary
0x10840
,
// unassigned
0x10840
,
// 10840..1085F; Imperial Aramaic
0x10860
,
// unassigned
0x10900
,
// 10900..1091F; Phoenician
0x10920
,
// 10920..1093F; Lydian
0x10940
,
// unassigned
0x10A00
,
// 10A00..10A5F; Kharoshthi
0x10A60
,
// unassigned
0x10A60
,
// 10A60..10A7F; Old South Arabian
0x10A80
,
// unassigned
0x10B00
,
// 10B00..10B3F; Avestan
0x10B40
,
// 10B40..10B5F; Inscriptional Parthian
0x10B60
,
// 10B60..10B7F; Inscriptional Pahlavi
0x10B80
,
// unassigned
0x10C00
,
// 10C00..10C4F; Old Turkic
0x10C50
,
// unassigned
0x10E60
,
// 10E60..10E7F; Rumi Numeral Symbols
0x10E80
,
// unassigned
0x11000
,
// 11000..1107F; Brahmi
0x11080
,
// 11080..110CF; Kaithi
0x110D0
,
// unassigned
0x12000
,
// 12000..123FF; Cuneiform
0x12400
,
// 12400..1247F; Cuneiform Numbers and Punctuation
0x12480
,
// unassigned
0x13000
,
// 13000..1342F; Egyptian Hieroglyphs
0x13430
,
// unassigned
0x16800
,
// 16800..16A3F; Bamum Supplement
0x16A40
,
// unassigned
0x1B000
,
// 1B000..1B0FF; Kana Supplement
0x1B100
,
// unassigned
0x1D000
,
// 1D000..1D0FF; Byzantine Musical Symbols
0x1D100
,
// 1D100..1D1FF; Musical Symbols
0x1D200
,
// 1D200..1D24F; Ancient Greek Musical Notation
...
...
@@ -2317,9 +2689,20 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x1D800
,
// unassigned
0x1F000
,
// 1F000..1F02F; Mahjong Tiles
0x1F030
,
// 1F030..1F09F; Domino Tiles
0x1F0A0
,
// unassigned
0x1F0A0
,
// 1F0A0..1F0FF; Playing Cards
0x1F100
,
// 1F100..1F1FF; Enclosed Alphanumeric Supplement
0x1F200
,
// 1F200..1F2FF; Enclosed Ideographic Supplement
0x1F300
,
// 1F300..1F5FF; Miscellaneous Symbols And Pictographs
0x1F600
,
// 1F600..1F64F; Emoticons
0x1F650
,
// unassigned
0x1F680
,
// 1F680..1F6FF; Transport And Map Symbols
0x1F700
,
// 1F700..1F77F; Alchemical Symbols
0x1F780
,
// unassigned
0x20000
,
// 20000..2A6DF; CJK Unified Ideographs Extension B
0x2A6E0
,
// unassigned
0x2A700
,
// 2A700..2B73F; CJK Unified Ideographs Extension C
0x2B740
,
// 2B740..2B81F; CJK Unified Ideographs Extension D
0x2B820
,
// unassigned
0x2F800
,
// 2F800..2FA1F; CJK Compatibility Ideographs Supplement
0x2FA20
,
// unassigned
0xE0000
,
// E0000..E007F; Tags
...
...
@@ -2327,7 +2710,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
0xE0100
,
// E0100..E01EF; Variation Selectors Supplement
0xE01F0
,
// unassigned
0xF0000
,
// F0000..FFFFF; Supplementary Private Use Area-A
0x100000
,
// 100000..10FFFF; Supplementary Private Use Area-B
0x100000
// 100000..10FFFF; Supplementary Private Use Area-B
};
private
static
final
UnicodeBlock
[]
blocks
=
{
...
...
@@ -2348,6 +2731,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
ARABIC_SUPPLEMENT
,
THAANA
,
NKO
,
SAMARITAN
,
MANDAIC
,
null
,
DEVANAGARI
,
BENGALI
,
...
...
@@ -2377,19 +2762,21 @@ class Character implements java.io.Serializable, Comparable<Character> {
TAGBANWA
,
KHMER
,
MONGOLIAN
,
null
,
UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED
,
LIMBU
,
TAI_LE
,
NEW_TAI_LUE
,
KHMER_SYMBOLS
,
BUGINESE
,
TAI_THAM
,
null
,
BALINESE
,
SUNDANESE
,
null
,
BATAK
,
LEPCHA
,
OL_CHIKI
,
null
,
VEDIC_EXTENSIONS
,
PHONETIC_EXTENSIONS
,
PHONETIC_EXTENSIONS_SUPPLEMENT
,
COMBINING_DIACRITICAL_MARKS_SUPPLEMENT
,
...
...
@@ -2447,24 +2834,31 @@ class Character implements java.io.Serializable, Comparable<Character> {
CJK_UNIFIED_IDEOGRAPHS
,
YI_SYLLABLES
,
YI_RADICALS
,
null
,
LISU
,
VAI
,
CYRILLIC_EXTENDED_B
,
null
,
BAMUM
,
MODIFIER_TONE_LETTERS
,
LATIN_EXTENDED_D
,
SYLOTI_NAGRI
,
null
,
COMMON_INDIC_NUMBER_FORMS
,
PHAGS_PA
,
SAURASHTRA
,
null
,
DEVANAGARI_EXTENDED
,
KAYAH_LI
,
REJANG
,
HANGUL_JAMO_EXTENDED_A
,
JAVANESE
,
null
,
CHAM
,
MYANMAR_EXTENDED_A
,
TAI_VIET
,
null
,
HANGUL_SYLLABLES
,
ETHIOPIC_EXTENDED_A
,
null
,
MEETEI_MAYEK
,
HANGUL_SYLLABLES
,
HANGUL_JAMO_EXTENDED_B
,
HIGH_SURROGATES
,
HIGH_PRIVATE_USE_SURROGATES
,
LOW_SURROGATES
,
...
...
@@ -2501,15 +2895,34 @@ class Character implements java.io.Serializable, Comparable<Character> {
OSMANYA
,
null
,
CYPRIOT_SYLLABARY
,
IMPERIAL_ARAMAIC
,
null
,
PHOENICIAN
,
LYDIAN
,
null
,
KHAROSHTHI
,
OLD_SOUTH_ARABIAN
,
null
,
AVESTAN
,
INSCRIPTIONAL_PARTHIAN
,
INSCRIPTIONAL_PAHLAVI
,
null
,
OLD_TURKIC
,
null
,
RUMI_NUMERAL_SYMBOLS
,
null
,
BRAHMI
,
KAITHI
,
null
,
CUNEIFORM
,
CUNEIFORM_NUMBERS_AND_PUNCTUATION
,
null
,
EGYPTIAN_HIEROGLYPHS
,
null
,
BAMUM_SUPPLEMENT
,
null
,
KANA_SUPPLEMENT
,
null
,
BYZANTINE_MUSICAL_SYMBOLS
,
MUSICAL_SYMBOLS
,
ANCIENT_GREEK_MUSICAL_NOTATION
,
...
...
@@ -2521,9 +2934,20 @@ class Character implements java.io.Serializable, Comparable<Character> {
null
,
MAHJONG_TILES
,
DOMINO_TILES
,
PLAYING_CARDS
,
ENCLOSED_ALPHANUMERIC_SUPPLEMENT
,
ENCLOSED_IDEOGRAPHIC_SUPPLEMENT
,
MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS
,
EMOTICONS
,
null
,
TRANSPORT_AND_MAP_SYMBOLS
,
ALCHEMICAL_SYMBOLS
,
null
,
CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
,
null
,
CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C
,
CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D
,
null
,
CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT
,
null
,
TAGS
,
...
...
@@ -2988,6 +3412,11 @@ class Character implements java.io.Serializable, Comparable<Character> {
*/
SUNDANESE
,
/**
* Unicode script "Batak".
*/
BATAK
,
/**
* Unicode script "Lepcha".
*/
...
...
@@ -3063,6 +3492,11 @@ class Character implements java.io.Serializable, Comparable<Character> {
*/
SAMARITAN
,
/**
* Unicode script "Mandaic".
*/
MANDAIC
,
/**
* Unicode script "Lisu".
*/
...
...
@@ -3108,6 +3542,11 @@ class Character implements java.io.Serializable, Comparable<Character> {
*/
OLD_TURKIC
,
/**
* Unicode script "Brahmi".
*/
BRAHMI
,
/**
* Unicode script "Kaithi".
*/
...
...
@@ -3135,7 +3574,9 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x00F8
,
// 00F8..02B8; LATIN
0x02B9
,
// 02B9..02DF; COMMON
0x02E0
,
// 02E0..02E4; LATIN
0x02E5
,
// 02E5..02FF; COMMON
0x02E5
,
// 02E5..02E9; COMMON
0x02EA
,
// 02EA..02EB; BOPOMOFO
0x02EC
,
// 02EC..02FF; COMMON
0x0300
,
// 0300..036F; INHERITED
0x0370
,
// 0370..0373; GREEK
0x0374
,
// 0374..0374; COMMON
...
...
@@ -3155,18 +3596,18 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x0589
,
// 0589..0589; COMMON
0x058A
,
// 058A..0590; ARMENIAN
0x0591
,
// 0591..05FF; HEBREW
0x0600
,
// 0600..0605; COMMON
0x0606
,
// 0606..060B; ARABIC
0x0600
,
// 0600..060B; ARABIC
0x060C
,
// 060C..060C; COMMON
0x060D
,
// 060D..061A; ARABIC
0x061B
,
// 061B..061D; COMMON
0x061E
,
// 061E..061E; ARABIC
0x061F
,
// 061F..06
20
; COMMON
0x062
1
,
// 0621
..063F; ARABIC
0x061F
,
// 061F..06
1F
; COMMON
0x062
0
,
// 0620
..063F; ARABIC
0x0640
,
// 0640..0640; COMMON
0x0641
,
// 0641..064A; ARABIC
0x064B
,
// 064B..0655; INHERITED
0x0656
,
// 0656..065F; ARABIC
0x0656
,
// 0656..065E; ARABIC
0x065F
,
// 065F..065F; INHERITED
0x0660
,
// 0660..0669; COMMON
0x066A
,
// 066A..066F; ARABIC
0x0670
,
// 0670..0670; INHERITED
...
...
@@ -3177,7 +3618,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x0750
,
// 0750..077F; ARABIC
0x0780
,
// 0780..07BF; THAANA
0x07C0
,
// 07C0..07FF; NKO
0x0800
,
// 0800..08FF; SAMARITAN
0x0800
,
// 0800..083F; SAMARITAN
0x0840
,
// 0840..08FF; MANDAIC
0x0900
,
// 0900..0950; DEVANAGARI
0x0951
,
// 0951..0952; INHERITED
0x0953
,
// 0953..0963; DEVANAGARI
...
...
@@ -3192,7 +3634,6 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x0B82
,
// 0B82..0C00; TAMIL
0x0C01
,
// 0C01..0C81; TELUGU
0x0C82
,
// 0C82..0CF0; KANNADA
0x0CF1
,
// 0CF1..0D01; COMMON
0x0D02
,
// 0D02..0D81; MALAYALAM
0x0D82
,
// 0D82..0E00; SINHALA
0x0E01
,
// 0E01..0E3E; THAI
...
...
@@ -3200,7 +3641,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x0E40
,
// 0E40..0E80; THAI
0x0E81
,
// 0E81..0EFF; LAO
0x0F00
,
// 0F00..0FD4; TIBETAN
0x0FD5
,
// 0FD5..0FFF; COMMON
0x0FD5
,
// 0FD5..0FD8; COMMON
0x0FD9
,
// 0FD9..0FFF; TIBETAN
0x1000
,
// 1000..109F; MYANMAR
0x10A0
,
// 10A0..10FA; GEORGIAN
0x10FB
,
// 10FB..10FB; COMMON
...
...
@@ -3232,7 +3674,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x1A00
,
// 1A00..1A1F; BUGINESE
0x1A20
,
// 1A20..1AFF; TAI_THAM
0x1B00
,
// 1B00..1B7F; BALINESE
0x1B80
,
// 1B80..1BFF; SUNDANESE
0x1B80
,
// 1B80..1BBF; SUNDANESE
0x1BC0
,
// 1BC0..1BFF; BATAK
0x1C00
,
// 1C00..1C4F; LEPCHA
0x1C50
,
// 1C50..1CCF; OL_CHIKI
0x1CD0
,
// 1CD0..1CD2; INHERITED
...
...
@@ -3295,7 +3738,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x3007
,
// 3007..3007; HAN
0x3008
,
// 3008..3020; COMMON
0x3021
,
// 3021..3029; HAN
0x302A
,
// 302A..302F; INHERITED
0x302A
,
// 302A..302D; INHERITED
0x302E
,
// 302E..302F; HANGUL
0x3030
,
// 3030..3037; COMMON
0x3038
,
// 3038..303B; HAN
0x303C
,
// 303C..3040; COMMON
...
...
@@ -3342,7 +3786,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
0xA980
,
// A980..A9FF; JAVANESE
0xAA00
,
// AA00..AA5F; CHAM
0xAA60
,
// AA60..AA7F; MYANMAR
0xAA80
,
// AA80..ABBF; TAI_VIET
0xAA80
,
// AA80..AB00; TAI_VIET
0xAB01
,
// AB01..ABBF; ETHIOPIC
0xABC0
,
// ABC0..ABFF; MEETEI_MAYEK
0xAC00
,
// AC00..D7FB; HANGUL
0xD7FC
,
// D7FC..F8FF; UNKNOWN
...
...
@@ -3394,10 +3839,14 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x10B40
,
// 10B40..10B5F; INSCRIPTIONAL_PARTHIAN
0x10B60
,
// 10B60..10BFF; INSCRIPTIONAL_PAHLAVI
0x10C00
,
// 10C00..10E5F; OLD_TURKIC
0x10E60
,
// 10E60..1107F; ARABIC
0x10E60
,
// 10E60..10FFF; ARABIC
0x11000
,
// 11000..1107F; BRAHMI
0x11080
,
// 11080..11FFF; KAITHI
0x12000
,
// 12000..12FFF; CUNEIFORM
0x13000
,
// 13000..1CFFF; EGYPTIAN_HIEROGLYPHS
0x13000
,
// 13000..167FF; EGYPTIAN_HIEROGLYPHS
0x16800
,
// 16800..16A38; BAMUM
0x1B000
,
// 1B000..1B000; KATAKANA
0x1B001
,
// 1B001..1CFFF; HIRAGANA
0x1D000
,
// 1D000..1D166; COMMON
0x1D167
,
// 1D167..1D169; INHERITED
0x1D16A
,
// 1D16A..1D17A; COMMON
...
...
@@ -3409,8 +3858,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
0x1D1AE
,
// 1D1AE..1D1FF; COMMON
0x1D200
,
// 1D200..1D2FF; GREEK
0x1D300
,
// 1D300..1F1FF; COMMON
0x1F200
,
// 1F200..1F20
F
; HIRAGANA
0x1F2
10
,
// 1F210..1FFFF; COMMON
0x1F200
,
// 1F200..1F20
0
; HIRAGANA
0x1F2
01
,
// 1F210..1FFFF; COMMON
0x20000
,
// 20000..E0000; HAN
0xE0001
,
// E0001..E00FF; COMMON
0xE0100
,
// E0100..E01EF; INHERITED
...
...
@@ -3436,6 +3885,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
COMMON
,
LATIN
,
COMMON
,
BOPOMOFO
,
COMMON
,
INHERITED
,
GREEK
,
COMMON
,
...
...
@@ -3455,7 +3906,6 @@ class Character implements java.io.Serializable, Comparable<Character> {
COMMON
,
ARMENIAN
,
HEBREW
,
COMMON
,
ARABIC
,
COMMON
,
ARABIC
,
...
...
@@ -3467,6 +3917,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
ARABIC
,
INHERITED
,
ARABIC
,
INHERITED
,
COMMON
,
ARABIC
,
INHERITED
,
...
...
@@ -3478,6 +3929,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
THAANA
,
NKO
,
SAMARITAN
,
MANDAIC
,
DEVANAGARI
,
INHERITED
,
DEVANAGARI
,
...
...
@@ -3492,7 +3944,6 @@ class Character implements java.io.Serializable, Comparable<Character> {
TAMIL
,
TELUGU
,
KANNADA
,
COMMON
,
MALAYALAM
,
SINHALA
,
THAI
,
...
...
@@ -3501,6 +3952,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
LAO
,
TIBETAN
,
COMMON
,
TIBETAN
,
MYANMAR
,
GEORGIAN
,
COMMON
,
...
...
@@ -3533,6 +3985,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
TAI_THAM
,
BALINESE
,
SUNDANESE
,
BATAK
,
LEPCHA
,
OL_CHIKI
,
INHERITED
,
...
...
@@ -3596,6 +4049,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
COMMON
,
HAN
,
INHERITED
,
HANGUL
,
COMMON
,
HAN
,
COMMON
,
...
...
@@ -3643,6 +4097,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
CHAM
,
MYANMAR
,
TAI_VIET
,
ETHIOPIC
,
MEETEI_MAYEK
,
HANGUL
,
UNKNOWN
,
...
...
@@ -3695,9 +4150,13 @@ class Character implements java.io.Serializable, Comparable<Character> {
INSCRIPTIONAL_PAHLAVI
,
OLD_TURKIC
,
ARABIC
,
BRAHMI
,
KAITHI
,
CUNEIFORM
,
EGYPTIAN_HIEROGLYPHS
,
BAMUM
,
KATAKANA
,
HIRAGANA
,
COMMON
,
INHERITED
,
COMMON
,
...
...
src/share/classes/java/lang/Readable.java
浏览文件 @
4e203d7a
...
...
@@ -44,11 +44,11 @@ public interface Readable {
* rewinding of the buffer is performed.
*
* @param cb the buffer to read characters into
* @return
@return The number of <tt>char</tt>
values added to the buffer,
* @return
The number of {@code char}
values added to the buffer,
* or -1 if this source of characters is at its end
* @throws IOException if an I/O error occurs
* @throws NullPointerException if cb is null
* @throws ReadOnlyBufferException if cb is a read only buffer
* @throws
java.nio.
ReadOnlyBufferException if cb is a read only buffer
*/
public
int
read
(
java
.
nio
.
CharBuffer
cb
)
throws
IOException
;
...
...
src/share/classes/java/nio/StringCharBuffer.java
浏览文件 @
4e203d7a
...
...
@@ -47,7 +47,7 @@ class StringCharBuffer // package-private
0
,
this
.
remaining
(),
this
.
remaining
(),
this
.
position
());
offset
+
this
.
position
());
}
private
StringCharBuffer
(
CharSequence
s
,
...
...
src/share/classes/java/nio/channels/AsynchronousSocketChannel.java
浏览文件 @
4e203d7a
...
...
@@ -110,7 +110,8 @@ import java.nio.ByteBuffer;
* state of the {@link ByteBuffer}, or the sequence of buffers, for the I/O
* operation is not defined. Buffers should be discarded or at least care must
* be taken to ensure that the buffers are not accessed while the channel remains
* open.
* open. All methods that accept timeout parameters treat values less than or
* equal to zero to mean that the I/O operation does not timeout.
*
* @since 1.7
*/
...
...
@@ -367,7 +368,7 @@ public abstract class AsynchronousSocketChannel
* @param dst
* The buffer into which bytes are to be transferred
* @param timeout
* The
timeout, or {@code 0L} for no timeout
* The
maximum time for the I/O operation to complete
* @param unit
* The time unit of the {@code timeout} argument
* @param attachment
...
...
@@ -376,8 +377,7 @@ public abstract class AsynchronousSocketChannel
* The handler for consuming the result
*
* @throws IllegalArgumentException
* If the {@code timeout} parameter is negative or the buffer is
* read-only
* If the buffer is read-only
* @throws ReadPendingException
* If a read operation is already in progress on this channel
* @throws NotYetConnectedException
...
...
@@ -471,7 +471,7 @@ public abstract class AsynchronousSocketChannel
* The maximum number of buffers to be accessed; must be non-negative
* and no larger than {@code dsts.length - offset}
* @param timeout
* The
timeout, or {@code 0L} for no timeout
* The
maximum time for the I/O operation to complete
* @param unit
* The time unit of the {@code timeout} argument
* @param attachment
...
...
@@ -483,8 +483,7 @@ public abstract class AsynchronousSocketChannel
* If the pre-conditions for the {@code offset} and {@code length}
* parameter aren't met
* @throws IllegalArgumentException
* If the {@code timeout} parameter is negative, or a buffer is
* read-only
* If the buffer is read-only
* @throws ReadPendingException
* If a read operation is already in progress on this channel
* @throws NotYetConnectedException
...
...
@@ -524,7 +523,7 @@ public abstract class AsynchronousSocketChannel
* @param src
* The buffer from which bytes are to be retrieved
* @param timeout
* The
timeout, or {@code 0L} for no timeout
* The
maximum time for the I/O operation to complete
* @param unit
* The time unit of the {@code timeout} argument
* @param attachment
...
...
@@ -532,8 +531,6 @@ public abstract class AsynchronousSocketChannel
* @param handler
* The handler for consuming the result
*
* @throws IllegalArgumentException
* If the {@code timeout} parameter is negative
* @throws WritePendingException
* If a write operation is already in progress on this channel
* @throws NotYetConnectedException
...
...
@@ -623,7 +620,7 @@ public abstract class AsynchronousSocketChannel
* The maximum number of buffers to be accessed; must be non-negative
* and no larger than {@code srcs.length - offset}
* @param timeout
* The
timeout, or {@code 0L} for no timeout
* The
maximum time for the I/O operation to complete
* @param unit
* The time unit of the {@code timeout} argument
* @param attachment
...
...
@@ -634,8 +631,6 @@ public abstract class AsynchronousSocketChannel
* @throws IndexOutOfBoundsException
* If the pre-conditions for the {@code offset} and {@code length}
* parameter aren't met
* @throws IllegalArgumentException
* If the {@code timeout} parameter is negative
* @throws WritePendingException
* If a write operation is already in progress on this channel
* @throws NotYetConnectedException
...
...
src/share/classes/java/sql/SQLPermission.java
浏览文件 @
4e203d7a
...
...
@@ -84,7 +84,7 @@ import java.security.*;
* {@code setJNDIContext} and {@code setLogger}</td>
* <td>Permits an application to specify the JNDI context from which the
* {@code SyncProvider} implementations can be retrieved from and the logging
* object to be used by the
{@code
SyncProvider} implementation.</td>
* object to be used by the
{@code
SyncProvider} implementation.</td>
* </tr>
*
* <tr>
...
...
src/share/classes/java/util/Formatter.java
浏览文件 @
4e203d7a
...
...
@@ -1581,6 +1581,7 @@ import sun.misc.FormattedFloatingDecimal;
* instance of the Java virtual machine.
*
* <tr><td valign="top">{@code 'Z'}
* <td valign="top"> <tt>'\u005a'</tt>
* <td> A string representing the abbreviation for the time zone. This
* value will be adjusted as necessary for Daylight Saving Time. For
* {@code long}, {@link Long}, and {@link Date} the time zone used is
...
...
src/share/classes/java/util/spi/CurrencyNameProvider.java
浏览文件 @
4e203d7a
...
...
@@ -25,7 +25,9 @@
package
java.util.spi
;
import
java.util.Arrays
;
import
java.util.Currency
;
import
java.util.List
;
import
java.util.Locale
;
/**
...
...
@@ -95,6 +97,23 @@ public abstract class CurrencyNameProvider extends LocaleServiceProvider {
throw
new
NullPointerException
();
}
// Check whether the currencyCode is valid
char
[]
charray
=
currencyCode
.
toCharArray
();
if
(
charray
.
length
!=
3
)
{
throw
new
IllegalArgumentException
(
"The currencyCode is not in the form of three upper-case letters."
);
}
for
(
char
c
:
charray
)
{
if
(
c
<
'A'
||
c
>
'Z'
)
{
throw
new
IllegalArgumentException
(
"The currencyCode is not in the form of three upper-case letters."
);
}
}
// Check whether the locale is valid
List
<
Locale
>
avail
=
Arrays
.
asList
(
getAvailableLocales
());
if
(!
avail
.
contains
(
locale
))
{
throw
new
IllegalArgumentException
(
"The locale is not available"
);
}
return
null
;
}
}
src/share/classes/java/util/spi/LocaleNameProvider.java
浏览文件 @
4e203d7a
...
...
@@ -94,7 +94,9 @@ public abstract class LocaleNameProvider extends LocaleServiceProvider {
* @see java.util.Locale#getDisplayScript(java.util.Locale)
* @since 1.7
*/
public
abstract
String
getDisplayScript
(
String
scriptCode
,
Locale
locale
);
public
String
getDisplayScript
(
String
scriptCode
,
Locale
locale
)
{
return
null
;
}
/**
* Returns a localized name for the given <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
...
...
src/share/classes/javax/security/auth/Policy.java
浏览文件 @
4e203d7a
...
...
@@ -25,6 +25,9 @@
package
javax.security.auth
;
import
java.security.Security
;
import
sun.security.util.Debug
;
/**
* <p> This is an abstract class for representing the system policy for
* Subject-based authorization. A subclass implementation
...
...
@@ -159,6 +162,10 @@ public abstract class Policy {
private
static
Policy
policy
;
private
static
ClassLoader
contextClassLoader
;
// true if a custom (not com.sun.security.auth.PolicyFile) system-wide
// policy object is set
private
static
boolean
isCustomPolicy
;
static
{
contextClassLoader
=
java
.
security
.
AccessController
.
doPrivileged
(
new
java
.
security
.
PrivilegedAction
<
ClassLoader
>()
{
...
...
@@ -234,6 +241,8 @@ public abstract class Policy {
contextClassLoader
).
newInstance
();
}
});
isCustomPolicy
=
!
finalClass
.
equals
(
"com.sun.security.auth.PolicyFile"
);
}
catch
(
Exception
e
)
{
throw
new
SecurityException
(
sun
.
security
.
util
.
ResourcesMgr
.
getString
...
...
@@ -265,6 +274,46 @@ public abstract class Policy {
java
.
lang
.
SecurityManager
sm
=
System
.
getSecurityManager
();
if
(
sm
!=
null
)
sm
.
checkPermission
(
new
AuthPermission
(
"setPolicy"
));
Policy
.
policy
=
policy
;
// all non-null policy objects are assumed to be custom
isCustomPolicy
=
policy
!=
null
?
true
:
false
;
}
/**
* Returns true if a custom (not com.sun.security.auth.PolicyFile)
* system-wide policy object has been set or installed. This method is
* called by SubjectDomainCombiner to provide backwards compatibility for
* developers that provide their own javax.security.auth.Policy
* implementations.
*
* @return true if a custom (not com.sun.security.auth.PolicyFile)
* system-wide policy object has been set; false otherwise
*/
static
boolean
isCustomPolicySet
(
Debug
debug
)
{
if
(
policy
!=
null
)
{
if
(
debug
!=
null
&&
isCustomPolicy
)
{
debug
.
println
(
"Providing backwards compatibility for "
+
"javax.security.auth.policy implementation: "
+
policy
.
toString
());
}
return
isCustomPolicy
;
}
// check if custom policy has been set using auth.policy.provider prop
String
policyClass
=
java
.
security
.
AccessController
.
doPrivileged
(
new
java
.
security
.
PrivilegedAction
<
String
>()
{
public
String
run
()
{
return
Security
.
getProperty
(
"auth.policy.provider"
);
}
});
if
(
policyClass
!=
null
&&
!
policyClass
.
equals
(
"com.sun.security.auth.PolicyFile"
))
{
if
(
debug
!=
null
)
{
debug
.
println
(
"Providing backwards compatibility for "
+
"javax.security.auth.policy implementation: "
+
policyClass
);
}
return
true
;
}
return
false
;
}
/**
...
...
src/share/classes/javax/security/auth/SubjectDomainCombiner.java
浏览文件 @
4e203d7a
/*
* Copyright (c) 1999, 20
07
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 20
10
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -26,8 +26,6 @@
package
javax.security.auth
;
import
java.security.AccessController
;
import
java.security.AccessControlContext
;
import
java.security.AllPermission
;
import
java.security.Permission
;
import
java.security.Permissions
;
import
java.security.PermissionCollection
;
...
...
@@ -35,10 +33,8 @@ import java.security.Policy;
import
java.security.Principal
;
import
java.security.PrivilegedAction
;
import
java.security.ProtectionDomain
;
import
java.lang.ClassLoader
;
import
java.security.Security
;
import
java.util.Set
;
import
java.util.Iterator
;
import
java.util.WeakHashMap
;
import
java.lang.ref.WeakReference
;
...
...
@@ -61,7 +57,8 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
"\t[SubjectDomainCombiner]"
);
// Note: check only at classloading time, not dynamically during combine()
private
static
final
boolean
useJavaxPolicy
=
compatPolicy
();
private
static
final
boolean
useJavaxPolicy
=
javax
.
security
.
auth
.
Policy
.
isCustomPolicySet
(
debug
);
// Relevant only when useJavaxPolicy is true
private
static
final
boolean
allowCaching
=
...
...
@@ -202,8 +199,8 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
return
null
;
}
// maintain backwards compatibility for
people
who provide
// their own javax.security.auth.Policy implementations
// maintain backwards compatibility for
developers
who provide
// their own
custom
javax.security.auth.Policy implementations
if
(
useJavaxPolicy
)
{
return
combineJavaxPolicy
(
currentDomains
,
assignedDomains
);
}
...
...
@@ -476,8 +473,7 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
String
s
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
String
>()
{
public
String
run
()
{
return
java
.
security
.
Security
.
getProperty
(
"cache.auth.policy"
);
return
Security
.
getProperty
(
"cache.auth.policy"
);
}
});
if
(
s
!=
null
)
{
...
...
@@ -488,29 +484,6 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
return
true
;
}
// maintain backwards compatibility for people who provide
// their own javax.security.auth.Policy implementations
private
static
boolean
compatPolicy
()
{
javax
.
security
.
auth
.
Policy
javaxPolicy
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
javax
.
security
.
auth
.
Policy
>()
{
public
javax
.
security
.
auth
.
Policy
run
()
{
return
javax
.
security
.
auth
.
Policy
.
getPolicy
();
}
});
if
(!(
javaxPolicy
instanceof
com
.
sun
.
security
.
auth
.
PolicyFile
))
{
if
(
debug
!=
null
)
{
debug
.
println
(
"Providing backwards compatibility for "
+
"javax.security.auth.policy implementation: "
+
javaxPolicy
.
toString
());
}
return
true
;
}
else
{
return
false
;
}
}
private
static
void
printInputDomains
(
ProtectionDomain
[]
currentDomains
,
ProtectionDomain
[]
assignedDomains
)
{
if
(
currentDomains
==
null
||
currentDomains
.
length
==
0
)
{
...
...
src/share/classes/javax/swing/AbstractButton.java
浏览文件 @
4e203d7a
...
...
@@ -1379,6 +1379,10 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
* If <code>true</code> and the button has a border,
* the border is painted. The default value for the
* <code>borderPainted</code> property is <code>true</code>.
* <p/>
* Some look and feels might not support
* the <code>borderPainted</code> property,
* in which case they ignore this.
*
* @param b if true and border property is not <code>null</code>,
* the border is painted
...
...
src/share/classes/javax/swing/BorderFactory.java
浏览文件 @
4e203d7a
...
...
@@ -273,7 +273,7 @@ public class BorderFactory
* @since 1.7
*/
public
static
Border
createSoftBevelBorder
(
int
type
,
Color
highlight
,
Color
shadow
)
{
return
new
BevelBorder
(
type
,
highlight
,
shadow
);
return
new
Soft
BevelBorder
(
type
,
highlight
,
shadow
);
}
/**
...
...
@@ -295,7 +295,7 @@ public class BorderFactory
* @since 1.7
*/
public
static
Border
createSoftBevelBorder
(
int
type
,
Color
highlightOuter
,
Color
highlightInner
,
Color
shadowOuter
,
Color
shadowInner
)
{
return
new
BevelBorder
(
type
,
highlightOuter
,
highlightInner
,
shadowOuter
,
shadowInner
);
return
new
Soft
BevelBorder
(
type
,
highlightOuter
,
highlightInner
,
shadowOuter
,
shadowInner
);
}
//// EtchedBorder ///////////////////////////////////////////////////////////
...
...
src/share/classes/javax/swing/JLayer.java
浏览文件 @
4e203d7a
...
...
@@ -322,7 +322,7 @@ public final class JLayer<V extends Component>
}
/**
* A non-{@code null
]
border, or non-zero insets, isn't supported, to prevent the geometry
* A non-{@code null
}
border, or non-zero insets, isn't supported, to prevent the geometry
* of this component from becoming complex enough to inhibit
* subclassing of {@code LayerUI} class. To create a {@code JLayer} with a border,
* add it to a {@code JPanel} that has a border.
...
...
@@ -373,9 +373,13 @@ public final class JLayer<V extends Component>
* {@inheritDoc}
*/
public
void
removeAll
()
{
if
(
view
!=
null
)
{
setView
(
null
);
}
if
(
glassPane
!=
null
)
{
setGlassPane
(
null
);
}
}
/**
* Always returns {@code true} to cause painting to originate from {@code JLayer},
...
...
src/share/classes/javax/swing/JTabbedPane.java
浏览文件 @
4e203d7a
...
...
@@ -1443,6 +1443,10 @@ public class JTabbedPane extends JComponent
* which can be <code>null</code>, in which case the tab's background color
* will default to the background color of the <code>tabbedpane</code>.
* An internal exception is raised if there is no tab at that index.
* <p/>
* It is up to the look and feel to honor this property, some may
* choose to ignore it.
*
* @param index the tab index where the background should be set
* @param background the color to be displayed in the tab's background
* @exception IndexOutOfBoundsException if index is out of range
...
...
@@ -1472,6 +1476,9 @@ public class JTabbedPane extends JComponent
* <code>null</code>, in which case the tab's foreground color
* will default to the foreground color of this <code>tabbedpane</code>.
* An internal exception is raised if there is no tab at that index.
* <p/>
* It is up to the look and feel to honor this property, some may
* choose to ignore it.
*
* @param index the tab index where the foreground should be set
* @param foreground the color to be displayed as the tab's foreground
...
...
src/share/classes/javax/swing/border/TitledBorder.java
浏览文件 @
4e203d7a
...
...
@@ -234,7 +234,7 @@ public class TitledBorder extends AbstractBorder
* @param height the height of the painted border
*/
public
void
paintBorder
(
Component
c
,
Graphics
g
,
int
x
,
int
y
,
int
width
,
int
height
)
{
Border
border
=
getBorder
UI
();
Border
border
=
getBorder
();
String
title
=
getTitle
();
if
((
title
!=
null
)
&&
!
title
.
isEmpty
())
{
int
edge
=
(
border
instanceof
TitledBorder
)
?
0
:
EDGE_SPACING
;
...
...
@@ -347,7 +347,7 @@ public class TitledBorder extends AbstractBorder
* @param insets the object to be reinitialized
*/
public
Insets
getBorderInsets
(
Component
c
,
Insets
insets
)
{
Border
border
=
getBorder
UI
();
Border
border
=
getBorder
();
if
(
border
==
null
)
{
insets
.
set
(
0
,
0
,
0
,
0
);
}
...
...
@@ -402,22 +402,34 @@ public class TitledBorder extends AbstractBorder
/**
* Returns whether or not the border is opaque.
*/
public
boolean
isBorderOpaque
()
{
return
false
;
}
public
boolean
isBorderOpaque
()
{
return
false
;
}
/**
* Returns the title of the titled border.
*
* @return the title of the titled border
*/
public
String
getTitle
()
{
return
title
;
}
public
String
getTitle
()
{
return
title
;
}
/**
* Returns the border of the titled border.
*
* @return the border of the titled border
*/
public
Border
getBorder
()
{
return
border
;
return
border
!=
null
?
border
:
UIManager
.
getBorder
(
"TitledBorder.border"
);
}
/**
* Returns the title-position of the titled border.
*
* @return the title-position of the titled border
*/
public
int
getTitlePosition
()
{
return
titlePosition
;
...
...
@@ -425,11 +437,17 @@ public class TitledBorder extends AbstractBorder
/**
* Returns the title-justification of the titled border.
*
* @return the title-justification of the titled border
*/
public
int
getTitleJustification
()
{
return
titleJustification
;
}
public
int
getTitleJustification
()
{
return
titleJustification
;
}
/**
* Returns the title-font of the titled border.
*
* @return the title-font of the titled border
*/
public
Font
getTitleFont
()
{
return
titleFont
;
...
...
@@ -437,6 +455,8 @@ public class TitledBorder extends AbstractBorder
/**
* Returns the title-color of the titled border.
*
* @return the title-color of the titled border
*/
public
Color
getTitleColor
()
{
return
titleColor
;
...
...
@@ -447,15 +467,19 @@ public class TitledBorder extends AbstractBorder
/**
* Sets the title of the titled border.
*
param title
the title for the border
*
@param title
the title for the border
*/
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
/**
* Sets the border of the titled border.
* @param border the border
*/
public
void
setBorder
(
Border
border
)
{
this
.
border
=
border
;
}
public
void
setBorder
(
Border
border
)
{
this
.
border
=
border
;
}
/**
* Sets the title-position of the titled border.
...
...
@@ -518,6 +542,7 @@ public class TitledBorder extends AbstractBorder
* Returns the minimum dimensions this border requires
* in order to fully display the border and title.
* @param c the component where this border will be drawn
* @return the {@code Dimension} object
*/
public
Dimension
getMinimumSize
(
Component
c
)
{
Insets
insets
=
getBorderInsets
(
c
);
...
...
@@ -557,7 +582,7 @@ public class TitledBorder extends AbstractBorder
if
(
height
<
0
)
{
throw
new
IllegalArgumentException
(
"Height must be >= 0"
);
}
Border
border
=
getBorder
UI
();
Border
border
=
getBorder
();
String
title
=
getTitle
();
if
((
title
!=
null
)
&&
!
title
.
isEmpty
())
{
int
edge
=
(
border
instanceof
TitledBorder
)
?
0
:
EDGE_SPACING
;
...
...
@@ -616,13 +641,6 @@ public class TitledBorder extends AbstractBorder
return
Component
.
BaselineResizeBehavior
.
OTHER
;
}
private
Border
getBorderUI
()
{
Border
border
=
getBorder
();
return
border
!=
null
?
border
:
UIManager
.
getBorder
(
"TitledBorder.border"
);
}
private
int
getPosition
()
{
int
position
=
getTitlePosition
();
if
(
position
!=
DEFAULT_POSITION
)
{
...
...
src/share/classes/javax/swing/plaf/LayerUI.java
浏览文件 @
4e203d7a
...
...
@@ -449,8 +449,8 @@ public class LayerUI<V extends Component>
/**
* Configures the {@code JLayer} this {@code LayerUI} is set to.
* The default implementation registers the
{@code LayerUI}
* as a
property change listener for the passed {@code JLayer} component
.
* The default implementation registers the
passed {@code JLayer} component
* as a
{@code PropertyChangeListener} for the property changes of this {@code LayerUI}
.
*
* @param c the {@code JLayer} component where this UI delegate is being installed
*/
...
...
@@ -461,8 +461,8 @@ public class LayerUI<V extends Component>
/**
* Reverses the configuration which was previously set
* in the {@link #installUI(JComponent)} method.
* The default implementation unregisters the p
roperty change listener
*
for the passed JLayer component
.
* The default implementation unregisters the p
assed {@code JLayer} component
*
as a {@code PropertyChangeListener} for the property changes of this {@code LayerUI}
.
*
* @param c the component from which this UI delegate is being removed.
*/
...
...
src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java
浏览文件 @
4e203d7a
...
...
@@ -196,6 +196,10 @@ public class BasicMenuUI extends BasicMenuItemUI
return
getHandler
();
}
protected
MenuKeyListener
createMenuKeyListener
(
JComponent
c
)
{
return
(
MenuKeyListener
)
getHandler
();
}
public
Dimension
getMaximumSize
(
JComponent
c
)
{
if
(((
JMenu
)
menuItem
).
isTopLevelMenu
()
==
true
)
{
Dimension
d
=
c
.
getPreferredSize
();
...
...
@@ -397,7 +401,7 @@ public class BasicMenuUI extends BasicMenuItemUI
public
void
stateChanged
(
ChangeEvent
e
)
{
}
}
private
class
Handler
extends
BasicMenuItemUI
.
Handler
{
private
class
Handler
extends
BasicMenuItemUI
.
Handler
implements
MenuKeyListener
{
//
// PropertyChangeListener
//
...
...
@@ -580,5 +584,48 @@ public class BasicMenuUI extends BasicMenuItemUI
}
public
void
menuDragMouseExited
(
MenuDragMouseEvent
e
)
{}
public
void
menuDragMouseReleased
(
MenuDragMouseEvent
e
)
{}
//
// MenuKeyListener
//
/**
* Open the Menu
*/
public
void
menuKeyTyped
(
MenuKeyEvent
e
)
{
if
(!
crossMenuMnemonic
&&
BasicPopupMenuUI
.
getLastPopup
()
!=
null
)
{
// when crossMenuMnemonic is not set, we don't open a toplevel
// menu if another toplevel menu is already open
return
;
}
if
(
BasicPopupMenuUI
.
getPopups
().
size
()
!=
0
)
{
//Fix 6939261: to return in case not on the main menu
//and has a pop-up.
//after return code will be handled in BasicPopupMenuUI.java
return
;
}
char
key
=
Character
.
toLowerCase
((
char
)
menuItem
.
getMnemonic
());
MenuElement
path
[]
=
e
.
getPath
();
if
(
key
==
Character
.
toLowerCase
(
e
.
getKeyChar
()))
{
JPopupMenu
popupMenu
=
((
JMenu
)
menuItem
).
getPopupMenu
();
ArrayList
newList
=
new
ArrayList
(
Arrays
.
asList
(
path
));
newList
.
add
(
popupMenu
);
MenuElement
subs
[]
=
popupMenu
.
getSubElements
();
MenuElement
sub
=
BasicPopupMenuUI
.
findEnabledChild
(
subs
,
-
1
,
true
);
if
(
sub
!=
null
)
{
newList
.
add
(
sub
);
}
MenuSelectionManager
manager
=
e
.
getMenuSelectionManager
();
MenuElement
newPath
[]
=
new
MenuElement
[
0
];;
newPath
=
(
MenuElement
[])
newList
.
toArray
(
newPath
);
manager
.
setSelectedPath
(
newPath
);
e
.
consume
();
}
}
public
void
menuKeyPressed
(
MenuKeyEvent
e
)
{}
public
void
menuKeyReleased
(
MenuKeyEvent
e
)
{}
}
}
src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java
浏览文件 @
4e203d7a
...
...
@@ -81,17 +81,26 @@ public class MetalScrollPaneUI extends BasicScrollPaneUI
}
}
public
void
installListeners
(
JScrollPane
scrollPane
)
{
super
.
installListeners
(
scrollPane
);
scrollBarSwapListener
=
createScrollBarSwapListener
();
scrollPane
.
addPropertyChangeListener
(
scrollBarSwapListener
);
}
/**
* {@inheritDoc}
*/
protected
void
uninstallListeners
(
JComponent
c
)
{
super
.
uninstallListeners
(
c
);
c
.
removePropertyChangeListener
(
scrollBarSwapListener
);
}
/**
* @deprecated - Replaced by {@link #uninstallListeners(JComponent)}
*/
@Deprecated
public
void
uninstallListeners
(
JScrollPane
scrollPane
)
{
super
.
uninstallListeners
(
scrollPane
);
scrollPane
.
removePropertyChangeListener
(
scrollBarSwapListener
);
}
...
...
src/share/classes/sun/awt/AWTAccessor.java
浏览文件 @
4e203d7a
...
...
@@ -223,6 +223,16 @@ public final class AWTAccessor {
void
processEvent
(
Component
comp
,
AWTEvent
e
);
}
/*
* An interface of accessor for the java.awt.Container class.
*/
public
interface
ContainerAccessor
{
/**
* Validates the container unconditionally.
*/
void
validateUnconditionally
(
Container
cont
);
}
/*
* An interface of accessor for java.awt.Window class.
*/
...
...
@@ -334,6 +344,10 @@ public final class AWTAccessor {
* Gets the state of this frame.
*/
int
getExtendedState
(
Frame
frame
);
/*
* Gets the maximized bounds of this frame.
*/
Rectangle
getMaximizedBounds
(
Frame
frame
);
}
/*
...
...
@@ -440,53 +454,19 @@ public final class AWTAccessor {
}
/*
* The java.awt.Component class accessor object.
* Accessor instances are initialized in the static initializers of
* corresponding AWT classes by using setters defined below.
*/
private
static
ComponentAccessor
componentAccessor
;
/*
* The java.awt.Window class accessor object.
*/
private
static
ContainerAccessor
containerAccessor
;
private
static
WindowAccessor
windowAccessor
;
/*
* The java.awt.AWTEvent class accessor object.
*/
private
static
AWTEventAccessor
awtEventAccessor
;
/*
* The java.awt.event.InputEvent class accessor object.
*/
private
static
InputEventAccessor
inputEventAccessor
;
/*
* The java.awt.Frame class accessor object.
*/
private
static
FrameAccessor
frameAccessor
;
/*
* The java.awt.KeyboardFocusManager class accessor object.
*/
private
static
KeyboardFocusManagerAccessor
kfmAccessor
;
/*
* The java.awt.MenuComponent class accessor object.
*/
private
static
MenuComponentAccessor
menuComponentAccessor
;
/*
* The java.awt.EventQueue class accessor object.
*/
private
static
EventQueueAccessor
eventQueueAccessor
;
/*
* The java.awt.PopupMenu class accessor object.
*/
private
static
PopupMenuAccessor
popupMenuAccessor
;
/*
* The java.awt.FileDialog class accessor object.
*/
private
static
FileDialogAccessor
fileDialogAccessor
;
/*
...
...
@@ -497,7 +477,7 @@ public final class AWTAccessor {
}
/*
* Retrieve the accessor object for the java.awt.
Window
class.
* Retrieve the accessor object for the java.awt.
Component
class.
*/
public
static
ComponentAccessor
getComponentAccessor
()
{
if
(
componentAccessor
==
null
)
{
...
...
@@ -507,6 +487,24 @@ public final class AWTAccessor {
return
componentAccessor
;
}
/*
* Set an accessor object for the java.awt.Container class.
*/
public
static
void
setContainerAccessor
(
ContainerAccessor
ca
)
{
containerAccessor
=
ca
;
}
/*
* Retrieve the accessor object for the java.awt.Container class.
*/
public
static
ContainerAccessor
getContainerAccessor
()
{
if
(
containerAccessor
==
null
)
{
unsafe
.
ensureClassInitialized
(
Container
.
class
);
}
return
containerAccessor
;
}
/*
* Set an accessor object for the java.awt.Window class.
*/
...
...
src/share/classes/sun/io/ByteToCharCp833.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package
sun.io
;
import
sun.nio.cs.ext.IBM833
;
public
class
ByteToCharCp833
extends
ByteToCharSingleByte
{
private
final
static
IBM833
nioCoder
=
new
IBM833
();
public
String
getCharacterEncoding
()
{
return
"Cp833"
;
}
public
ByteToCharCp833
()
{
super
.
byteToCharTable
=
nioCoder
.
getDecoderSingleByteMappings
();
}
}
src/share/classes/sun/io/CharToByteCp833.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package
sun.io
;
import
sun.nio.cs.ext.IBM833
;
public
class
CharToByteCp833
extends
CharToByteSingleByte
{
private
final
static
IBM833
nioCoder
=
new
IBM833
();
public
String
getCharacterEncoding
()
{
return
"Cp833"
;
}
public
CharToByteCp833
()
{
super
.
mask1
=
0xFF00
;
super
.
mask2
=
0x00FF
;
super
.
shift
=
8
;
super
.
index1
=
nioCoder
.
getEncoderIndex1
();
super
.
index2
=
nioCoder
.
getEncoderIndex2
();
}
}
src/share/classes/sun/io/CharacterEncoding.java
浏览文件 @
4e203d7a
/*
* Copyright (c) 1996, 20
06
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 20
10
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -406,6 +406,11 @@ public class CharacterEncoding {
aliasTable
.
put
(
"cp775"
,
"Cp775"
);
aliasTable
.
put
(
"775"
,
"Cp775"
);
aliasTable
.
put
(
"ibm833"
,
"Cp833"
);
aliasTable
.
put
(
"ibm-833"
,
"Cp833"
);
aliasTable
.
put
(
"cp833"
,
"Cp833"
);
aliasTable
.
put
(
"833"
,
"Cp833"
);
aliasTable
.
put
(
"ibm834"
,
"Cp834"
);
aliasTable
.
put
(
"ibm-834"
,
"Cp834"
);
aliasTable
.
put
(
"cp834"
,
"Cp834"
);
...
...
src/share/classes/sun/launcher/LauncherHelper.java
浏览文件 @
4e203d7a
...
...
@@ -44,8 +44,16 @@ import java.io.IOException;
import
java.io.PrintStream
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Modifier
;
import
java.math.BigDecimal
;
import
java.math.MathContext
;
import
java.math.RoundingMode
;
import
java.util.ResourceBundle
;
import
java.text.MessageFormat
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.Properties
;
import
java.util.jar.Attributes
;
import
java.util.jar.JarFile
;
import
java.util.jar.Manifest
;
...
...
@@ -59,6 +67,17 @@ public enum LauncherHelper {
private
static
StringBuilder
outBuf
=
new
StringBuilder
();
private
static
ResourceBundle
javarb
=
null
;
private
static
final
String
INDENT
=
" "
;
private
static
final
String
VM_SETTINGS
=
"VM settings:"
;
private
static
final
String
PROP_SETTINGS
=
"Property settings:"
;
private
static
final
String
LOCALE_SETTINGS
=
"Locale settings:"
;
private
static
final
long
K
=
1024
;
private
static
final
long
M
=
K
*
K
;
private
static
final
long
G
=
M
*
K
;
private
static
final
long
T
=
G
*
K
;
private
static
synchronized
ResourceBundle
getLauncherResourceBundle
()
{
if
(
javarb
==
null
)
{
javarb
=
ResourceBundle
.
getBundle
(
defaultBundleName
);
...
...
@@ -66,6 +85,184 @@ public enum LauncherHelper {
return
javarb
;
}
/*
* A method called by the launcher to print out the standard settings,
* by default -XshowSettings is equivalent to -XshowSettings:all,
* Specific information may be gotten by using suboptions with possible
* values vm, properties and locale.
*
* printToStderr: choose between stdout and stderr
*
* optionFlag: specifies which options to print default is all other
* possible values are vm, properties, locale.
*
* maxHeapSize: in bytes, as set by the launcher, a zero-value indicates
* this code should determine this value, using a suitable method.
*
* stackSize: in bytes, as set by the launcher, a zero-value indicates
* this code determine this value, using a suitable method.
*/
static
void
showSettings
(
boolean
printToStderr
,
String
optionFlag
,
long
maxHeapSize
,
long
stackSize
,
boolean
isServer
)
{
PrintStream
ostream
=
(
printToStderr
)
?
System
.
err
:
System
.
out
;
String
opts
[]
=
optionFlag
.
split
(
":"
);
String
optStr
=
(
opts
.
length
>
1
&&
opts
[
1
]
!=
null
)
?
opts
[
1
].
trim
()
:
"all"
;
switch
(
optStr
)
{
case
"vm"
:
printVmSettings
(
ostream
,
maxHeapSize
,
stackSize
,
isServer
);
break
;
case
"properties"
:
printProperties
(
ostream
);
break
;
case
"locale"
:
printLocale
(
ostream
);
break
;
default
:
printVmSettings
(
ostream
,
maxHeapSize
,
stackSize
,
isServer
);
printProperties
(
ostream
);
printLocale
(
ostream
);
break
;
}
}
/*
* prints the main vm settings subopt/section
*/
private
static
void
printVmSettings
(
PrintStream
ostream
,
long
maxHeapSize
,
long
stackSize
,
boolean
isServer
)
{
ostream
.
println
(
VM_SETTINGS
);
if
(
stackSize
!=
0L
)
{
ostream
.
println
(
INDENT
+
"Stack Size: "
+
scaleValue
(
stackSize
));
}
if
(
maxHeapSize
!=
0L
)
{
ostream
.
println
(
INDENT
+
"Max. Heap Size: "
+
scaleValue
(
maxHeapSize
));
}
else
{
ostream
.
println
(
INDENT
+
"Max. Heap Size (Estimated): "
+
scaleValue
(
Runtime
.
getRuntime
().
maxMemory
()));
}
ostream
.
println
(
INDENT
+
"Ergonomics Machine Class: "
+
((
isServer
)
?
"server"
:
"client"
));
ostream
.
println
(
INDENT
+
"Using VM: "
+
System
.
getProperty
(
"java.vm.name"
));
ostream
.
println
();
}
/*
* scale the incoming values to a human readable form, represented as
* K, M, G and T, see java.c parse_size for the scaled values and
* suffixes.
*/
private
static
String
scaleValue
(
double
v
)
{
MathContext
mc2
=
new
MathContext
(
3
,
RoundingMode
.
HALF_EVEN
);
if
(
v
>=
K
&&
v
<
M
)
{
return
(
new
BigDecimal
(
v
/
K
,
mc2
)).
toPlainString
()
+
"K"
;
}
else
if
(
v
>=
M
&&
v
<
G
)
{
return
(
new
BigDecimal
(
v
/
M
,
mc2
)).
toPlainString
()
+
"M"
;
}
else
if
(
v
>=
G
&&
v
<
T
)
{
return
(
new
BigDecimal
(
v
/
G
,
mc2
)).
toPlainString
()
+
"G"
;
}
else
if
(
v
>=
T
)
{
return
(
new
BigDecimal
(
v
/
T
,
mc2
)).
toPlainString
()
+
"T"
;
}
else
{
return
String
.
format
(
"%.0f"
,
v
);
}
}
/*
* prints the properties subopt/section
*/
private
static
void
printProperties
(
PrintStream
ostream
)
{
Properties
p
=
System
.
getProperties
();
ostream
.
println
(
PROP_SETTINGS
);
List
<
String
>
sortedPropertyKeys
=
new
ArrayList
<>();
sortedPropertyKeys
.
addAll
(
p
.
stringPropertyNames
());
Collections
.
sort
(
sortedPropertyKeys
);
for
(
String
x
:
sortedPropertyKeys
)
{
printPropertyValue
(
ostream
,
x
,
p
.
getProperty
(
x
));
}
ostream
.
println
();
}
private
static
boolean
isPath
(
String
key
)
{
return
key
.
endsWith
(
".dirs"
)
||
key
.
endsWith
(
".path"
);
}
private
static
void
printPropertyValue
(
PrintStream
ostream
,
String
key
,
String
value
)
{
ostream
.
print
(
INDENT
+
key
+
" = "
);
if
(
key
.
equals
(
"line.separator"
))
{
byte
[]
bytes
=
value
.
getBytes
();
for
(
byte
b
:
bytes
)
{
switch
(
b
)
{
case
0xd
:
ostream
.
print
(
"CR "
);
break
;
case
0xa
:
ostream
.
print
(
"LF "
);
break
;
default
:
ostream
.
printf
(
"0x%02X"
,
b
&
0xff
);
break
;
}
}
ostream
.
println
();
return
;
}
if
(!
isPath
(
key
))
{
ostream
.
println
(
value
);
return
;
}
// pretty print the path values as a list
String
[]
values
=
value
.
split
(
System
.
getProperty
(
"path.separator"
));
int
len
=
values
.
length
;
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
if
(
i
==
0
)
{
// first line treated specially
ostream
.
println
(
values
[
i
]);
}
else
{
// following lines prefix with indents
ostream
.
print
(
INDENT
+
INDENT
);
ostream
.
println
(
values
[
i
]);
}
}
}
/*
* prints the locale subopt/section
*/
private
static
void
printLocale
(
PrintStream
ostream
)
{
Locale
locale
=
Locale
.
getDefault
();
ostream
.
println
(
LOCALE_SETTINGS
);
ostream
.
println
(
INDENT
+
"default locale = "
+
locale
.
getDisplayLanguage
());
printLocales
(
ostream
);
ostream
.
println
();
}
private
static
void
printLocales
(
PrintStream
ostream
)
{
Locale
[]
locales
=
Locale
.
getAvailableLocales
();
final
int
len
=
locales
==
null
?
0
:
locales
.
length
;
if
(
len
<
1
)
{
return
;
}
ostream
.
print
(
INDENT
+
"available locales = "
);
final
int
last
=
len
-
1
;
for
(
int
i
=
0
;
i
<
last
;
i
++)
{
ostream
.
print
(
locales
[
i
]);
if
(
i
!=
last
)
{
ostream
.
print
(
", "
);
}
// print columns of 8
if
((
i
+
1
)
%
8
==
0
)
{
ostream
.
println
();
ostream
.
print
(
INDENT
+
INDENT
);
}
}
ostream
.
println
(
locales
[
last
]);
}
/**
* A private helper method to get a localized message and also
* apply any arguments that we might pass.
...
...
src/share/classes/sun/launcher/resources/launcher.properties
浏览文件 @
4e203d7a
#
# Copyright (c) 2007, 20
08
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2007, 20
10
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -97,7 +97,15 @@ java.launcher.X.usage=\
\
-Xcheck:jni perform additional checks for JNI functions
\n\
\
-Xshare:off do not attempt to use shared class data
\n\
\
-Xshare:auto use shared class data if possible (default)
\n\
\
-Xshare:on require using shared class data, otherwise fail.
\n\n\
\
-Xshare:on require using shared class data, otherwise fail.
\n\
\
-XshowSettings show all settings and continue
\n\
\
-XshowSettings:all
\n\
\
show all settings and continue
\n\
\
-XshowSettings:vm show all vm related settings and continue
\n\
\
-XshowSettings:properties
\n\
\
show all property settings and continue
\n\
\
-XshowSettings:locale
\n\
\
show all locale related settings and continue
\n\n\
The -X options are non-standard and subject to change without notice.
\n
java.launcher.cls.error1
=
\
...
...
src/share/classes/sun/net/httpserver/ChunkedInputStream.java
浏览文件 @
4e203d7a
...
...
@@ -110,6 +110,7 @@ class ChunkedInputStream extends LeftOverInputStream {
if
(
remaining
==
0
)
{
eof
=
true
;
consumeCRLF
();
t
.
getServerImpl
().
requestCompleted
(
t
.
getConnection
());
return
-
1
;
}
needToReadHeader
=
false
;
...
...
src/share/classes/sun/net/httpserver/Event.java
浏览文件 @
4e203d7a
...
...
@@ -40,5 +40,7 @@ class Event {
class
WriteFinishedEvent
extends
Event
{
WriteFinishedEvent
(
ExchangeImpl
t
)
{
super
(
t
);
assert
!
t
.
writefinished
;
t
.
writefinished
=
true
;
}
}
src/share/classes/sun/net/httpserver/ExchangeImpl.java
浏览文件 @
4e203d7a
...
...
@@ -38,6 +38,7 @@ class ExchangeImpl {
Headers
reqHdrs
,
rspHdrs
;
Request
req
;
String
method
;
boolean
writefinished
;
URI
uri
;
HttpConnection
connection
;
long
reqContentLen
;
...
...
src/share/classes/sun/net/httpserver/FixedLengthInputStream.java
浏览文件 @
4e203d7a
...
...
@@ -56,6 +56,9 @@ class FixedLengthInputStream extends LeftOverInputStream {
int
n
=
in
.
read
(
b
,
off
,
len
);
if
(
n
>
-
1
)
{
remaining
-=
n
;
if
(
remaining
==
0
)
{
t
.
getServerImpl
().
requestCompleted
(
t
.
getConnection
());
}
}
return
n
;
}
...
...
src/share/classes/sun/net/httpserver/HttpConnection.java
浏览文件 @
4e203d7a
...
...
@@ -55,10 +55,15 @@ class HttpConnection {
SelectionKey
selectionKey
;
String
protocol
;
long
time
;
volatile
long
creationTime
;
// time this connection was created
volatile
long
rspStartedTime
;
// time we started writing the response
int
remaining
;
boolean
closed
=
false
;
Logger
logger
;
public
enum
State
{
IDLE
,
REQUEST
,
RESPONSE
};
volatile
State
state
;
public
String
toString
()
{
String
s
=
null
;
if
(
chan
!=
null
)
{
...
...
@@ -78,6 +83,14 @@ class HttpConnection {
context
=
ctx
;
}
State
getState
()
{
return
state
;
}
void
setState
(
State
s
)
{
state
=
s
;
}
void
setParameters
(
InputStream
in
,
OutputStream
rawout
,
SocketChannel
chan
,
SSLEngine
engine
,
SSLStreams
sslStreams
,
SSLContext
sslContext
,
String
protocol
,
...
...
src/share/classes/sun/net/httpserver/Request.java
浏览文件 @
4e203d7a
...
...
@@ -201,32 +201,22 @@ class Request {
static
class
ReadStream
extends
InputStream
{
SocketChannel
channel
;
SelectorCache
sc
;
Selector
selector
;
ByteBuffer
chanbuf
;
SelectionKey
key
;
int
available
;
byte
[]
one
;
boolean
closed
=
false
,
eof
=
false
;
private
boolean
closed
=
false
,
eof
=
false
;
ByteBuffer
markBuf
;
/* reads may be satisifed from this buffer */
boolean
marked
;
boolean
reset
;
int
readlimit
;
static
long
readTimeout
;
ServerImpl
server
;
static
{
readTimeout
=
ServerConfig
.
getReadTimeout
();
}
final
static
int
BUFSIZE
=
8
*
1024
;
public
ReadStream
(
ServerImpl
server
,
SocketChannel
chan
)
throws
IOException
{
this
.
channel
=
chan
;
this
.
server
=
server
;
sc
=
SelectorCache
.
getSelectorCache
();
selector
=
sc
.
getSelector
();
chanbuf
=
ByteBuffer
.
allocate
(
8
*
1024
);
key
=
chan
.
register
(
selector
,
SelectionKey
.
OP_READ
);
available
=
0
;
chanbuf
=
ByteBuffer
.
allocate
(
BUFSIZE
);
chanbuf
.
clear
();
one
=
new
byte
[
1
];
closed
=
marked
=
reset
=
false
;
}
...
...
@@ -255,6 +245,12 @@ class Request {
return
-
1
;
}
assert
channel
.
isBlocking
();
if
(
off
<
0
||
srclen
<
0
||
srclen
>
(
b
.
length
-
off
))
{
throw
new
IndexOutOfBoundsException
();
}
if
(
reset
)
{
/* satisfy from markBuf */
canreturn
=
markBuf
.
remaining
();
willreturn
=
canreturn
>
srclen
?
srclen
:
canreturn
;
...
...
@@ -263,17 +259,19 @@ class Request {
reset
=
false
;
}
}
else
{
/* satisfy from channel */
canreturn
=
available
();
while
(
canreturn
==
0
&&
!
eof
)
{
block
();
canreturn
=
available
();
chanbuf
.
clear
();
if
(
srclen
<
BUFSIZE
)
{
chanbuf
.
limit
(
srclen
);
}
if
(
eof
)
{
do
{
willreturn
=
channel
.
read
(
chanbuf
);
}
while
(
willreturn
==
0
);
if
(
willreturn
==
-
1
)
{
eof
=
true
;
return
-
1
;
}
willreturn
=
canreturn
>
srclen
?
srclen
:
canreturn
;
chanbuf
.
flip
()
;
chanbuf
.
get
(
b
,
off
,
willreturn
);
available
-=
willreturn
;
if
(
marked
)
{
/* copy into markBuf */
try
{
...
...
@@ -286,6 +284,11 @@ class Request {
return
willreturn
;
}
public
boolean
markSupported
()
{
return
true
;
}
/* Does not query the OS socket */
public
synchronized
int
available
()
throws
IOException
{
if
(
closed
)
throw
new
IOException
(
"Stream is closed"
);
...
...
@@ -296,36 +299,7 @@ class Request {
if
(
reset
)
return
markBuf
.
remaining
();
if
(
available
>
0
)
return
available
;
chanbuf
.
clear
();
available
=
channel
.
read
(
chanbuf
);
if
(
available
>
0
)
{
chanbuf
.
flip
();
}
else
if
(
available
==
-
1
)
{
eof
=
true
;
available
=
0
;
}
return
available
;
}
/**
* block() only called when available==0 and buf is empty
*/
private
synchronized
void
block
()
throws
IOException
{
long
currtime
=
server
.
getTime
();
long
maxtime
=
currtime
+
readTimeout
;
while
(
currtime
<
maxtime
)
{
if
(
selector
.
select
(
readTimeout
)
==
1
)
{
selector
.
selectedKeys
().
clear
();
available
();
return
;
}
currtime
=
server
.
getTime
();
}
throw
new
SocketTimeoutException
(
"no data received"
);
return
chanbuf
.
remaining
();
}
public
void
close
()
throws
IOException
{
...
...
@@ -333,8 +307,6 @@ class Request {
return
;
}
channel
.
close
();
selector
.
selectNow
();
sc
.
freeSelector
(
selector
);
closed
=
true
;
}
...
...
@@ -362,23 +334,14 @@ class Request {
SocketChannel
channel
;
ByteBuffer
buf
;
SelectionKey
key
;
SelectorCache
sc
;
Selector
selector
;
boolean
closed
;
byte
[]
one
;
ServerImpl
server
;
static
long
writeTimeout
;
static
{
writeTimeout
=
ServerConfig
.
getWriteTimeout
();
}
public
WriteStream
(
ServerImpl
server
,
SocketChannel
channel
)
throws
IOException
{
this
.
channel
=
channel
;
this
.
server
=
server
;
sc
=
SelectorCache
.
getSelectorCache
();
selector
=
sc
.
getSelector
();
key
=
channel
.
register
(
selector
,
SelectionKey
.
OP_WRITE
);
assert
channel
.
isBlocking
();
closed
=
false
;
one
=
new
byte
[
1
];
buf
=
ByteBuffer
.
allocate
(
4096
);
...
...
@@ -411,31 +374,14 @@ class Request {
l
-=
n
;
if
(
l
==
0
)
return
;
block
();
}
}
void
block
()
throws
IOException
{
long
currtime
=
server
.
getTime
();
long
maxtime
=
currtime
+
writeTimeout
;
while
(
currtime
<
maxtime
)
{
if
(
selector
.
select
(
writeTimeout
)
==
1
)
{
selector
.
selectedKeys
().
clear
();
return
;
}
currtime
=
server
.
getTime
();
}
throw
new
SocketTimeoutException
(
"write blocked too long"
);
}
public
void
close
()
throws
IOException
{
if
(
closed
)
return
;
//server.logStackTrace ("Request.OS.close: isOpen="+channel.isOpen());
channel
.
close
();
selector
.
selectNow
();
sc
.
freeSelector
(
selector
);
closed
=
true
;
}
}
...
...
src/share/classes/sun/net/httpserver/SSLStreams.java
浏览文件 @
4e203d7a
...
...
@@ -53,8 +53,6 @@ class SSLStreams {
EngineWrapper
wrapper
;
OutputStream
os
;
InputStream
is
;
static
long
readTimeout
=
ServerConfig
.
getReadTimeout
();
static
long
writeTimeout
=
ServerConfig
.
getWriteTimeout
();
/* held by thread doing the hand-shake on this connection */
Lock
handshaking
=
new
ReentrantLock
();
...
...
@@ -77,10 +75,13 @@ class SSLStreams {
if
(
cfg
!=
null
)
{
Parameters
params
=
new
Parameters
(
cfg
,
addr
);
cfg
.
configure
(
params
);
//BEGIN_TIGER_EXCLUDE
SSLParameters
sslParams
=
params
.
getSSLParameters
();
if
(
sslParams
!=
null
)
{
engine
.
setSSLParameters
(
sslParams
);
}
else
{
}
else
//END_TIGER_EXCLUDE
{
/* tiger compatibility */
if
(
params
.
getCipherSuites
()
!=
null
)
{
try
{
...
...
@@ -104,7 +105,6 @@ class SSLStreams {
class
Parameters
extends
HttpsParameters
{
InetSocketAddress
addr
;
SSLParameters
params
;
HttpsConfigurator
cfg
;
Parameters
(
HttpsConfigurator
cfg
,
InetSocketAddress
addr
)
{
...
...
@@ -117,12 +117,15 @@ class SSLStreams {
public
HttpsConfigurator
getHttpsConfigurator
()
{
return
cfg
;
}
//BEGIN_TIGER_EXCLUDE
SSLParameters
params
;
public
void
setSSLParameters
(
SSLParameters
p
)
{
params
=
p
;
}
SSLParameters
getSSLParameters
()
{
return
params
;
}
//END_TIGER_EXCLUDE
}
/**
...
...
@@ -245,9 +248,6 @@ class SSLStreams {
SocketChannel
chan
;
SSLEngine
engine
;
SelectorCache
sc
;
Selector
write_selector
,
read_selector
;
SelectionKey
wkey
,
rkey
;
Object
wrapLock
,
unwrapLock
;
ByteBuffer
unwrap_src
,
wrap_dst
;
boolean
closed
=
false
;
...
...
@@ -260,16 +260,9 @@ class SSLStreams {
unwrapLock
=
new
Object
();
unwrap_src
=
allocate
(
BufType
.
PACKET
);
wrap_dst
=
allocate
(
BufType
.
PACKET
);
sc
=
SelectorCache
.
getSelectorCache
();
write_selector
=
sc
.
getSelector
();
wkey
=
chan
.
register
(
write_selector
,
SelectionKey
.
OP_WRITE
);
read_selector
=
sc
.
getSelector
();
wkey
=
chan
.
register
(
read_selector
,
SelectionKey
.
OP_READ
);
}
void
close
()
throws
IOException
{
sc
.
freeSelector
(
write_selector
);
sc
.
freeSelector
(
read_selector
);
}
/* try to wrap and send the data in src. Handles OVERFLOW.
...
...
@@ -304,15 +297,7 @@ class SSLStreams {
wrap_dst
.
flip
();
int
l
=
wrap_dst
.
remaining
();
assert
l
==
r
.
result
.
bytesProduced
();
long
currtime
=
time
.
getTime
();
long
maxtime
=
currtime
+
writeTimeout
;
while
(
l
>
0
)
{
write_selector
.
select
(
writeTimeout
);
// timeout
currtime
=
time
.
getTime
();
if
(
currtime
>
maxtime
)
{
throw
new
SocketTimeoutException
(
"write timed out"
);
}
write_selector
.
selectedKeys
().
clear
();
l
-=
chan
.
write
(
wrap_dst
);
}
}
...
...
@@ -342,20 +327,12 @@ class SSLStreams {
needData
=
true
;
}
synchronized
(
unwrapLock
)
{
int
x
,
y
;
int
x
;
do
{
if
(
needData
)
{
long
currTime
=
time
.
getTime
();
long
maxtime
=
currTime
+
readTimeout
;
do
{
if
(
currTime
>
maxtime
)
{
throw
new
SocketTimeoutException
(
"read timedout"
);
}
y
=
read_selector
.
select
(
readTimeout
);
currTime
=
time
.
getTime
();
}
while
(
y
!=
1
);
read_selector
.
selectedKeys
().
clear
();
x
=
chan
.
read
(
unwrap_src
);
}
while
(
x
==
0
);
if
(
x
==
-
1
)
{
throw
new
IOException
(
"connection closed for reading"
);
}
...
...
src/share/classes/sun/net/httpserver/SelectorCache.java
已删除
100644 → 0
浏览文件 @
1941e844
/*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package
sun.net.httpserver
;
import
java.util.*
;
import
java.nio.*
;
import
java.net.*
;
import
java.io.*
;
import
java.security.*
;
import
java.nio.channels.*
;
/*
* Implements a cache of java.nio.channels.Selector
* where Selectors are allocated on demand and placed
* in a temporary cache for a period of time, so they
* can be reused. If a period of between 2 and 4 minutes
* elapses without being used, then they are closed.
*/
public
class
SelectorCache
{
static
SelectorCache
cache
=
null
;
private
SelectorCache
()
{
freeSelectors
=
new
LinkedList
<
SelectorWrapper
>();
CacheCleaner
c
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
CacheCleaner
>()
{
public
CacheCleaner
run
()
{
CacheCleaner
cleaner
=
new
CacheCleaner
();
cleaner
.
setDaemon
(
true
);
return
cleaner
;
}
});
c
.
start
();
}
/**
* factory method for creating single instance
*/
public
static
SelectorCache
getSelectorCache
()
{
synchronized
(
SelectorCache
.
class
)
{
if
(
cache
==
null
)
{
cache
=
new
SelectorCache
();
}
}
return
cache
;
}
private
static
class
SelectorWrapper
{
private
Selector
sel
;
private
boolean
deleteFlag
;
private
SelectorWrapper
(
Selector
sel
)
{
this
.
sel
=
sel
;
this
.
deleteFlag
=
false
;
}
public
Selector
getSelector
()
{
return
sel
;}
public
boolean
getDeleteFlag
()
{
return
deleteFlag
;}
public
void
setDeleteFlag
(
boolean
b
)
{
deleteFlag
=
b
;}
}
/* list of free selectors. Can be re-allocated for a period
* of time, after which if not allocated will be closed
* and removed from the list (by CacheCleaner thread)
*/
LinkedList
<
SelectorWrapper
>
freeSelectors
;
synchronized
Selector
getSelector
()
throws
IOException
{
SelectorWrapper
wrapper
=
null
;
Selector
selector
;
if
(
freeSelectors
.
size
()
>
0
)
{
wrapper
=
freeSelectors
.
remove
();
selector
=
wrapper
.
getSelector
();
}
else
{
selector
=
Selector
.
open
();
}
return
selector
;
}
synchronized
void
freeSelector
(
Selector
selector
)
{
freeSelectors
.
add
(
new
SelectorWrapper
(
selector
));
}
/* Thread ensures that entries on freeSelector list
* remain there for at least 2 minutes and no longer
* than 4 minutes.
*/
class
CacheCleaner
extends
Thread
{
public
void
run
()
{
long
timeout
=
ServerConfig
.
getSelCacheTimeout
()
*
1000
;
while
(
true
)
{
try
{
Thread
.
sleep
(
timeout
);
}
catch
(
Exception
e
)
{}
synchronized
(
freeSelectors
)
{
ListIterator
<
SelectorWrapper
>
l
=
freeSelectors
.
listIterator
();
while
(
l
.
hasNext
())
{
SelectorWrapper
w
=
l
.
next
();
if
(
w
.
getDeleteFlag
())
{
/* 2nd pass. Close the selector */
try
{
w
.
getSelector
().
close
();
}
catch
(
IOException
e
)
{}
l
.
remove
();
}
else
{
/* 1st pass. Set the flag */
w
.
setDeleteFlag
(
true
);
}
}
}
}
}
}
}
src/share/classes/sun/net/httpserver/ServerConfig.java
浏览文件 @
4e203d7a
...
...
@@ -27,6 +27,8 @@ package sun.net.httpserver;
import
com.sun.net.httpserver.*
;
import
com.sun.net.httpserver.spi.*
;
import
java.util.logging.Logger
;
import
java.security.PrivilegedAction
;
/**
* Parameters that users will not likely need to set
...
...
@@ -37,23 +39,26 @@ class ServerConfig {
static
int
clockTick
;
static
int
defaultClockTick
=
10000
;
// 10 sec.
static
final
int
DEFAULT_CLOCK_TICK
=
10000
;
// 10 sec.
/* These values must be a reasonable multiple of clockTick */
static
long
defaultReadTimeout
=
20
;
// 20 sec.
static
long
defaultWriteTimeout
=
60
;
// 60 sec.
static
long
defaultIdleInterval
=
300
;
// 5 min
static
long
defaultSelCacheTimeout
=
120
;
// seconds
static
int
defaultMaxIdleConnections
=
200
;
static
final
long
DEFAULT_IDLE_INTERVAL
=
300
;
// 5 min
static
final
int
DEFAULT_MAX_IDLE_CONNECTIONS
=
200
;
static
long
defaultDrainAmount
=
64
*
1024
;
static
final
long
DEFAULT_MAX_REQ_TIME
=
-
1
;
// default: forever
static
final
long
DEFAULT_MAX_RSP_TIME
=
-
1
;
// default: forever
static
final
long
DEFAULT_TIMER_MILLIS
=
1000
;
static
final
long
DEFAULT_DRAIN_AMOUNT
=
64
*
1024
;
static
long
readTimeout
;
static
long
writeTimeout
;
static
long
idleInterval
;
static
long
selCacheTimeout
;
static
long
drainAmount
;
// max # of bytes to drain from an inputstream
static
int
maxIdleConnections
;
// max time a request or response is allowed to take
static
long
maxReqTime
;
static
long
maxRspTime
;
static
long
timerMillis
;
static
boolean
debug
=
false
;
static
{
...
...
@@ -61,49 +66,79 @@ class ServerConfig {
idleInterval
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
new
sun
.
security
.
action
.
GetLongAction
(
"sun.net.httpserver.idleInterval"
,
defaultIdleInterval
))).
longValue
()
*
1000
;
DEFAULT_IDLE_INTERVAL
))).
longValue
()
*
1000
;
clockTick
=
((
Integer
)
java
.
security
.
AccessController
.
doPrivileged
(
new
sun
.
security
.
action
.
GetIntegerAction
(
"sun.net.httpserver.clockTick"
,
defaultClockTick
))).
intValue
();
DEFAULT_CLOCK_TICK
))).
intValue
();
maxIdleConnections
=
((
Integer
)
java
.
security
.
AccessController
.
doPrivileged
(
new
sun
.
security
.
action
.
GetIntegerAction
(
"sun.net.httpserver.maxIdleConnections"
,
defaultMaxIdleConnections
))).
intValue
();
DEFAULT_MAX_IDLE_CONNECTIONS
))).
intValue
();
readTimeou
t
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
drainAmoun
t
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
new
sun
.
security
.
action
.
GetLongAction
(
"sun.net.httpserver.
readTimeou
t"
,
defaultReadTimeout
))).
longValue
()*
1000
;
"sun.net.httpserver.
drainAmoun
t"
,
DEFAULT_DRAIN_AMOUNT
))).
longValue
()
;
selCacheTimeout
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
maxReqTime
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
new
sun
.
security
.
action
.
GetLongAction
(
"sun.net.httpserver.
selCacheTimeout
"
,
defaultSelCacheTimeout
))).
longValue
()*
1000
;
"sun.net.httpserver.
maxReqTime
"
,
DEFAULT_MAX_REQ_TIME
))).
longValue
()
;
writeTimeout
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
maxRspTime
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
new
sun
.
security
.
action
.
GetLongAction
(
"sun.net.httpserver.
writeTimeout
"
,
defaultWriteTimeout
))).
longValue
()*
1000
;
"sun.net.httpserver.
maxRspTime
"
,
DEFAULT_MAX_RSP_TIME
))).
longValue
()
;
drainAmount
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
timerMillis
=
((
Long
)
java
.
security
.
AccessController
.
doPrivileged
(
new
sun
.
security
.
action
.
GetLongAction
(
"sun.net.httpserver.
drainAmount
"
,
defaultDrainAmount
))).
longValue
();
"sun.net.httpserver.
timerMillis
"
,
DEFAULT_TIMER_MILLIS
))).
longValue
();
debug
=
((
Boolean
)
java
.
security
.
AccessController
.
doPrivileged
(
new
sun
.
security
.
action
.
GetBooleanAction
(
"sun.net.httpserver.debug"
))).
booleanValue
();
}
static
long
getReadTimeout
()
{
return
readTimeout
;
}
static
long
getSelCacheTimeout
()
{
return
selCacheTimeout
;
static
void
checkLegacyProperties
(
final
Logger
logger
)
{
// legacy properties that are no longer used
// print a warning to logger if they are set.
java
.
security
.
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
Void
>()
{
public
Void
run
()
{
if
(
System
.
getProperty
(
"sun.net.httpserver.readTimeout"
)
!=
null
)
{
logger
.
warning
(
"sun.net.httpserver.readTimeout "
+
"property is no longer used. "
+
"Use sun.net.httpserver.maxReqTime instead."
);
}
if
(
System
.
getProperty
(
"sun.net.httpserver.writeTimeout"
)
!=
null
)
{
logger
.
warning
(
"sun.net.httpserver.writeTimeout "
+
"property is no longer used. Use "
+
"sun.net.httpserver.maxRspTime instead."
);
}
if
(
System
.
getProperty
(
"sun.net.httpserver.selCacheTimeout"
)
!=
null
)
{
logger
.
warning
(
"sun.net.httpserver.selCacheTimeout "
+
"property is no longer used."
);
}
return
null
;
}
}
);
}
static
boolean
debugEnabled
()
{
...
...
@@ -122,11 +157,19 @@ class ServerConfig {
return
maxIdleConnections
;
}
static
long
getWriteTimeout
()
{
return
writeTimeout
;
}
static
long
getDrainAmount
()
{
return
drainAmount
;
}
static
long
getMaxReqTime
()
{
return
maxReqTime
;
}
static
long
getMaxRspTime
()
{
return
maxRspTime
;
}
static
long
getTimerMillis
()
{
return
timerMillis
;
}
}
src/share/classes/sun/net/httpserver/ServerImpl.java
浏览文件 @
4e203d7a
...
...
@@ -37,6 +37,7 @@ import java.util.logging.Level;
import
javax.net.ssl.*
;
import
com.sun.net.httpserver.*
;
import
com.sun.net.httpserver.spi.*
;
import
sun.net.httpserver.HttpConnection.State
;
/**
* Provides implementation for both HTTP and HTTPS
...
...
@@ -55,6 +56,12 @@ class ServerImpl implements TimeSource {
private
SelectionKey
listenerKey
;
private
Set
<
HttpConnection
>
idleConnections
;
private
Set
<
HttpConnection
>
allConnections
;
/* following two are used to keep track of the times
* when a connection/request is first received
* and when we start to send the response
*/
private
Set
<
HttpConnection
>
reqConnections
;
private
Set
<
HttpConnection
>
rspConnections
;
private
List
<
Event
>
events
;
private
Object
lolock
=
new
Object
();
private
volatile
boolean
finished
=
false
;
...
...
@@ -62,14 +69,19 @@ class ServerImpl implements TimeSource {
private
boolean
bound
=
false
;
private
boolean
started
=
false
;
private
volatile
long
time
;
/* current time */
private
volatile
long
subticks
=
0
;
private
volatile
long
ticks
;
/* number of clock ticks since server started */
private
HttpServer
wrapper
;
final
static
int
CLOCK_TICK
=
ServerConfig
.
getClockTick
();
final
static
long
IDLE_INTERVAL
=
ServerConfig
.
getIdleInterval
();
final
static
int
MAX_IDLE_CONNECTIONS
=
ServerConfig
.
getMaxIdleConnections
();
final
static
long
TIMER_MILLIS
=
ServerConfig
.
getTimerMillis
();
final
static
long
MAX_REQ_TIME
=
getTimeMillis
(
ServerConfig
.
getMaxReqTime
());
final
static
long
MAX_RSP_TIME
=
getTimeMillis
(
ServerConfig
.
getMaxRspTime
());
final
static
boolean
timer1Enabled
=
MAX_REQ_TIME
!=
-
1
||
MAX_RSP_TIME
!=
-
1
;
private
Timer
timer
;
private
Timer
timer
,
timer1
;
private
Logger
logger
;
ServerImpl
(
...
...
@@ -79,6 +91,7 @@ class ServerImpl implements TimeSource {
this
.
protocol
=
protocol
;
this
.
wrapper
=
wrapper
;
this
.
logger
=
Logger
.
getLogger
(
"com.sun.net.httpserver"
);
ServerConfig
.
checkLegacyProperties
(
logger
);
https
=
protocol
.
equalsIgnoreCase
(
"https"
);
this
.
address
=
addr
;
contexts
=
new
ContextList
();
...
...
@@ -94,9 +107,18 @@ class ServerImpl implements TimeSource {
dispatcher
=
new
Dispatcher
();
idleConnections
=
Collections
.
synchronizedSet
(
new
HashSet
<
HttpConnection
>());
allConnections
=
Collections
.
synchronizedSet
(
new
HashSet
<
HttpConnection
>());
reqConnections
=
Collections
.
synchronizedSet
(
new
HashSet
<
HttpConnection
>());
rspConnections
=
Collections
.
synchronizedSet
(
new
HashSet
<
HttpConnection
>());
time
=
System
.
currentTimeMillis
();
timer
=
new
Timer
(
"server-timer"
,
true
);
timer
.
schedule
(
new
ServerTimerTask
(),
CLOCK_TICK
,
CLOCK_TICK
);
if
(
timer1Enabled
)
{
timer1
=
new
Timer
(
"server-timer1"
,
true
);
timer1
.
schedule
(
new
ServerTimerTask1
(),
TIMER_MILLIS
,
TIMER_MILLIS
);
logger
.
config
(
"HttpServer timer1 enabled period in ms: "
+
TIMER_MILLIS
);
logger
.
config
(
"MAX_REQ_TIME: "
+
MAX_REQ_TIME
);
logger
.
config
(
"MAX_RSP_TIME: "
+
MAX_RSP_TIME
);
}
events
=
new
LinkedList
<
Event
>();
logger
.
config
(
"HttpServer created "
+
protocol
+
" "
+
addr
);
}
...
...
@@ -181,6 +203,9 @@ class ServerImpl implements TimeSource {
allConnections
.
clear
();
idleConnections
.
clear
();
timer
.
cancel
();
if
(
timer1Enabled
)
{
timer1
.
cancel
();
}
}
Dispatcher
dispatcher
;
...
...
@@ -236,13 +261,6 @@ class ServerImpl implements TimeSource {
}
}
int
resultSize
()
{
synchronized
(
lolock
)
{
return
events
.
size
();
}
}
/* main server listener task */
class
Dispatcher
implements
Runnable
{
...
...
@@ -257,7 +275,7 @@ class ServerImpl implements TimeSource {
if
(
terminating
&&
exchanges
==
0
)
{
finished
=
true
;
}
SocketChannel
chan
=
c
.
getChannel
(
);
responseCompleted
(
c
);
LeftOverInputStream
is
=
t
.
getOriginalInputStream
();
if
(!
is
.
isEOF
())
{
t
.
close
=
true
;
...
...
@@ -268,17 +286,10 @@ class ServerImpl implements TimeSource {
}
else
{
if
(
is
.
isDataBuffered
())
{
/* don't re-enable the interestops, just handle it */
requestStarted
(
c
);
handle
(
c
.
getChannel
(),
c
);
}
else
{
/* re-enable interestops */
SelectionKey
key
=
c
.
getSelectionKey
();
if
(
key
.
isValid
())
{
key
.
interestOps
(
key
.
interestOps
()|
SelectionKey
.
OP_READ
);
}
c
.
time
=
getTime
()
+
IDLE_INTERVAL
;
idleConnections
.
add
(
c
);
connsToRegister
.
add
(
c
);
}
}
}
...
...
@@ -290,21 +301,50 @@ class ServerImpl implements TimeSource {
}
}
final
LinkedList
<
HttpConnection
>
connsToRegister
=
new
LinkedList
<
HttpConnection
>();
void
reRegister
(
HttpConnection
c
)
{
/* re-register with selector */
try
{
SocketChannel
chan
=
c
.
getChannel
();
chan
.
configureBlocking
(
false
);
SelectionKey
key
=
chan
.
register
(
selector
,
SelectionKey
.
OP_READ
);
key
.
attach
(
c
);
c
.
selectionKey
=
key
;
c
.
time
=
getTime
()
+
IDLE_INTERVAL
;
idleConnections
.
add
(
c
);
}
catch
(
IOException
e
)
{
dprint
(
e
);
logger
.
log
(
Level
.
FINER
,
"Dispatcher(8)"
,
e
);
c
.
close
();
}
}
public
void
run
()
{
while
(!
finished
)
{
try
{
ListIterator
<
HttpConnection
>
li
=
connsToRegister
.
listIterator
();
for
(
HttpConnection
c
:
connsToRegister
)
{
reRegister
(
c
);
}
connsToRegister
.
clear
();
/* process the events list first */
while
(
resultSize
()
>
0
)
{
Event
r
;
List
<
Event
>
list
=
null
;
selector
.
select
(
1000
);
synchronized
(
lolock
)
{
r
=
events
.
remove
(
0
);
handleEvent
(
r
);
if
(
events
.
size
()
>
0
)
{
list
=
events
;
events
=
new
LinkedList
<
Event
>();
}
}
selector
.
select
(
1000
);
if
(
list
!=
null
)
{
for
(
Event
r:
list
)
{
handleEvent
(
r
);
}
}
/* process the selected list now */
...
...
@@ -327,6 +367,7 @@ class ServerImpl implements TimeSource {
c
.
selectionKey
=
newkey
;
c
.
setChannel
(
chan
);
newkey
.
attach
(
c
);
requestStarted
(
c
);
allConnections
.
add
(
c
);
}
else
{
try
{
...
...
@@ -334,27 +375,44 @@ class ServerImpl implements TimeSource {
boolean
closed
;
SocketChannel
chan
=
(
SocketChannel
)
key
.
channel
();
HttpConnection
conn
=
(
HttpConnection
)
key
.
attachment
();
// interestOps will be restored at end of read
key
.
interestOps
(
0
);
key
.
cancel
();
chan
.
configureBlocking
(
true
);
if
(
idleConnections
.
remove
(
conn
))
{
// was an idle connection so add it
// to reqConnections set.
requestStarted
(
conn
);
}
handle
(
chan
,
conn
);
}
else
{
assert
false
;
}
}
catch
(
CancelledKeyException
e
)
{
handleException
(
key
,
null
);
}
catch
(
IOException
e
)
{
HttpConnection
conn
=
(
HttpConnection
)
key
.
attachment
();
logger
.
log
(
Level
.
FINER
,
"Dispatcher (2)"
,
e
);
conn
.
close
();
handleException
(
key
,
e
);
}
}
}
// call the selector just to process the cancelled keys
selector
.
selectNow
();
}
catch
(
IOException
e
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (4)"
,
e
);
}
catch
(
Exception
e
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (3)"
,
e
);
e
.
printStackTrace
();
logger
.
log
(
Level
.
FINER
,
"Dispatcher (7)"
,
e
);
}
}
}
private
void
handleException
(
SelectionKey
key
,
Exception
e
)
{
HttpConnection
conn
=
(
HttpConnection
)
key
.
attachment
();
if
(
e
!=
null
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (2)"
,
e
);
}
closeConnection
(
conn
);
}
public
void
handle
(
SocketChannel
chan
,
HttpConnection
conn
)
throws
IOException
{
...
...
@@ -363,10 +421,10 @@ class ServerImpl implements TimeSource {
executor
.
execute
(
t
);
}
catch
(
HttpError
e1
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (4)"
,
e1
);
c
onn
.
close
(
);
c
loseConnection
(
conn
);
}
catch
(
IOException
e
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (5)"
,
e
);
c
onn
.
close
(
);
c
loseConnection
(
conn
);
}
}
}
...
...
@@ -390,6 +448,25 @@ class ServerImpl implements TimeSource {
return
logger
;
}
private
void
closeConnection
(
HttpConnection
conn
)
{
conn
.
close
();
allConnections
.
remove
(
conn
);
switch
(
conn
.
getState
())
{
case
REQUEST:
reqConnections
.
remove
(
conn
);
break
;
case
RESPONSE:
rspConnections
.
remove
(
conn
);
break
;
case
IDLE:
idleConnections
.
remove
(
conn
);
break
;
}
assert
!
reqConnections
.
remove
(
conn
);
assert
!
rspConnections
.
remove
(
conn
);
assert
!
idleConnections
.
remove
(
conn
);
}
/* per exchange task */
class
Exchange
implements
Runnable
{
...
...
@@ -450,8 +527,7 @@ class ServerImpl implements TimeSource {
requestLine
=
req
.
requestLine
();
if
(
requestLine
==
null
)
{
/* connection closed */
connection
.
close
();
allConnections
.
remove
(
connection
);
closeConnection
(
connection
);
return
;
}
int
space
=
requestLine
.
indexOf
(
' '
);
...
...
@@ -482,6 +558,9 @@ class ServerImpl implements TimeSource {
if
(
s
!=
null
)
{
clen
=
Long
.
parseLong
(
s
);
}
if
(
clen
==
0
)
{
requestCompleted
(
connection
);
}
}
ctx
=
contexts
.
findContext
(
protocol
,
uri
.
getPath
());
if
(
ctx
==
null
)
{
...
...
@@ -560,7 +639,7 @@ class ServerImpl implements TimeSource {
}
catch
(
IOException
e1
)
{
logger
.
log
(
Level
.
FINER
,
"ServerImpl.Exchange (1)"
,
e1
);
c
onnection
.
close
(
);
c
loseConnection
(
connection
);
}
catch
(
NumberFormatException
e3
)
{
reject
(
Code
.
HTTP_BAD_REQUEST
,
requestLine
,
"NumberFormatException thrown"
);
...
...
@@ -569,7 +648,7 @@ class ServerImpl implements TimeSource {
requestLine
,
"URISyntaxException thrown"
);
}
catch
(
Exception
e4
)
{
logger
.
log
(
Level
.
FINER
,
"ServerImpl.Exchange (2)"
,
e4
);
c
onnection
.
close
(
);
c
loseConnection
(
connection
);
}
}
...
...
@@ -591,47 +670,60 @@ class ServerImpl implements TimeSource {
rejected
=
true
;
logReply
(
code
,
requestStr
,
message
);
sendReply
(
code
,
tru
e
,
"<h1>"
+
code
+
Code
.
msg
(
code
)+
"</h1>"
+
message
code
,
fals
e
,
"<h1>"
+
code
+
Code
.
msg
(
code
)+
"</h1>"
+
message
);
/* connection is already closed by sendReply, now remove it */
allConnections
.
remove
(
connection
);
closeConnection
(
connection
);
}
void
sendReply
(
int
code
,
boolean
closeNow
,
String
text
)
{
try
{
String
s
=
"HTTP/1.1 "
+
code
+
Code
.
msg
(
code
)
+
"\r\n"
;
StringBuilder
builder
=
new
StringBuilder
(
512
);
builder
.
append
(
"HTTP/1.1 "
)
.
append
(
code
).
append
(
Code
.
msg
(
code
)).
append
(
"\r\n"
);
if
(
text
!=
null
&&
text
.
length
()
!=
0
)
{
s
=
s
+
"Content-Length: "
+
text
.
length
()+
"\r\n"
;
s
=
s
+
"Content-Type: text/html\r\n"
;
builder
.
append
(
"Content-Length: "
)
.
append
(
text
.
length
()).
append
(
"\r\n"
)
.
append
(
"Content-Type: text/html\r\n"
);
}
else
{
s
=
s
+
"Content-Length: 0\r\n"
;
builder
.
append
(
"Content-Length: 0\r\n"
)
;
text
=
""
;
}
if
(
closeNow
)
{
s
=
s
+
"Connection: close\r\n"
;
builder
.
append
(
"Connection: close\r\n"
)
;
}
s
=
s
+
"\r\n"
+
text
;
builder
.
append
(
"\r\n"
).
append
(
text
);
String
s
=
builder
.
toString
();
byte
[]
b
=
s
.
getBytes
(
"ISO8859_1"
);
rawout
.
write
(
b
);
rawout
.
flush
();
if
(
closeNow
)
{
c
onnection
.
close
(
);
c
loseConnection
(
connection
);
}
}
catch
(
IOException
e
)
{
logger
.
log
(
Level
.
FINER
,
"ServerImpl.sendReply"
,
e
);
c
onnection
.
close
(
);
c
loseConnection
(
connection
);
}
}
}
void
logReply
(
int
code
,
String
requestStr
,
String
text
)
{
if
(!
logger
.
isLoggable
(
Level
.
FINE
))
{
return
;
}
if
(
text
==
null
)
{
text
=
""
;
}
String
message
=
requestStr
+
" ["
+
code
+
" "
+
String
r
;
if
(
requestStr
.
length
()
>
80
)
{
r
=
requestStr
.
substring
(
0
,
80
)
+
"<TRUNCATED>"
;
}
else
{
r
=
requestStr
;
}
String
message
=
r
+
" ["
+
code
+
" "
+
Code
.
msg
(
code
)
+
"] ("
+
text
+
")"
;
logger
.
fine
(
message
);
}
...
...
@@ -667,6 +759,34 @@ class ServerImpl implements TimeSource {
return
wrapper
;
}
void
requestStarted
(
HttpConnection
c
)
{
c
.
creationTime
=
getTime
();
c
.
setState
(
State
.
REQUEST
);
reqConnections
.
add
(
c
);
}
// called after a request has been completely read
// by the server. This stops the timer which would
// close the connection if the request doesn't arrive
// quickly enough. It then starts the timer
// that ensures the client reads the response in a timely
// fashion.
void
requestCompleted
(
HttpConnection
c
)
{
assert
c
.
getState
()
==
State
.
REQUEST
;
reqConnections
.
remove
(
c
);
c
.
rspStartedTime
=
getTime
();
rspConnections
.
add
(
c
);
c
.
setState
(
State
.
RESPONSE
);
}
// called after response has been sent
void
responseCompleted
(
HttpConnection
c
)
{
assert
c
.
getState
()
==
State
.
RESPONSE
;
rspConnections
.
remove
(
c
);
c
.
setState
(
State
.
IDLE
);
}
/**
* TimerTask run every CLOCK_TICK ms
*/
...
...
@@ -689,4 +809,62 @@ class ServerImpl implements TimeSource {
}
}
}
class
ServerTimerTask1
extends
TimerTask
{
// runs every TIMER_MILLIS
public
void
run
()
{
LinkedList
<
HttpConnection
>
toClose
=
new
LinkedList
<
HttpConnection
>();
time
=
System
.
currentTimeMillis
();
synchronized
(
reqConnections
)
{
if
(
MAX_REQ_TIME
!=
-
1
)
{
for
(
HttpConnection
c
:
reqConnections
)
{
if
(
c
.
creationTime
+
TIMER_MILLIS
+
MAX_REQ_TIME
<=
time
)
{
toClose
.
add
(
c
);
}
}
for
(
HttpConnection
c
:
toClose
)
{
logger
.
log
(
Level
.
FINE
,
"closing: no request: "
+
c
);
reqConnections
.
remove
(
c
);
allConnections
.
remove
(
c
);
c
.
close
();
}
}
}
toClose
=
new
LinkedList
<
HttpConnection
>();
synchronized
(
rspConnections
)
{
if
(
MAX_RSP_TIME
!=
-
1
)
{
for
(
HttpConnection
c
:
rspConnections
)
{
if
(
c
.
rspStartedTime
+
TIMER_MILLIS
+
MAX_RSP_TIME
<=
time
)
{
toClose
.
add
(
c
);
}
}
for
(
HttpConnection
c
:
toClose
)
{
logger
.
log
(
Level
.
FINE
,
"closing: no response: "
+
c
);
rspConnections
.
remove
(
c
);
allConnections
.
remove
(
c
);
c
.
close
();
}
}
}
}
}
void
logStackTrace
(
String
s
)
{
logger
.
finest
(
s
);
StringBuilder
b
=
new
StringBuilder
();
StackTraceElement
[]
e
=
Thread
.
currentThread
().
getStackTrace
();
for
(
int
i
=
0
;
i
<
e
.
length
;
i
++)
{
b
.
append
(
e
[
i
].
toString
()).
append
(
"\n"
);
}
logger
.
finest
(
b
.
toString
());
}
static
long
getTimeMillis
(
long
secs
)
{
if
(
secs
==
-
1
)
{
return
-
1
;
}
else
{
return
secs
*
1000
;
}
}
}
src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java
浏览文件 @
4e203d7a
...
...
@@ -235,8 +235,6 @@ abstract class AsynchronousSocketChannelImpl
if
(
remoteAddress
==
null
)
throw
new
NotYetConnectedException
();
if
(
timeout
<
0L
)
throw
new
IllegalArgumentException
(
"Negative timeout"
);
boolean
hasSpaceToRead
=
isScatteringRead
||
dst
.
hasRemaining
();
boolean
shutdown
=
false
;
...
...
@@ -342,8 +340,6 @@ abstract class AsynchronousSocketChannelImpl
if
(
isOpen
())
{
if
(
remoteAddress
==
null
)
throw
new
NotYetConnectedException
();
if
(
timeout
<
0L
)
throw
new
IllegalArgumentException
(
"Negative timeout"
);
// check and update state
synchronized
(
writeLock
)
{
if
(
writeKilled
)
...
...
src/share/classes/sun/nio/cs/UTF_8.java
浏览文件 @
4e203d7a
...
...
@@ -358,7 +358,7 @@ class UTF_8 extends Unicode
private
static
class
Encoder
extends
CharsetEncoder
{
private
Encoder
(
Charset
cs
)
{
super
(
cs
,
1.1f
,
4
.0f
);
super
(
cs
,
1.1f
,
3
.0f
);
}
public
boolean
canEncode
(
char
c
)
{
...
...
src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
浏览文件 @
4e203d7a
...
...
@@ -778,6 +778,13 @@ public class ExtendedCharsets
"csIBM500"
});
charset
(
"x-IBM833"
,
"IBM833"
,
new
String
[]
{
"cp833"
,
"ibm833"
,
"ibm-833"
});
//EBCDIC DBCS-only Korean
charset
(
"x-IBM834"
,
"IBM834"
,
new
String
[]
{
...
...
src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java
浏览文件 @
4e203d7a
...
...
@@ -250,16 +250,16 @@ public class CCacheInputStream extends KrbDataInputStream implements FileCCacheC
else
return
null
;
}
Ticket
readData
()
throws
IOException
,
RealmException
,
KrbApErrException
,
Asn1
Exception
{
byte
[]
readData
()
throws
IO
Exception
{
int
length
;
length
=
read
(
4
);
if
(
length
>
0
)
{
if
(
length
==
0
)
{
return
null
;
}
else
{
byte
[]
bytes
=
new
byte
[
length
];
read
(
bytes
,
0
,
length
);
Ticket
ticket
=
new
Ticket
(
bytes
);
return
ticket
;
return
bytes
;
}
else
return
null
;
}
boolean
[]
readFlags
()
throws
IOException
{
...
...
@@ -328,6 +328,17 @@ public class CCacheInputStream extends KrbDataInputStream implements FileCCacheC
}
return
flags
;
}
/**
* Reads the next cred in stream.
* @return the next cred, null if ticket or second_ticket unparseable.
*
* Note: MIT krb5 1.8.1 might generate a config entry with server principal
* X-CACHECONF:/krb5_ccache_conf_data/fast_avail/krbtgt/REALM@REALM. The
* entry is used by KDC to inform the client that it support certain
* features. Its ticket is not a valid krb5 ticket and thus this method
* returns null.
*/
Credentials
readCred
(
int
version
)
throws
IOException
,
RealmException
,
KrbApErrException
,
Asn1Exception
{
PrincipalName
cpname
=
readPrincipal
(
version
);
if
(
DEBUG
)
...
...
@@ -367,17 +378,17 @@ public class CCacheInputStream extends KrbDataInputStream implements FileCCacheC
if
(
auData
!=
null
)
{
auData
=
new
AuthorizationData
(
auDataEntry
);
}
Ticket
ticket
=
readData
();
if
(
DEBUG
)
{
System
.
out
.
println
(
">>>DEBUG <CCacheInputStream>"
);
if
(
ticket
==
null
)
{
System
.
out
.
println
(
"///ticket is null"
);
}
}
Ticket
secTicket
=
readData
();
Credentials
cred
=
new
Credentials
(
cpname
,
spname
,
key
,
authtime
,
starttime
,
byte
[]
ticketData
=
readData
();
byte
[]
ticketData2
=
readData
();
try
{
return
new
Credentials
(
cpname
,
spname
,
key
,
authtime
,
starttime
,
endtime
,
renewTill
,
skey
,
tFlags
,
addrs
,
auData
,
ticket
,
secTicket
);
return
cred
;
addrs
,
auData
,
ticketData
!=
null
?
new
Ticket
(
ticketData
)
:
null
,
ticketData2
!=
null
?
new
Ticket
(
ticketData2
)
:
null
);
}
catch
(
Exception
e
)
{
// If any of new Ticket(*) fails.
return
null
;
}
}
}
src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
浏览文件 @
4e203d7a
/*
* Copyright (c) 2000, 20
09
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 20
10
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -186,7 +186,10 @@ public class FileCredentialsCache extends CredentialsCache
primaryRealm
=
primaryPrincipal
.
getRealm
();
credentialsList
=
new
Vector
<
Credentials
>
();
while
(
cis
.
available
()
>
0
)
{
credentialsList
.
addElement
(
cis
.
readCred
(
version
));
Credentials
cred
=
cis
.
readCred
(
version
);
if
(
cred
!=
null
)
{
credentialsList
.
addElement
(
cred
);
}
}
cis
.
close
();
}
...
...
src/share/classes/sun/security/pkcs11/P11Cipher.java
浏览文件 @
4e203d7a
...
...
@@ -74,7 +74,7 @@ final class P11Cipher extends CipherSpi {
// DEC: return the length of trailing padding bytes given the specified
// padded data
int
unpad
(
byte
[]
paddedData
,
int
len
)
throws
BadPaddingException
;
throws
BadPaddingException
,
IllegalBlockSizeException
;
}
private
static
class
PKCS5Padding
implements
Padding
{
...
...
@@ -96,9 +96,10 @@ final class P11Cipher extends CipherSpi {
}
public
int
unpad
(
byte
[]
paddedData
,
int
len
)
throws
BadPaddingException
{
if
(
len
<
1
||
len
>
paddedData
.
length
)
{
throw
new
BadPaddingException
(
"Invalid pad array length!"
);
throws
BadPaddingException
,
IllegalBlockSizeException
{
if
((
len
<
1
)
||
(
len
%
blockSize
!=
0
))
{
throw
new
IllegalBlockSizeException
(
"Input length must be multiples of "
+
blockSize
);
}
byte
padValue
=
paddedData
[
len
-
1
];
if
(
padValue
<
1
||
padValue
>
blockSize
)
{
...
...
src/share/classes/sun/security/ssl/Krb5Helper.java
浏览文件 @
4e203d7a
src/share/classes/sun/security/ssl/Krb5Proxy.java
浏览文件 @
4e203d7a
src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java
浏览文件 @
4e203d7a
src/share/classes/sun/text/normalizer/NormalizerImpl.java
浏览文件 @
4e203d7a
/*
* Copyright (c) 2005, 20
09
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 20
10
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -1472,19 +1472,9 @@ public final class NormalizerImpl {
}
--
remove
;
}
}
else
if
(
value2
!=
0
)
{
/* the composition is longer than the starter,
* move the intermediate characters back one */
}
else
if
(
value2
!=
0
)
{
// for U+1109A, U+1109C, and U+110AB
starterIsSupplementary
=
true
;
/* temporarily increment for the loop boundary */
++
starter
;
q
=
remove
;
r
=++
remove
;
while
(
starter
<
q
)
{
args
.
source
[--
r
]=
args
.
source
[--
q
];
}
args
.
source
[
starter
]=(
char
)
value2
;
--
starter
;
/* undo the temporary increment */
args
.
source
[
starter
+
1
]=(
char
)
value2
;
/* } else { both are on the BMP, nothing more to do */
}
...
...
src/share/classes/sun/text/resources/ubidi.icu
浏览文件 @
4e203d7a
无法预览此类型文件
src/share/classes/sun/text/resources/unorm.icu
浏览文件 @
4e203d7a
无法预览此类型文件
src/share/classes/sun/text/resources/uprops.icu
浏览文件 @
4e203d7a
无法预览此类型文件
src/share/demo/applets/NervousText/example1.html
浏览文件 @
4e203d7a
<title>
Nervous Text 1.1
</title>
<hr>
<applet
code=
"NervousText.class"
width=
534
height=
50
>
<param
name=
text
value=
"Java
^T^M 2 SDK, Standard Edition 6
.0"
>
<param
name=
text
value=
"Java
SE Development Kit (JDK) 7
.0"
>
</applet>
<hr>
<a
href=
"NervousText.java"
>
The source.
</a>
src/share/lib/security/sunpkcs11-solaris.cfg
浏览文件 @
4e203d7a
...
...
@@ -31,5 +31,9 @@ disabledMechanisms = {
CKM_SHA256_RSA_PKCS
CKM_SHA384_RSA_PKCS
CKM_SHA512_RSA_PKCS
# the following mechanisms are disabled to ensure backward compatibility (Solaris bug 6545046)
CKM_DES_CBC_PAD
CKM_DES3_CBC_PAD
CKM_AES_CBC_PAD
}
src/share/native/java/util/zip/Deflater.c
浏览文件 @
4e203d7a
...
...
@@ -132,6 +132,8 @@ Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
in_buf
=
(
jbyte
*
)
malloc
(
this_len
);
if
(
in_buf
==
0
)
{
// Throw OOME only when length is not zero
if
(
this_len
!=
0
)
JNU_ThrowOutOfMemoryError
(
env
,
0
);
return
0
;
}
...
...
@@ -139,6 +141,7 @@ Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
out_buf
=
(
jbyte
*
)
malloc
(
len
);
if
(
out_buf
==
0
)
{
free
(
in_buf
);
if
(
len
!=
0
)
JNU_ThrowOutOfMemoryError
(
env
,
0
);
return
0
;
}
...
...
@@ -173,6 +176,7 @@ Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
jboolean
finish
=
(
*
env
)
->
GetBooleanField
(
env
,
this
,
finishID
);
in_buf
=
(
jbyte
*
)
malloc
(
this_len
);
if
(
in_buf
==
0
)
{
if
(
this_len
!=
0
)
JNU_ThrowOutOfMemoryError
(
env
,
0
);
return
0
;
}
...
...
@@ -181,6 +185,7 @@ Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
out_buf
=
(
jbyte
*
)
malloc
(
len
);
if
(
out_buf
==
0
)
{
free
(
in_buf
);
if
(
len
!=
0
)
JNU_ThrowOutOfMemoryError
(
env
,
0
);
return
0
;
}
...
...
src/share/native/java/util/zip/Inflater.c
浏览文件 @
4e203d7a
...
...
@@ -135,6 +135,7 @@ Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this, jlong addr,
in_buf
=
(
jbyte
*
)
malloc
(
in_len
);
if
(
in_buf
==
0
)
{
if
(
in_len
!=
0
)
JNU_ThrowOutOfMemoryError
(
env
,
0
);
return
0
;
}
...
...
@@ -143,6 +144,7 @@ Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this, jlong addr,
out_buf
=
(
jbyte
*
)
malloc
(
len
);
if
(
out_buf
==
0
)
{
free
(
in_buf
);
if
(
len
!=
0
)
JNU_ThrowOutOfMemoryError
(
env
,
0
);
return
0
;
}
...
...
src/share/native/java/util/zip/zip_util.c
浏览文件 @
4e203d7a
...
...
@@ -314,7 +314,7 @@ findEND(jzfile *zip, void *endbuf)
if
(
pos
<
0
)
{
/* Pretend there are some NUL bytes before start of file */
off
=
-
pos
;
memset
(
buf
,
'\0'
,
off
);
memset
(
buf
,
'\0'
,
(
size_t
)
off
);
}
if
(
readFullyAt
(
zfd
,
buf
+
off
,
sizeof
(
buf
)
-
off
,
...
...
@@ -426,7 +426,7 @@ static int
isMetaName
(
const
char
*
name
,
int
length
)
{
const
char
*
s
;
if
(
length
<
sizeof
(
"META-INF/"
)
-
1
)
if
(
length
<
(
int
)
sizeof
(
"META-INF/"
)
-
1
)
return
0
;
for
(
s
=
"META-INF/"
;
*
s
!=
'\0'
;
s
++
)
{
char
c
=
*
name
++
;
...
...
@@ -912,7 +912,7 @@ readCENHeader(jzfile *zip, jlong cenpos, jint bufsize)
ZFILE
zfd
=
zip
->
zfd
;
char
*
cen
;
if
(
bufsize
>
zip
->
len
-
cenpos
)
bufsize
=
zip
->
len
-
cenpos
;
bufsize
=
(
jint
)(
zip
->
len
-
cenpos
)
;
if
((
cen
=
malloc
(
bufsize
))
==
NULL
)
goto
Catch
;
if
(
readFullyAt
(
zfd
,
cen
,
bufsize
,
cenpos
)
==
-
1
)
goto
Catch
;
censize
=
CENSIZE
(
cen
);
...
...
@@ -1256,6 +1256,9 @@ ZIP_GetEntryDataOffset(jzfile *zip, jzentry *entry)
* file had been previously locked with ZIP_Lock(). Returns the
* number of bytes read, or -1 if an error occurred. If zip->msg != 0
* then a zip error occurred and zip->msg contains the error text.
*
* The current implementation does not support reading an entry that
* has the size bigger than 2**32 bytes in ONE invocation.
*/
jint
ZIP_Read
(
jzfile
*
zip
,
jzentry
*
entry
,
jlong
pos
,
void
*
buf
,
jint
len
)
...
...
@@ -1276,7 +1279,7 @@ ZIP_Read(jzfile *zip, jzentry *entry, jlong pos, void *buf, jint len)
if
(
len
<=
0
)
return
0
;
if
(
len
>
entry_size
-
pos
)
len
=
entry_size
-
pos
;
len
=
(
jint
)(
entry_size
-
pos
)
;
/* Get file offset to start reading data */
start
=
ZIP_GetEntryDataOffset
(
zip
,
entry
);
...
...
@@ -1306,6 +1309,9 @@ ZIP_Read(jzfile *zip, jzentry *entry, jlong pos, void *buf, jint len)
* from ZIP/JAR files specified in the class path. It is defined here
* so that it can be dynamically loaded by the runtime if the zip library
* is found.
*
* The current implementation does not support reading an entry that
* has the size bigger than 2**32 bytes in ONE invocation.
*/
jboolean
InflateFully
(
jzfile
*
zip
,
jzentry
*
entry
,
void
*
buf
,
char
**
msg
)
...
...
@@ -1314,7 +1320,6 @@ InflateFully(jzfile *zip, jzentry *entry, void *buf, char **msg)
char
tmp
[
BUF_SIZE
];
jlong
pos
=
0
;
jlong
count
=
entry
->
csize
;
jboolean
status
;
*
msg
=
0
;
/* Reset error message */
...
...
@@ -1330,10 +1335,10 @@ InflateFully(jzfile *zip, jzentry *entry, void *buf, char **msg)
}
strm
.
next_out
=
buf
;
strm
.
avail_out
=
entry
->
size
;
strm
.
avail_out
=
(
uInt
)
entry
->
size
;
while
(
count
>
0
)
{
jint
n
=
count
>
(
jlong
)
sizeof
(
tmp
)
?
(
jint
)
sizeof
(
tmp
)
:
count
;
jint
n
=
count
>
(
jlong
)
sizeof
(
tmp
)
?
(
jint
)
sizeof
(
tmp
)
:
(
jint
)
count
;
ZIP_Lock
(
zip
);
n
=
ZIP_Read
(
zip
,
entry
,
pos
,
tmp
,
n
);
ZIP_Unlock
(
zip
);
...
...
@@ -1368,12 +1373,16 @@ InflateFully(jzfile *zip, jzentry *entry, void *buf, char **msg)
return
JNI_TRUE
;
}
/*
* The current implementation does not support reading an entry that
* has the size bigger than 2**32 bytes in ONE invocation.
*/
jzentry
*
JNICALL
ZIP_FindEntry
(
jzfile
*
zip
,
char
*
name
,
jint
*
sizeP
,
jint
*
nameLenP
)
{
jzentry
*
entry
=
ZIP_GetEntry
(
zip
,
name
,
0
);
if
(
entry
)
{
*
sizeP
=
entry
->
size
;
*
sizeP
=
(
jint
)
entry
->
size
;
*
nameLenP
=
strlen
(
entry
->
name
);
}
return
entry
;
...
...
src/share/native/java/util/zip/zlib-1.2.3/compress.c
浏览文件 @
4e203d7a
...
...
@@ -75,7 +75,7 @@ int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
deflateEnd
(
&
stream
);
return
err
==
Z_OK
?
Z_BUF_ERROR
:
err
;
}
*
destLen
=
stream
.
total_out
;
*
destLen
=
(
uLong
)
stream
.
total_out
;
err
=
deflateEnd
(
&
stream
);
return
err
;
...
...
src/share/native/java/util/zip/zlib-1.2.3/uncompr.c
浏览文件 @
4e203d7a
...
...
@@ -78,7 +78,7 @@ int ZEXPORT uncompress (dest, destLen, source, sourceLen)
return
Z_DATA_ERROR
;
return
err
;
}
*
destLen
=
stream
.
total_out
;
*
destLen
=
(
uLong
)
stream
.
total_out
;
err
=
inflateEnd
(
&
stream
);
return
err
;
...
...
src/solaris/classes/sun/awt/X11/GtkFileDialogPeer.java
浏览文件 @
4e203d7a
...
...
@@ -57,9 +57,12 @@ class GtkFileDialogPeer extends XDialogPeer implements FileDialogPeer {
private
native
void
run
(
String
title
,
int
mode
,
String
dir
,
String
file
,
FilenameFilter
filter
,
boolean
isMultipleMode
);
private
native
void
quit
();
@Override
public
native
void
toFront
();
/**
* Called exclusively by the native C code.
*/
...
...
src/solaris/classes/sun/awt/X11/XFramePeer.java
浏览文件 @
4e203d7a
...
...
@@ -150,6 +150,8 @@ class XFramePeer extends XDecoratedPeer implements FramePeer {
void
updateChildrenSizes
()
{
super
.
updateChildrenSizes
();
int
height
=
getMenuBarHeight
();
// XWindow.reshape calls XBaseWindow.xSetBounds, which acquires
// the AWT lock, so we have to acquire the AWT lock here
// before getStateLock() to avoid a deadlock with the Toolkit thread
...
...
@@ -159,7 +161,7 @@ class XFramePeer extends XDecoratedPeer implements FramePeer {
synchronized
(
getStateLock
())
{
int
width
=
dimensions
.
getClientSize
().
width
;
if
(
menubarPeer
!=
null
)
{
menubarPeer
.
reshape
(
0
,
0
,
width
,
getMenuBarHeight
()
);
menubarPeer
.
reshape
(
0
,
0
,
width
,
height
);
}
}
}
finally
{
...
...
src/solaris/native/java/lang/java_props_md.c
浏览文件 @
4e203d7a
...
...
@@ -217,15 +217,18 @@ static int ParseLocale(int cat, char ** std_language, char ** std_script,
/* Normalize the language name */
if
(
std_language
!=
NULL
)
{
*
std_language
=
"en"
;
if
(
language
!=
NULL
)
{
mapLookup
(
language_names
,
language
,
std_language
);
if
(
language
!=
NULL
&&
mapLookup
(
language_names
,
language
,
std_language
)
==
0
)
{
*
std_language
=
malloc
(
strlen
(
language
)
+
1
);
strcpy
(
*
std_language
,
language
);
}
}
/* Normalize the country name */
if
(
std_country
!=
NULL
&&
country
!=
NULL
)
{
*
std_country
=
country
;
mapLookup
(
country_names
,
country
,
std_country
);
if
(
mapLookup
(
country_names
,
country
,
std_country
)
==
0
)
{
*
std_country
=
malloc
(
strlen
(
country
)
+
1
);
strcpy
(
*
std_country
,
country
);
}
}
/* Normalize the script and variant name. Note that we only use
...
...
src/solaris/native/java/lang/locale_str.h
浏览文件 @
4e203d7a
...
...
@@ -87,7 +87,7 @@
"zh"
,
"zh_CN"
,
#ifdef __linux__
"bokmal"
,
"nb_NO"
,
"bokm\
u00e
5l"
,
"nb_NO"
,
"bokm
\
xE
5
l"
,
"nb_NO"
,
"catalan"
,
"ca_ES"
,
"croatian"
,
"hr_HR"
,
"czech"
,
"cs_CZ"
,
...
...
@@ -144,203 +144,16 @@
static
char
*
language_names
[]
=
{
"C"
,
"en"
,
"POSIX"
,
"en"
,
"aa"
,
"aa"
,
"ab"
,
"ab"
,
"ae"
,
"ae"
,
"af"
,
"af"
,
"ak"
,
"ak"
,
"am"
,
"am"
,
"an"
,
"an"
,
"ar"
,
"ar"
,
"as"
,
"as"
,
"av"
,
"av"
,
"ay"
,
"ay"
,
"az"
,
"az"
,
"ba"
,
"ba"
,
"be"
,
"be"
,
"bg"
,
"bg"
,
"bh"
,
"bh"
,
"bi"
,
"bi"
,
"bm"
,
"bm"
,
"bn"
,
"bn"
,
"bo"
,
"bo"
,
"br"
,
"br"
,
"bs"
,
"bs"
,
"ca"
,
"ca"
,
"ce"
,
"ce"
,
"ch"
,
"ch"
,
"co"
,
"co"
,
"cr"
,
"cr"
,
"cs"
,
"cs"
,
"cz"
,
"cs"
,
"cu"
,
"cu"
,
"cv"
,
"cv"
,
"cy"
,
"cy"
,
"da"
,
"da"
,
"de"
,
"de"
,
"dv"
,
"dv"
,
"dz"
,
"dz"
,
"ee"
,
"ee"
,
"el"
,
"el"
,
"en"
,
"en"
,
"eo"
,
"eo"
,
"es"
,
"es"
,
"et"
,
"et"
,
"eu"
,
"eu"
,
"fa"
,
"fa"
,
"ff"
,
"ff"
,
"fi"
,
"fi"
,
"fj"
,
"fj"
,
"fo"
,
"fo"
,
"fr"
,
"fr"
,
"fy"
,
"fy"
,
"ga"
,
"ga"
,
"gd"
,
"gd"
,
"gl"
,
"gl"
,
"gn"
,
"gn"
,
"gu"
,
"gu"
,
"gv"
,
"gv"
,
"ha"
,
"ha"
,
"he"
,
"iw"
,
"hi"
,
"hi"
,
"ho"
,
"ho"
,
"hr"
,
"hr"
,
#ifdef __linux__
"hs"
,
"en"
,
// used on Linux, not clear what it stands for
#endif
"ht"
,
"ht"
,
"hu"
,
"hu"
,
"hy"
,
"hy"
,
"hz"
,
"hz"
,
"ia"
,
"ia"
,
"id"
,
"in"
,
"ie"
,
"ie"
,
"ig"
,
"ig"
,
"ii"
,
"ii"
,
"ik"
,
"ik"
,
"in"
,
"in"
,
"io"
,
"io"
,
"is"
,
"is"
,
"it"
,
"it"
,
"iu"
,
"iu"
,
"iw"
,
"iw"
,
"ja"
,
"ja"
,
"ji"
,
"yi"
,
"jv"
,
"jv"
,
"ka"
,
"ka"
,
"kg"
,
"kg"
,
"ki"
,
"ki"
,
"kj"
,
"kj"
,
"kk"
,
"kk"
,
"kl"
,
"kl"
,
"km"
,
"km"
,
"kn"
,
"kn"
,
"ko"
,
"ko"
,
"kr"
,
"kr"
,
"ks"
,
"ks"
,
"ku"
,
"ku"
,
"kv"
,
"kv"
,
"kw"
,
"kw"
,
"ky"
,
"ky"
,
"la"
,
"la"
,
"lb"
,
"lb"
,
"lg"
,
"lg"
,
"li"
,
"li"
,
"ln"
,
"ln"
,
"lo"
,
"lo"
,
"lt"
,
"lt"
,
"lu"
,
"lu"
,
"lv"
,
"lv"
,
"mg"
,
"mg"
,
"mh"
,
"mh"
,
"mi"
,
"mi"
,
"mk"
,
"mk"
,
"ml"
,
"ml"
,
"mn"
,
"mn"
,
"mo"
,
"mo"
,
"mr"
,
"mr"
,
"ms"
,
"ms"
,
"mt"
,
"mt"
,
"my"
,
"my"
,
"na"
,
"na"
,
"nb"
,
"nb"
,
"nd"
,
"nd"
,
"ne"
,
"ne"
,
"ng"
,
"ng"
,
"nl"
,
"nl"
,
"nn"
,
"nn"
,
"no"
,
"no"
,
"nr"
,
"nr"
,
"nv"
,
"nv"
,
"ny"
,
"ny"
,
"oc"
,
"oc"
,
"oj"
,
"oj"
,
"om"
,
"om"
,
"or"
,
"or"
,
"os"
,
"os"
,
"pa"
,
"pa"
,
"pi"
,
"pi"
,
"pl"
,
"pl"
,
"ps"
,
"ps"
,
"pt"
,
"pt"
,
"qu"
,
"qu"
,
"rm"
,
"rm"
,
"rn"
,
"rn"
,
"ro"
,
"ro"
,
"ru"
,
"ru"
,
"rw"
,
"rw"
,
"sa"
,
"sa"
,
"sc"
,
"sc"
,
"sd"
,
"sd"
,
"se"
,
"se"
,
"sg"
,
"sg"
,
"sh"
,
"sr"
,
// sh is deprecated
"si"
,
"si"
,
"sk"
,
"sk"
,
"sl"
,
"sl"
,
"sm"
,
"sm"
,
"sn"
,
"sn"
,
"so"
,
"so"
,
"sq"
,
"sq"
,
"sr"
,
"sr"
,
"ss"
,
"ss"
,
"st"
,
"st"
,
"su"
,
"fi"
,
"sv"
,
"sv"
,
"sw"
,
"sw"
,
"ta"
,
"ta"
,
"te"
,
"te"
,
"tg"
,
"tg"
,
"th"
,
"th"
,
"ti"
,
"ti"
,
"tk"
,
"tk"
,
"tl"
,
"tl"
,
"tn"
,
"tn"
,
"to"
,
"to"
,
"tr"
,
"tr"
,
"ts"
,
"ts"
,
"tt"
,
"tt"
,
"tw"
,
"tw"
,
"ty"
,
"ty"
,
#ifdef __linux__
"ua"
,
"en"
,
// used on Linux, not clear what it stands for
#endif
"ug"
,
"ug"
,
"uk"
,
"uk"
,
"ur"
,
"ur"
,
"uz"
,
"uz"
,
"ve"
,
"ve"
,
"vi"
,
"vi"
,
"vo"
,
"vo"
,
"wa"
,
"wa"
,
"wo"
,
"wo"
,
"xh"
,
"xh"
,
"yi"
,
"yi"
,
"yo"
,
"yo"
,
"za"
,
"za"
,
"zh"
,
"zh"
,
"zu"
,
"zu"
,
#ifdef __linux__
"catalan"
,
"ca"
,
"croatian"
,
"hr"
,
"czech"
,
"cs"
,
...
...
@@ -375,493 +188,6 @@ static char *language_names[] = {
"japanese"
,
"ja"
,
"korean"
,
"ko"
,
#endif
/* ISO 639.2 codes */
"aar"
,
"aar"
,
"abk"
,
"abk"
,
"ace"
,
"ace"
,
"ach"
,
"ach"
,
"ada"
,
"ada"
,
"ady"
,
"ady"
,
"afa"
,
"afa"
,
"afh"
,
"afh"
,
"afr"
,
"afr"
,
"ain"
,
"ain"
,
"aka"
,
"aka"
,
"akk"
,
"akk"
,
"alb"
,
"alb"
,
"ale"
,
"ale"
,
"alg"
,
"alg"
,
"alt"
,
"alt"
,
"amh"
,
"amh"
,
"ang"
,
"ang"
,
"anp"
,
"anp"
,
"apa"
,
"apa"
,
"ara"
,
"ara"
,
"arc"
,
"arc"
,
"arg"
,
"arg"
,
"arm"
,
"arm"
,
"arn"
,
"arn"
,
"arp"
,
"arp"
,
"art"
,
"art"
,
"arw"
,
"arw"
,
"asm"
,
"asm"
,
"ast"
,
"ast"
,
"ath"
,
"ath"
,
"aus"
,
"aus"
,
"ava"
,
"ava"
,
"ave"
,
"ave"
,
"awa"
,
"awa"
,
"aym"
,
"aym"
,
"aze"
,
"aze"
,
"bad"
,
"bad"
,
"bai"
,
"bai"
,
"bak"
,
"bak"
,
"bal"
,
"bal"
,
"bam"
,
"bam"
,
"ban"
,
"ban"
,
"baq"
,
"baq"
,
"bas"
,
"bas"
,
"bat"
,
"bat"
,
"bej"
,
"bej"
,
"bel"
,
"bel"
,
"bem"
,
"bem"
,
"ben"
,
"ben"
,
"ber"
,
"ber"
,
"bho"
,
"bho"
,
"bih"
,
"bih"
,
"bik"
,
"bik"
,
"bin"
,
"bin"
,
"bis"
,
"bis"
,
"bla"
,
"bla"
,
"bnt"
,
"bnt"
,
"bos"
,
"bos"
,
"bra"
,
"bra"
,
"bre"
,
"bre"
,
"btk"
,
"btk"
,
"bua"
,
"bua"
,
"bug"
,
"bug"
,
"bul"
,
"bul"
,
"bur"
,
"bur"
,
"byn"
,
"byn"
,
"cad"
,
"cad"
,
"cai"
,
"cai"
,
"car"
,
"car"
,
"cat"
,
"cat"
,
"cau"
,
"cau"
,
"ceb"
,
"ceb"
,
"cel"
,
"cel"
,
"cha"
,
"cha"
,
"chb"
,
"chb"
,
"che"
,
"che"
,
"chg"
,
"chg"
,
"chi"
,
"chi"
,
"chk"
,
"chk"
,
"chm"
,
"chm"
,
"chn"
,
"chn"
,
"cho"
,
"cho"
,
"chp"
,
"chp"
,
"chr"
,
"chr"
,
"chu"
,
"chu"
,
"chv"
,
"chv"
,
"chy"
,
"chy"
,
"cmc"
,
"cmc"
,
"cop"
,
"cop"
,
"cor"
,
"cor"
,
"cos"
,
"cos"
,
"cpe"
,
"cpe"
,
"cpf"
,
"cpf"
,
"cpp"
,
"cpp"
,
"cre"
,
"cre"
,
"crh"
,
"crh"
,
"crp"
,
"crp"
,
"csb"
,
"csb"
,
"cus"
,
"cus"
,
"cze"
,
"cze"
,
"dak"
,
"dak"
,
"dan"
,
"dan"
,
"dar"
,
"dar"
,
"day"
,
"day"
,
"del"
,
"del"
,
"den"
,
"den"
,
"dgr"
,
"dgr"
,
"din"
,
"din"
,
"div"
,
"div"
,
"doi"
,
"doi"
,
"dra"
,
"dra"
,
"dsb"
,
"dsb"
,
"dua"
,
"dua"
,
"dum"
,
"dum"
,
"dut"
,
"dut"
,
"dyu"
,
"dyu"
,
"dzo"
,
"dzo"
,
"efi"
,
"efi"
,
"egy"
,
"egy"
,
"eka"
,
"eka"
,
"elx"
,
"elx"
,
"eng"
,
"eng"
,
"enm"
,
"enm"
,
"epo"
,
"epo"
,
"est"
,
"est"
,
"ewe"
,
"ewe"
,
"ewo"
,
"ewo"
,
"fan"
,
"fan"
,
"fao"
,
"fao"
,
"fat"
,
"fat"
,
"fij"
,
"fij"
,
"fil"
,
"fil"
,
"fin"
,
"fin"
,
"fiu"
,
"fiu"
,
"fon"
,
"fon"
,
"fre"
,
"fre"
,
"frm"
,
"frm"
,
"fro"
,
"fro"
,
"frr"
,
"frr"
,
"frs"
,
"frs"
,
"fry"
,
"fry"
,
"ful"
,
"ful"
,
"fur"
,
"fur"
,
"gaa"
,
"gaa"
,
"gay"
,
"gay"
,
"gba"
,
"gba"
,
"gem"
,
"gem"
,
"geo"
,
"geo"
,
"ger"
,
"ger"
,
"gez"
,
"gez"
,
"gil"
,
"gil"
,
"gla"
,
"gla"
,
"gle"
,
"gle"
,
"glg"
,
"glg"
,
"glv"
,
"glv"
,
"gmh"
,
"gmh"
,
"goh"
,
"goh"
,
"gon"
,
"gon"
,
"gor"
,
"gor"
,
"got"
,
"got"
,
"grb"
,
"grb"
,
"grc"
,
"grc"
,
"gre"
,
"gre"
,
"grn"
,
"grn"
,
"gsw"
,
"gsw"
,
"guj"
,
"guj"
,
"gwi"
,
"gwi"
,
"hai"
,
"hai"
,
"hat"
,
"hat"
,
"hau"
,
"hau"
,
"haw"
,
"haw"
,
"heb"
,
"heb"
,
"her"
,
"her"
,
"hil"
,
"hil"
,
"him"
,
"him"
,
"hin"
,
"hin"
,
"hit"
,
"hit"
,
"hmn"
,
"hmn"
,
"hmo"
,
"hmo"
,
"hrv"
,
"hrv"
,
"hsb"
,
"hsb"
,
"hun"
,
"hun"
,
"hup"
,
"hup"
,
"iba"
,
"iba"
,
"ibo"
,
"ibo"
,
"ice"
,
"ice"
,
"ido"
,
"ido"
,
"iii"
,
"iii"
,
"ijo"
,
"ijo"
,
"iku"
,
"iku"
,
"ile"
,
"ile"
,
"ilo"
,
"ilo"
,
"ina"
,
"ina"
,
"inc"
,
"inc"
,
"ind"
,
"ind"
,
"ine"
,
"ine"
,
"inh"
,
"inh"
,
"ipk"
,
"ipk"
,
"ira"
,
"ira"
,
"iro"
,
"iro"
,
"ita"
,
"ita"
,
"jav"
,
"jav"
,
"jbo"
,
"jbo"
,
"jpn"
,
"jpn"
,
"jpr"
,
"jpr"
,
"jrb"
,
"jrb"
,
"kaa"
,
"kaa"
,
"kab"
,
"kab"
,
"kac"
,
"kac"
,
"kal"
,
"kal"
,
"kam"
,
"kam"
,
"kan"
,
"kan"
,
"kar"
,
"kar"
,
"kas"
,
"kas"
,
"kau"
,
"kau"
,
"kaw"
,
"kaw"
,
"kaz"
,
"kaz"
,
"kbd"
,
"kbd"
,
"kha"
,
"kha"
,
"khi"
,
"khi"
,
"khm"
,
"khm"
,
"kho"
,
"kho"
,
"kik"
,
"kik"
,
"kin"
,
"kin"
,
"kir"
,
"kir"
,
"kmb"
,
"kmb"
,
"kok"
,
"kok"
,
"kom"
,
"kom"
,
"kon"
,
"kon"
,
"kor"
,
"kor"
,
"kos"
,
"kos"
,
"kpe"
,
"kpe"
,
"krc"
,
"krc"
,
"krl"
,
"krl"
,
"kro"
,
"kro"
,
"kru"
,
"kru"
,
"kua"
,
"kua"
,
"kum"
,
"kum"
,
"kur"
,
"kur"
,
"kut"
,
"kut"
,
"lad"
,
"lad"
,
"lah"
,
"lah"
,
"lam"
,
"lam"
,
"lao"
,
"lao"
,
"lat"
,
"lat"
,
"lav"
,
"lav"
,
"lez"
,
"lez"
,
"lim"
,
"lim"
,
"lin"
,
"lin"
,
"lit"
,
"lit"
,
"lol"
,
"lol"
,
"loz"
,
"loz"
,
"ltz"
,
"ltz"
,
"lua"
,
"lua"
,
"lub"
,
"lub"
,
"lug"
,
"lug"
,
"lui"
,
"lui"
,
"lun"
,
"lun"
,
"luo"
,
"luo"
,
"lus"
,
"lus"
,
"mac"
,
"mac"
,
"mad"
,
"mad"
,
"mag"
,
"mag"
,
"mah"
,
"mah"
,
"mai"
,
"mai"
,
"mak"
,
"mak"
,
"mal"
,
"mal"
,
"man"
,
"man"
,
"mao"
,
"mao"
,
"map"
,
"map"
,
"mar"
,
"mar"
,
"mas"
,
"mas"
,
"may"
,
"may"
,
"mdf"
,
"mdf"
,
"mdr"
,
"mdr"
,
"men"
,
"men"
,
"mga"
,
"mga"
,
"mic"
,
"mic"
,
"min"
,
"min"
,
"mis"
,
"mis"
,
"mkh"
,
"mkh"
,
"mlg"
,
"mlg"
,
"mlt"
,
"mlt"
,
"mnc"
,
"mnc"
,
"mni"
,
"mni"
,
"mno"
,
"mno"
,
"moh"
,
"moh"
,
"mon"
,
"mon"
,
"mos"
,
"mos"
,
"mul"
,
"mul"
,
"mun"
,
"mun"
,
"mus"
,
"mus"
,
"mwl"
,
"mwl"
,
"mwr"
,
"mwr"
,
"myn"
,
"myn"
,
"myv"
,
"myv"
,
"nah"
,
"nah"
,
"nai"
,
"nai"
,
"nap"
,
"nap"
,
"nau"
,
"nau"
,
"nav"
,
"nav"
,
"nbl"
,
"nbl"
,
"nde"
,
"nde"
,
"ndo"
,
"ndo"
,
"nds"
,
"nds"
,
"nep"
,
"nep"
,
"new"
,
"new"
,
"nia"
,
"nia"
,
"nic"
,
"nic"
,
"niu"
,
"niu"
,
"nno"
,
"nno"
,
"nob"
,
"nob"
,
"nog"
,
"nog"
,
"non"
,
"non"
,
"nor"
,
"nor"
,
"nqo"
,
"nqo"
,
"nso"
,
"nso"
,
"nub"
,
"nub"
,
"nwc"
,
"nwc"
,
"nya"
,
"nya"
,
"nym"
,
"nym"
,
"nyn"
,
"nyn"
,
"nyo"
,
"nyo"
,
"nzi"
,
"nzi"
,
"oci"
,
"oci"
,
"oji"
,
"oji"
,
"ori"
,
"ori"
,
"orm"
,
"orm"
,
"osa"
,
"osa"
,
"oss"
,
"oss"
,
"ota"
,
"ota"
,
"oto"
,
"oto"
,
"paa"
,
"paa"
,
"pag"
,
"pag"
,
"pal"
,
"pal"
,
"pam"
,
"pam"
,
"pan"
,
"pan"
,
"pap"
,
"pap"
,
"pau"
,
"pau"
,
"peo"
,
"peo"
,
"per"
,
"per"
,
"phi"
,
"phi"
,
"phn"
,
"phn"
,
"pli"
,
"pli"
,
"pol"
,
"pol"
,
"pon"
,
"pon"
,
"por"
,
"por"
,
"pra"
,
"pra"
,
"pro"
,
"pro"
,
"pus"
,
"pus"
,
"que"
,
"que"
,
"raj"
,
"raj"
,
"rap"
,
"rap"
,
"rar"
,
"rar"
,
"roa"
,
"roa"
,
"roh"
,
"roh"
,
"rom"
,
"rom"
,
"rum"
,
"rum"
,
"run"
,
"run"
,
"rup"
,
"rup"
,
"rus"
,
"rus"
,
"sad"
,
"sad"
,
"sag"
,
"sag"
,
"sah"
,
"sah"
,
"sai"
,
"sai"
,
"sal"
,
"sal"
,
"sam"
,
"sam"
,
"san"
,
"san"
,
"sas"
,
"sas"
,
"sat"
,
"sat"
,
"scn"
,
"scn"
,
"sco"
,
"sco"
,
"sel"
,
"sel"
,
"sem"
,
"sem"
,
"sga"
,
"sga"
,
"sgn"
,
"sgn"
,
"shn"
,
"shn"
,
"sid"
,
"sid"
,
"sin"
,
"sin"
,
"sio"
,
"sio"
,
"sit"
,
"sit"
,
"sla"
,
"sla"
,
"slo"
,
"slo"
,
"slv"
,
"slv"
,
"sma"
,
"sma"
,
"sme"
,
"sme"
,
"smi"
,
"smi"
,
"smj"
,
"smj"
,
"smn"
,
"smn"
,
"smo"
,
"smo"
,
"sms"
,
"sms"
,
"sna"
,
"sna"
,
"snd"
,
"snd"
,
"snk"
,
"snk"
,
"sog"
,
"sog"
,
"som"
,
"som"
,
"son"
,
"son"
,
"sot"
,
"sot"
,
"spa"
,
"spa"
,
"srd"
,
"srd"
,
"srn"
,
"srn"
,
"srp"
,
"srp"
,
"srr"
,
"srr"
,
"ssa"
,
"ssa"
,
"ssw"
,
"ssw"
,
"suk"
,
"suk"
,
"sun"
,
"sun"
,
"sus"
,
"sus"
,
"sux"
,
"sux"
,
"swa"
,
"swa"
,
"swe"
,
"swe"
,
"syc"
,
"syc"
,
"syr"
,
"syr"
,
"tah"
,
"tah"
,
"tai"
,
"tai"
,
"tam"
,
"tam"
,
"tat"
,
"tat"
,
"tel"
,
"tel"
,
"tem"
,
"tem"
,
"ter"
,
"ter"
,
"tet"
,
"tet"
,
"tgk"
,
"tgk"
,
"tgl"
,
"tgl"
,
"tha"
,
"tha"
,
"tib"
,
"tib"
,
"tig"
,
"tig"
,
"tir"
,
"tir"
,
"tiv"
,
"tiv"
,
"tkl"
,
"tkl"
,
"tlh"
,
"tlh"
,
"tli"
,
"tli"
,
"tmh"
,
"tmh"
,
"tog"
,
"tog"
,
"ton"
,
"ton"
,
"tpi"
,
"tpi"
,
"tsi"
,
"tsi"
,
"tsn"
,
"tsn"
,
"tso"
,
"tso"
,
"tuk"
,
"tuk"
,
"tum"
,
"tum"
,
"tup"
,
"tup"
,
"tur"
,
"tur"
,
"tut"
,
"tut"
,
"tvl"
,
"tvl"
,
"twi"
,
"twi"
,
"tyv"
,
"tyv"
,
"udm"
,
"udm"
,
"uga"
,
"uga"
,
"uig"
,
"uig"
,
"ukr"
,
"ukr"
,
"umb"
,
"umb"
,
"und"
,
"und"
,
"urd"
,
"urd"
,
"uzb"
,
"uzb"
,
"vai"
,
"vai"
,
"ven"
,
"ven"
,
"vie"
,
"vie"
,
"vol"
,
"vol"
,
"vot"
,
"vot"
,
"wak"
,
"wak"
,
"wal"
,
"wal"
,
"war"
,
"war"
,
"was"
,
"was"
,
"wel"
,
"wel"
,
"wen"
,
"wen"
,
"wln"
,
"wln"
,
"wol"
,
"wol"
,
"xal"
,
"xal"
,
"xho"
,
"xho"
,
"yao"
,
"yao"
,
"yap"
,
"yap"
,
"yid"
,
"yid"
,
"yor"
,
"yor"
,
"ypk"
,
"ypk"
,
"zap"
,
"zap"
,
"zbl"
,
"zbl"
,
"zen"
,
"zen"
,
"zha"
,
"zha"
,
"znd"
,
"znd"
,
"zul"
,
"zul"
,
"zun"
,
"zun"
,
"zxx"
,
"zxx"
,
"zza"
,
"zza"
,
""
,
};
...
...
@@ -882,253 +208,10 @@ static char *script_names[] = {
* Linux/Solaris country string to ISO3166 string mapping table.
*/
static
char
*
country_names
[]
=
{
"AD"
,
"AD"
,
"AE"
,
"AE"
,
"AF"
,
"AF"
,
"AG"
,
"AG"
,
"AI"
,
"AI"
,
"AL"
,
"AL"
,
"AM"
,
"AM"
,
"AN"
,
"AN"
,
"AO"
,
"AO"
,
"AQ"
,
"AQ"
,
"AR"
,
"AR"
,
"AS"
,
"AS"
,
"AT"
,
"AT"
,
"AU"
,
"AU"
,
"AW"
,
"AW"
,
"AX"
,
"AX"
,
"AZ"
,
"AZ"
,
"BA"
,
"BA"
,
"BB"
,
"BB"
,
"BD"
,
"BD"
,
"BE"
,
"BE"
,
"BF"
,
"BF"
,
"BG"
,
"BG"
,
"BH"
,
"BH"
,
"BI"
,
"BI"
,
"BJ"
,
"BJ"
,
"BM"
,
"BM"
,
"BN"
,
"BN"
,
"BO"
,
"BO"
,
"BR"
,
"BR"
,
"BS"
,
"BS"
,
"BT"
,
"BT"
,
"BV"
,
"BV"
,
"BW"
,
"BW"
,
"BY"
,
"BY"
,
"BZ"
,
"BZ"
,
"CA"
,
"CA"
,
"CC"
,
"CC"
,
"CD"
,
"CD"
,
"CF"
,
"CF"
,
"CG"
,
"CG"
,
"CH"
,
"CH"
,
"CI"
,
"CI"
,
"CK"
,
"CK"
,
"CL"
,
"CL"
,
"CM"
,
"CM"
,
"CN"
,
"CN"
,
"CO"
,
"CO"
,
"CR"
,
"CR"
,
"CS"
,
"CS"
,
"CU"
,
"CU"
,
"CV"
,
"CV"
,
"CX"
,
"CX"
,
"CY"
,
"CY"
,
"CZ"
,
"CZ"
,
"DE"
,
"DE"
,
"DJ"
,
"DJ"
,
"DK"
,
"DK"
,
"DM"
,
"DM"
,
"DO"
,
"DO"
,
"DZ"
,
"DZ"
,
"EC"
,
"EC"
,
"EE"
,
"EE"
,
"EG"
,
"EG"
,
"EH"
,
"EH"
,
"ER"
,
"ER"
,
"ES"
,
"ES"
,
"ET"
,
"ET"
,
"FI"
,
"FI"
,
"FJ"
,
"FJ"
,
"FK"
,
"FK"
,
"FM"
,
"FM"
,
"FO"
,
"FO"
,
"FR"
,
"FR"
,
"GA"
,
"GA"
,
"GB"
,
"GB"
,
"GD"
,
"GD"
,
"GE"
,
"GE"
,
"GF"
,
"GF"
,
"GH"
,
"GH"
,
"GI"
,
"GI"
,
"GL"
,
"GL"
,
"GM"
,
"GM"
,
"GN"
,
"GN"
,
"GP"
,
"GP"
,
"GQ"
,
"GQ"
,
"GR"
,
"GR"
,
"GS"
,
"GS"
,
"GT"
,
"GT"
,
"GU"
,
"GU"
,
"GW"
,
"GW"
,
"GY"
,
"GY"
,
"HK"
,
"HK"
,
"HM"
,
"HM"
,
"HN"
,
"HN"
,
"HR"
,
"HR"
,
"HT"
,
"HT"
,
"HU"
,
"HU"
,
"ID"
,
"ID"
,
"IE"
,
"IE"
,
"IL"
,
"IL"
,
"IN"
,
"IN"
,
"IO"
,
"IO"
,
"IQ"
,
"IQ"
,
"IR"
,
"IR"
,
"IS"
,
"IS"
,
"IT"
,
"IT"
,
"JM"
,
"JM"
,
"JO"
,
"JO"
,
"JP"
,
"JP"
,
"KE"
,
"KE"
,
"KG"
,
"KG"
,
"KH"
,
"KH"
,
"KI"
,
"KI"
,
"KM"
,
"KM"
,
"KN"
,
"KN"
,
"KP"
,
"KP"
,
"KR"
,
"KR"
,
"KW"
,
"KW"
,
"KY"
,
"KY"
,
"KZ"
,
"KZ"
,
"LA"
,
"LA"
,
"LB"
,
"LB"
,
"LC"
,
"LC"
,
"LI"
,
"LI"
,
"LK"
,
"LK"
,
"LR"
,
"LR"
,
"LS"
,
"LS"
,
"LT"
,
"LT"
,
"LU"
,
"LU"
,
"LV"
,
"LV"
,
"LY"
,
"LY"
,
"MA"
,
"MA"
,
"MC"
,
"MC"
,
"MD"
,
"MD"
,
"ME"
,
"ME"
,
"MG"
,
"MG"
,
"MH"
,
"MH"
,
"MK"
,
"MK"
,
"ML"
,
"ML"
,
"MM"
,
"MM"
,
"MN"
,
"MN"
,
"MO"
,
"MO"
,
"MP"
,
"MP"
,
"MQ"
,
"MQ"
,
"MR"
,
"MR"
,
"MS"
,
"MS"
,
"MT"
,
"MT"
,
"MU"
,
"MU"
,
"MV"
,
"MV"
,
"MW"
,
"MW"
,
"MX"
,
"MX"
,
"MY"
,
"MY"
,
"MZ"
,
"MZ"
,
"NA"
,
"NA"
,
"NC"
,
"NC"
,
"NE"
,
"NE"
,
"NF"
,
"NF"
,
"NG"
,
"NG"
,
"NI"
,
"NI"
,
"NL"
,
"NL"
,
"NO"
,
"NO"
,
"NP"
,
"NP"
,
"NR"
,
"NR"
,
"NU"
,
"NU"
,
"NZ"
,
"NZ"
,
"OM"
,
"OM"
,
"PA"
,
"PA"
,
"PE"
,
"PE"
,
"PF"
,
"PF"
,
"PG"
,
"PG"
,
"PH"
,
"PH"
,
"PK"
,
"PK"
,
"PL"
,
"PL"
,
"PM"
,
"PM"
,
"PN"
,
"PN"
,
"PR"
,
"PR"
,
"PS"
,
"PS"
,
"PT"
,
"PT"
,
"PW"
,
"PW"
,
"PY"
,
"PY"
,
"QA"
,
"QA"
,
"RE"
,
"RE"
,
#ifdef __linux__
"RN"
,
"US"
,
// used on Linux, not clear what it stands for
#endif
"RO"
,
"RO"
,
"RS"
,
"RS"
,
"RU"
,
"RU"
,
"RW"
,
"RW"
,
"SA"
,
"SA"
,
"SB"
,
"SB"
,
"SC"
,
"SC"
,
"SD"
,
"SD"
,
"SE"
,
"SE"
,
"SG"
,
"SG"
,
"SH"
,
"SH"
,
"SI"
,
"SI"
,
"SJ"
,
"SJ"
,
"SK"
,
"SK"
,
"SL"
,
"SL"
,
"SM"
,
"SM"
,
"SN"
,
"SN"
,
"SO"
,
"SO"
,
"SR"
,
"SR"
,
"ST"
,
"ST"
,
"SV"
,
"SV"
,
"SY"
,
"SY"
,
"SZ"
,
"SZ"
,
"TC"
,
"TC"
,
"TD"
,
"TD"
,
"TF"
,
"TF"
,
"TG"
,
"TG"
,
"TH"
,
"TH"
,
"TJ"
,
"TJ"
,
"TK"
,
"TK"
,
"TL"
,
"TL"
,
"TM"
,
"TM"
,
"TN"
,
"TN"
,
"TO"
,
"TO"
,
"TR"
,
"TR"
,
"TT"
,
"TT"
,
"TV"
,
"TV"
,
"TW"
,
"TW"
,
"TZ"
,
"TZ"
,
"UA"
,
"UA"
,
"UG"
,
"UG"
,
"UK"
,
"GB"
,
"UM"
,
"UM"
,
"US"
,
"US"
,
"UY"
,
"UY"
,
"UZ"
,
"UZ"
,
"VA"
,
"VA"
,
"VC"
,
"VC"
,
"VE"
,
"VE"
,
"VG"
,
"VG"
,
"VI"
,
"VI"
,
"VN"
,
"VN"
,
"VU"
,
"VU"
,
"WF"
,
"WF"
,
"WS"
,
"WS"
,
"YE"
,
"YE"
,
"YT"
,
"YT"
,
"YU"
,
"CS"
,
// YU has been removed from ISO 3166
"ZA"
,
"ZA"
,
"ZM"
,
"ZM"
,
"ZW"
,
"ZW"
,
""
,
};
...
...
src/solaris/native/java/net/net_util_md.c
浏览文件 @
4e203d7a
...
...
@@ -33,6 +33,7 @@
#include <netdb.h>
#include <stdlib.h>
#include <dlfcn.h>
#include <values.h>
#ifdef __solaris__
#include <sys/sockio.h>
...
...
@@ -75,17 +76,17 @@ getnameinfo_f getnameinfo_ptr = NULL;
#endif
#ifdef __solaris__
static
int
init_max_buf
;
static
int
init_
tcp_max_buf
,
init_udp_
max_buf
;
static
int
tcp_max_buf
;
static
int
udp_max_buf
;
/*
* Get the specified parameter from the specified driver. The value
* of the parameter is assumed to be an 'int'. If the parameter
* cannot be obtained return
the specified default value.
* cannot be obtained return
-1
*/
static
int
getParam
(
char
*
driver
,
char
*
param
,
int
dflt
)
getParam
(
char
*
driver
,
char
*
param
)
{
struct
strioctl
stri
;
char
buf
[
64
];
...
...
@@ -94,7 +95,7 @@ getParam(char *driver, char *param, int dflt)
s
=
open
(
driver
,
O_RDWR
);
if
(
s
<
0
)
{
return
dflt
;
return
-
1
;
}
strncpy
(
buf
,
param
,
sizeof
(
buf
));
stri
.
ic_cmd
=
ND_GET
;
...
...
@@ -102,13 +103,64 @@ getParam(char *driver, char *param, int dflt)
stri
.
ic_dp
=
buf
;
stri
.
ic_len
=
sizeof
(
buf
);
if
(
ioctl
(
s
,
I_STR
,
&
stri
)
<
0
)
{
value
=
dflt
;
value
=
-
1
;
}
else
{
value
=
atoi
(
buf
);
}
close
(
s
);
return
value
;
}
/*
* Iterative way to find the max value that SO_SNDBUF or SO_RCVBUF
* for Solaris versions that do not support the ioctl() in getParam().
* Ugly, but only called once (for each sotype).
*
* As an optimisation, we make a guess using the default values for Solaris
* assuming they haven't been modified with ndd.
*/
#define MAX_TCP_GUESS 1024 * 1024
#define MAX_UDP_GUESS 2 * 1024 * 1024
#define FAIL_IF_NOT_ENOBUFS if (errno != ENOBUFS) return -1
static
int
findMaxBuf
(
int
fd
,
int
opt
,
int
sotype
)
{
int
a
=
0
;
int
b
=
MAXINT
;
int
initial_guess
;
int
limit
=
-
1
;
if
(
sotype
==
SOCK_DGRAM
)
{
initial_guess
=
MAX_UDP_GUESS
;
}
else
{
initial_guess
=
MAX_TCP_GUESS
;
}
if
(
setsockopt
(
fd
,
SOL_SOCKET
,
opt
,
&
initial_guess
,
sizeof
(
int
))
==
0
)
{
initial_guess
++
;
if
(
setsockopt
(
fd
,
SOL_SOCKET
,
opt
,
&
initial_guess
,
sizeof
(
int
))
<
0
)
{
FAIL_IF_NOT_ENOBUFS
;
return
initial_guess
-
1
;
}
a
=
initial_guess
;
}
else
{
FAIL_IF_NOT_ENOBUFS
;
b
=
initial_guess
-
1
;
}
do
{
int
mid
=
a
+
(
b
-
a
)
/
2
;
if
(
setsockopt
(
fd
,
SOL_SOCKET
,
opt
,
&
mid
,
sizeof
(
int
))
==
0
)
{
limit
=
mid
;
a
=
mid
+
1
;
}
else
{
FAIL_IF_NOT_ENOBUFS
;
b
=
mid
-
1
;
}
}
while
(
b
>=
a
);
return
limit
;
}
#endif
#ifdef __linux__
...
...
@@ -1148,7 +1200,6 @@ NET_GetSockOpt(int fd, int level, int opt, void *result,
return
rv
;
}
/*
* Wrapper for setsockopt system routine - performs any
* necessary pre/post processing to deal with OS specific
...
...
@@ -1212,7 +1263,7 @@ NET_SetSockOpt(int fd, int level, int opt, const void *arg,
#ifdef __solaris__
if
(
level
==
SOL_SOCKET
)
{
if
(
opt
==
SO_SNDBUF
||
opt
==
SO_RCVBUF
)
{
int
sotype
,
arglen
;
int
sotype
=
0
,
arglen
;
int
*
bufsize
,
maxbuf
;
int
ret
;
...
...
@@ -1223,18 +1274,37 @@ NET_SetSockOpt(int fd, int level, int opt, const void *arg,
/* Exceeded system limit so clamp and retry */
if
(
!
init_max_buf
)
{
tcp_max_buf
=
getParam
(
"/dev/tcp"
,
"tcp_max_buf"
,
1024
*
1024
);
udp_max_buf
=
getParam
(
"/dev/udp"
,
"udp_max_buf"
,
2048
*
1024
);
init_max_buf
=
1
;
}
arglen
=
sizeof
(
sotype
);
if
(
getsockopt
(
fd
,
SOL_SOCKET
,
SO_TYPE
,
(
void
*
)
&
sotype
,
&
arglen
)
<
0
)
{
return
-
1
;
}
/*
* We try to get tcp_maxbuf (and udp_max_buf) using
* an ioctl() that isn't available on all versions of Solaris.
* If that fails, we use the search algorithm in findMaxBuf()
*/
if
(
!
init_tcp_max_buf
&&
sotype
==
SOCK_STREAM
)
{
tcp_max_buf
=
getParam
(
"/dev/tcp"
,
"tcp_max_buf"
);
if
(
tcp_max_buf
==
-
1
)
{
tcp_max_buf
=
findMaxBuf
(
fd
,
opt
,
SOCK_STREAM
);
if
(
tcp_max_buf
==
-
1
)
{
return
-
1
;
}
}
init_tcp_max_buf
=
1
;
}
else
if
(
!
init_udp_max_buf
&&
sotype
==
SOCK_DGRAM
)
{
udp_max_buf
=
getParam
(
"/dev/udp"
,
"udp_max_buf"
);
if
(
udp_max_buf
==
-
1
)
{
udp_max_buf
=
findMaxBuf
(
fd
,
opt
,
SOCK_DGRAM
);
if
(
udp_max_buf
==
-
1
)
{
return
-
1
;
}
}
init_udp_max_buf
=
1
;
}
maxbuf
=
(
sotype
==
SOCK_STREAM
)
?
tcp_max_buf
:
udp_max_buf
;
bufsize
=
(
int
*
)
arg
;
if
(
*
bufsize
>
maxbuf
)
{
...
...
src/solaris/native/sun/awt/gtk2_interface.c
浏览文件 @
4e203d7a
...
...
@@ -607,6 +607,7 @@ gboolean gtk2_load()
fp_gtk_tree_view_new
=
dl_symbol
(
"gtk_tree_view_new"
);
fp_gtk_viewport_new
=
dl_symbol
(
"gtk_viewport_new"
);
fp_gtk_window_new
=
dl_symbol
(
"gtk_window_new"
);
fp_gtk_window_present
=
dl_symbol
(
"gtk_window_present"
);
fp_gtk_dialog_new
=
dl_symbol
(
"gtk_dialog_new"
);
fp_gtk_frame_new
=
dl_symbol
(
"gtk_frame_new"
);
...
...
src/solaris/native/sun/awt/gtk2_interface.h
浏览文件 @
4e203d7a
...
...
@@ -749,6 +749,7 @@ int (*fp_gdk_pixbuf_get_rowstride)(const GdkPixbuf *pixbuf);
int
(
*
fp_gdk_pixbuf_get_width
)(
const
GdkPixbuf
*
pixbuf
);
GdkPixbuf
*
(
*
fp_gdk_pixbuf_new_from_file
)(
const
char
*
filename
,
GError
**
error
);
void
(
*
fp_gtk_widget_destroy
)(
GtkWidget
*
widget
);
void
(
*
fp_gtk_window_present
)(
GtkWindow
*
window
);
/**
...
...
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c
浏览文件 @
4e203d7a
...
...
@@ -80,6 +80,28 @@ JNIEXPORT void JNICALL Java_sun_awt_X11_GtkFileDialogPeer_quit
quit
(
env
,
jpeer
,
FALSE
);
}
/*
* Class: sun_awt_X11_GtkFileDialogPeer
* Method: toFront
* Signature: ()V
*/
JNIEXPORT
void
JNICALL
Java_sun_awt_X11_GtkFileDialogPeer_toFront
(
JNIEnv
*
env
,
jobject
jpeer
)
{
GtkWidget
*
dialog
;
fp_gdk_threads_enter
();
dialog
=
(
GtkWidget
*
)
jlong_to_ptr
(
(
*
env
)
->
GetLongField
(
env
,
jpeer
,
widgetFieldID
));
if
(
dialog
!=
NULL
)
{
fp_gtk_window_present
((
GtkWindow
*
)
dialog
);
}
fp_gdk_threads_leave
();
}
/**
* Convert a GSList to an array of filenames (without the parent folder)
*/
...
...
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.h
浏览文件 @
4e203d7a
...
...
@@ -33,6 +33,14 @@ JNIEXPORT void JNICALL Java_sun_awt_X11_GtkFileDialogPeer_run
JNIEXPORT
void
JNICALL
Java_sun_awt_X11_GtkFileDialogPeer_quit
(
JNIEnv
*
,
jobject
);
/*
* Class: sun_awt_X11_GtkFileDialogPeer
* Method: toFront
* Signature: ()V
*/
JNIEXPORT
void
JNICALL
Java_sun_awt_X11_GtkFileDialogPeer_toFront
(
JNIEnv
*
,
jobject
);
#ifdef __cplusplus
}
#endif
...
...
src/windows/bin/java_md.c
浏览文件 @
4e203d7a
...
...
@@ -70,7 +70,11 @@ static void EnsureJreInstallation(const char *jrepath);
*/
#undef ENABLE_AWT_PRELOAD
#ifndef JAVA_ARGS
/* turn off AWT preloading for javac, jar, etc */
/* CR6999872: fastdebug crashes if awt library is loaded before JVM is
* initialized*/
#if !defined(DEBUG)
#define ENABLE_AWT_PRELOAD
#endif
#endif
#ifdef ENABLE_AWT_PRELOAD
...
...
src/windows/classes/sun/awt/windows/WFramePeer.java
浏览文件 @
4e203d7a
...
...
@@ -79,10 +79,50 @@ class WFramePeer extends WWindowPeer implements FramePeer {
if
(
b
==
null
)
{
clearMaximizedBounds
();
}
else
{
setMaximizedBounds
(
b
.
x
,
b
.
y
,
b
.
width
,
b
.
height
);
Rectangle
adjBounds
=
(
Rectangle
)
b
.
clone
();
adjustMaximizedBounds
(
adjBounds
);
setMaximizedBounds
(
adjBounds
.
x
,
adjBounds
.
y
,
adjBounds
.
width
,
adjBounds
.
height
);
}
}
/**
* The incoming bounds describe the maximized size and position of the
* window on the monitor that displays the window. But the window manager
* expects that the bounds are based on the size and position of the
* primary monitor, even if the window ultimately maximizes onto a
* secondary monitor. And the window manager adjusts these values to
* compensate for differences between the primary monitor and the monitor
* that displays the window.
* The method translates the incoming bounds to the values acceptable
* by the window manager. For more details, please refer to 6699851.
*/
private
void
adjustMaximizedBounds
(
Rectangle
b
)
{
GraphicsConfiguration
currentDevGC
=
getGraphicsConfiguration
();
GraphicsDevice
primaryDev
=
GraphicsEnvironment
.
getLocalGraphicsEnvironment
().
getDefaultScreenDevice
();
GraphicsConfiguration
primaryDevGC
=
primaryDev
.
getDefaultConfiguration
();
if
(
currentDevGC
!=
null
&&
currentDevGC
!=
primaryDevGC
)
{
Rectangle
currentDevBounds
=
currentDevGC
.
getBounds
();
Rectangle
primaryDevBounds
=
primaryDevGC
.
getBounds
();
b
.
width
-=
(
currentDevBounds
.
width
-
primaryDevBounds
.
width
);
b
.
height
-=
(
currentDevBounds
.
height
-
primaryDevBounds
.
height
);
}
}
@Override
public
boolean
updateGraphicsData
(
GraphicsConfiguration
gc
)
{
boolean
result
=
super
.
updateGraphicsData
(
gc
);
Rectangle
bounds
=
AWTAccessor
.
getFrameAccessor
().
getMaximizedBounds
((
Frame
)
target
);
if
(
bounds
!=
null
)
{
setMaximizedBounds
(
bounds
);
}
return
result
;
}
@Override
boolean
isTargetUndecorated
()
{
return
((
Frame
)
target
).
isUndecorated
();
...
...
src/windows/classes/sun/security/krb5/internal/tools/Ktab.java
浏览文件 @
4e203d7a
...
...
@@ -129,7 +129,7 @@ public class Ktab {
ktab
.
deleteEntry
();
break
;
default
:
ktab
.
printHelp
(
);
ktab
.
error
(
"A command must be provided"
);
}
}
...
...
@@ -232,7 +232,7 @@ public class Ktab {
append
=
true
;
break
;
default
:
printHelp
(
);
error
(
"Unknown command: "
+
args
[
i
]
);
break
;
}
}
else
{
// optional standalone arguments
...
...
src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp
浏览文件 @
4e203d7a
...
...
@@ -969,6 +969,8 @@ void D3DInitializer::InitImpl()
}
D3DPipelineManager
*
pMgr
=
D3DPipelineManager
::
CreateInstance
();
if
(
pMgr
!=
NULL
)
{
// init adapters if we are preloading
if
(
AwtToolkit
::
GetInstance
().
GetPreloadThread
().
OnPreloadThread
())
{
UINT
adapterCount
=
pMgr
->
adapterCount
;
pAdapterIniters
=
new
D3DAdapterInitializer
[
adapterCount
];
...
...
@@ -977,6 +979,7 @@ void D3DInitializer::InitImpl()
AwtToolkit
::
GetInstance
().
GetPreloadThread
().
AddAction
(
&
pAdapterIniters
[
i
]);
}
}
}
}
void
D3DInitializer
::
CleanImpl
(
bool
reInit
)
...
...
src/windows/native/sun/windows/awt_Choice.cpp
浏览文件 @
4e203d7a
...
...
@@ -86,6 +86,7 @@ static const UINT MINIMUM_NUMBER_OF_VISIBLE_ITEMS = 8;
AwtChoice
::
AwtChoice
()
{
m_hList
=
NULL
;
m_listDefWindowProc
=
NULL
;
m_selectedItem
=
-
1
;
}
LPCTSTR
AwtChoice
::
GetClassName
()
{
...
...
@@ -437,9 +438,10 @@ LRESULT CALLBACK AwtChoice::ListWindowProc(HWND hwnd, UINT message,
MsgRouting
AwtChoice
::
WmNotify
(
UINT
notifyCode
)
{
if
(
notifyCode
==
CBN_SELCHANGE
)
{
int
itemSelect
=
(
int
)
SendMessage
(
CB_GETCURSEL
);
if
(
itemSelect
!=
CB_ERR
){
DoCallback
(
"handleAction"
,
"(I)V"
,
itemSelect
);
int
selectedItem
=
(
int
)
SendMessage
(
CB_GETCURSEL
);
if
(
selectedItem
!=
CB_ERR
&&
m_selectedItem
!=
selectedItem
){
m_selectedItem
=
selectedItem
;
DoCallback
(
"handleAction"
,
"(I)V"
,
selectedItem
);
}
}
else
if
(
notifyCode
==
CBN_DROPDOWN
)
{
...
...
src/windows/native/sun/windows/awt_Choice.h
浏览文件 @
4e203d7a
...
...
@@ -94,6 +94,7 @@ private:
static
BOOL
sm_isMouseMoveInList
;
HWND
m_hList
;
WNDPROC
m_listDefWindowProc
;
int
m_selectedItem
;
static
LRESULT
CALLBACK
ListWindowProc
(
HWND
hwnd
,
UINT
message
,
WPARAM
wParam
,
LPARAM
lParam
);
};
...
...
src/windows/native/sun/windows/awt_Toolkit.cpp
浏览文件 @
4e203d7a
...
...
@@ -1904,6 +1904,11 @@ bool AwtToolkit::PreloadThread::InvokeAndTerminate(void(_cdecl *fn)(void *), voi
return
true
;
}
bool
AwtToolkit
::
PreloadThread
::
OnPreloadThread
()
{
return
GetThreadId
()
==
::
GetCurrentThreadId
();
}
/*static*/
unsigned
WINAPI
AwtToolkit
::
PreloadThread
::
StaticThreadProc
(
void
*
param
)
{
...
...
src/windows/native/sun/windows/awt_Toolkit.h
浏览文件 @
4e203d7a
...
...
@@ -559,6 +559,8 @@ public:
CriticalSection
::
Lock
lock
(
threadLock
);
return
wrongThread
;
}
// returns true if the current thread is "preload" thread
bool
OnPreloadThread
();
private:
// data access lock
...
...
src/windows/resource/java.manifest
浏览文件 @
4e203d7a
...
...
@@ -3,7 +3,7 @@
<assemblyIdentity
version=
"1.0.0.0"
processorArchitecture=
"X86"
name=
"
Sun Microsystems, Inc.
, Java(tm) 2 Standard Edition"
name=
"
Oracle Corporation
, Java(tm) 2 Standard Edition"
type=
"win32"
/>
<description>
AWT
</description>
...
...
test/ProblemList.txt
浏览文件 @
4e203d7a
...
...
@@ -734,10 +734,6 @@ java/util/concurrent/FutureTask/BlockingTaskExecutor.java generic-all
# Problems on windows, jmap.exe hangs? (these run jmap), fails on Solaris 10 x86
java/util/concurrent/locks/Lock/TimedAcquireLeak.java generic-all
# Solaris sparc client, some failures, "1 not equal to 3"?
# also Linux problems with samevm mode, -server linux i586? 1 not equal to 3?
java/util/concurrent/Executors/AutoShutdown.java generic-all
# Fails on solaris-sparc -server (Set not equal to copy. 1)
java/util/EnumSet/EnumSetBash.java solaris-sparc
...
...
test/com/sun/net/httpserver/Test.java
浏览文件 @
4e203d7a
...
...
@@ -22,8 +22,20 @@
*/
import
com.sun.net.httpserver.*
;
import
java.util.logging.*
;
public
class
Test
{
static
Logger
logger
;
static
void
enableLogging
()
{
logger
=
Logger
.
getLogger
(
"com.sun.net.httpserver"
);
Handler
h
=
new
ConsoleHandler
();
h
.
setLevel
(
Level
.
ALL
);
logger
.
setLevel
(
Level
.
ALL
);
logger
.
addHandler
(
h
);
}
static
void
delay
()
{
try
{
Thread
.
sleep
(
1000
);
...
...
test/com/sun/net/httpserver/Test1.java
浏览文件 @
4e203d7a
...
...
@@ -25,6 +25,7 @@
* @test
* @bug 6270015
* @run main/othervm Test1
* @run main/othervm -Dsun.net.httpserver.maxReqTime=10 Test1
* @summary Light weight HTTP server
*/
...
...
test/com/sun/net/httpserver/Test13.java
浏览文件 @
4e203d7a
...
...
@@ -31,6 +31,7 @@
import
com.sun.net.httpserver.*
;
import
java.util.concurrent.*
;
import
java.util.logging.*
;
import
java.io.*
;
import
java.net.*
;
...
...
@@ -45,12 +46,19 @@ public class Test13 extends Test {
static
SSLContext
ctx
;
final
static
int
NUM
=
32
;
// was 32
static
boolean
fail
=
false
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
HttpServer
s1
=
null
;
HttpsServer
s2
=
null
;
ExecutorService
executor
=
null
;
Logger
l
=
Logger
.
getLogger
(
"com.sun.net.httpserver"
);
Handler
ha
=
new
ConsoleHandler
();
ha
.
setLevel
(
Level
.
ALL
);
l
.
setLevel
(
Level
.
ALL
);
l
.
addHandler
(
ha
);
try
{
String
root
=
System
.
getProperty
(
"test.src"
)+
"/docs"
;
System
.
out
.
print
(
"Test13: "
);
...
...
@@ -70,10 +78,10 @@ public class Test13 extends Test {
int
port
=
s1
.
getAddress
().
getPort
();
int
httpsport
=
s2
.
getAddress
().
getPort
();
Runner
r
[]
=
new
Runner
[
64
];
for
(
int
i
=
0
;
i
<
32
;
i
++)
{
Runner
r
[]
=
new
Runner
[
NUM
*
2
];
for
(
int
i
=
0
;
i
<
NUM
;
i
++)
{
r
[
i
]
=
new
Runner
(
true
,
"http"
,
root
+
"/test1"
,
port
,
"smallfile.txt"
,
23
);
r
[
i
+
32
]
=
new
Runner
(
true
,
"https"
,
root
+
"/test1"
,
port
,
"smallfile.txt"
,
23
);
r
[
i
+
NUM
]
=
new
Runner
(
true
,
"https"
,
root
+
"/test1"
,
https
port
,
"smallfile.txt"
,
23
);
}
start
(
r
);
join
(
r
);
...
...
@@ -91,6 +99,7 @@ public class Test13 extends Test {
static
void
start
(
Runner
[]
x
)
{
for
(
int
i
=
0
;
i
<
x
.
length
;
i
++)
{
if
(
x
[
i
]
!=
null
)
x
[
i
].
start
();
}
}
...
...
@@ -98,6 +107,7 @@ public class Test13 extends Test {
static
void
join
(
Runner
[]
x
)
{
for
(
int
i
=
0
;
i
<
x
.
length
;
i
++)
{
try
{
if
(
x
[
i
]
!=
null
)
x
[
i
].
join
();
}
catch
(
InterruptedException
e
)
{}
}
...
...
test/com/sun/net/httpserver/bugs/6725892/Test.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @bug 6725892
* @run main/othervm -Dsun.net.httpserver.maxReqTime=2 Test
* @summary
*/
import
com.sun.net.httpserver.*
;
import
java.util.concurrent.*
;
import
java.util.logging.*
;
import
java.io.*
;
import
java.net.*
;
import
javax.net.ssl.*
;
public
class
Test
{
static
HttpServer
s1
;
static
int
port
;
static
URL
url
;
static
final
String
RESPONSE_BODY
=
"response"
;
static
boolean
failed
=
false
;
static
class
Handler
implements
HttpHandler
{
public
void
handle
(
HttpExchange
t
)
throws
IOException
{
InputStream
is
=
t
.
getRequestBody
();
InetSocketAddress
rem
=
t
.
getRemoteAddress
();
System
.
out
.
println
(
"Request from: "
+
rem
);
while
(
is
.
read
()
!=
-
1
)
;
is
.
close
();
String
requrl
=
t
.
getRequestURI
().
toString
();
OutputStream
os
=
t
.
getResponseBody
();
t
.
sendResponseHeaders
(
200
,
RESPONSE_BODY
.
length
());
os
.
write
(
RESPONSE_BODY
.
getBytes
());
t
.
close
();
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
ExecutorService
exec
=
Executors
.
newCachedThreadPool
();
try
{
InetSocketAddress
addr
=
new
InetSocketAddress
(
0
);
s1
=
HttpServer
.
create
(
addr
,
0
);
HttpHandler
h
=
new
Handler
();
HttpContext
c1
=
s1
.
createContext
(
"/"
,
h
);
s1
.
setExecutor
(
exec
);
s1
.
start
();
port
=
s1
.
getAddress
().
getPort
();
System
.
out
.
println
(
"Server on port "
+
port
);
url
=
new
URL
(
"http://127.0.0.1:"
+
port
+
"/foo"
);
test1
();
test2
();
test3
();
Thread
.
sleep
(
2000
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"FAIL"
);
throw
new
RuntimeException
();
}
finally
{
s1
.
stop
(
0
);
System
.
out
.
println
(
"After Shutdown"
);
exec
.
shutdown
();
}
}
// open TCP connection without sending anything. Check server closes it.
static
void
test1
()
throws
IOException
{
failed
=
false
;
Socket
s
=
new
Socket
(
"127.0.0.1"
,
port
);
InputStream
is
=
s
.
getInputStream
();
// server should close connection after 2 seconds. We wait up to 10
s
.
setSoTimeout
(
10000
);
try
{
is
.
read
();
}
catch
(
SocketTimeoutException
e
)
{
failed
=
true
;
}
s
.
close
();
if
(
failed
)
{
System
.
out
.
println
(
"test1: FAIL"
);
throw
new
RuntimeException
();
}
else
{
System
.
out
.
println
(
"test1: OK"
);
}
}
// send request and don't read response. Check server closes connection
static
void
test2
()
throws
IOException
{
HttpURLConnection
urlc
=
(
HttpURLConnection
)
url
.
openConnection
();
urlc
.
setReadTimeout
(
20
*
1000
);
InputStream
is
=
urlc
.
getInputStream
();
// we won't read response and check if it times out
// on server. If it timesout at client then there is a problem
try
{
Thread
.
sleep
(
10
*
1000
);
while
(
is
.
read
()
!=
-
1
)
;
}
catch
(
InterruptedException
e
)
{
System
.
out
.
println
(
e
);
System
.
out
.
println
(
"test2: FAIL"
);
throw
new
RuntimeException
(
"unexpected error"
);
}
catch
(
SocketTimeoutException
e1
)
{
System
.
out
.
println
(
e1
);
System
.
out
.
println
(
"test2: FAIL"
);
throw
new
RuntimeException
(
"client timedout"
);
}
finally
{
is
.
close
();
}
System
.
out
.
println
(
"test2: OK"
);
}
// same as test2, but repeated with multiple connections
// including a number of valid request/responses
// Worker: a thread opens a connection to the server in one of three modes.
// NORMAL - sends a request, waits for response, and checks valid response
// REQUEST - sends a partial request, and blocks, to see if
// server closes the connection.
// RESPONSE - sends a request, partially reads response and blocks,
// to see if server closes the connection.
static
class
Worker
extends
Thread
{
CountDownLatch
latch
;
Mode
mode
;
enum
Mode
{
REQUEST
,
// block during sending of request
RESPONSE
,
// block during reading of response
NORMAL
// don't block
};
Worker
(
CountDownLatch
latch
,
Mode
mode
)
{
this
.
latch
=
latch
;
this
.
mode
=
mode
;
}
void
fail
(
String
msg
)
{
System
.
out
.
println
(
msg
);
failed
=
true
;
}
public
void
run
()
{
HttpURLConnection
urlc
;
InputStream
is
=
null
;
try
{
urlc
=
(
HttpURLConnection
)
url
.
openConnection
();
urlc
.
setReadTimeout
(
20
*
1000
);
urlc
.
setDoOutput
(
true
);
}
catch
(
IOException
e
)
{
fail
(
"Worker: failed to connect to server"
);
latch
.
countDown
();
return
;
}
try
{
OutputStream
os
=
urlc
.
getOutputStream
();
os
.
write
(
"foo"
.
getBytes
());
if
(
mode
==
Mode
.
REQUEST
)
{
Thread
.
sleep
(
3000
);
}
os
.
close
();
is
=
urlc
.
getInputStream
();
if
(
mode
==
Mode
.
RESPONSE
)
{
Thread
.
sleep
(
3000
);
}
if
(!
checkResponse
(
is
,
RESPONSE_BODY
))
{
fail
(
"Worker: response"
);
}
is
.
close
();
return
;
}
catch
(
InterruptedException
e0
)
{
fail
(
"Worker: timedout"
);
}
catch
(
SocketTimeoutException
e1
)
{
fail
(
"Worker: timedout"
);
}
catch
(
IOException
e2
)
{
switch
(
mode
)
{
case
NORMAL:
fail
(
"Worker: "
+
e2
.
getMessage
());
break
;
case
RESPONSE:
if
(
is
==
null
)
{
fail
(
"Worker: "
+
e2
.
getMessage
());
break
;
}
// default: is ok
}
}
finally
{
latch
.
countDown
();
}
}
}
static
final
int
NUM
=
20
;
static
void
test3
()
throws
Exception
{
failed
=
false
;
CountDownLatch
l
=
new
CountDownLatch
(
NUM
*
3
);
Worker
[]
workers
=
new
Worker
[
NUM
*
3
];
for
(
int
i
=
0
;
i
<
NUM
;
i
++)
{
workers
[
i
*
3
]
=
new
Worker
(
l
,
Worker
.
Mode
.
NORMAL
);
workers
[
i
*
3
+
1
]
=
new
Worker
(
l
,
Worker
.
Mode
.
REQUEST
);
workers
[
i
*
3
+
2
]
=
new
Worker
(
l
,
Worker
.
Mode
.
RESPONSE
);
workers
[
i
*
3
].
start
();
workers
[
i
*
3
+
1
].
start
();
workers
[
i
*
3
+
2
].
start
();
}
l
.
await
();
for
(
int
i
=
0
;
i
<
NUM
*
3
;
i
++)
{
workers
[
i
].
join
();
}
if
(
failed
)
{
throw
new
RuntimeException
(
"test3: failed"
);
}
System
.
out
.
println
(
"test3: OK"
);
}
static
boolean
checkResponse
(
InputStream
is
,
String
resp
)
{
try
{
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
byte
[]
buf
=
new
byte
[
64
];
int
c
;
while
((
c
=
is
.
read
(
buf
))
!=
-
1
)
{
bos
.
write
(
buf
,
0
,
c
);
}
bos
.
close
();
if
(!
bos
.
toString
().
equals
(
resp
))
{
System
.
out
.
println
(
"Wrong response: "
+
bos
.
toString
());
return
false
;
}
}
catch
(
IOException
e
)
{
System
.
out
.
println
(
e
);
return
false
;
}
return
true
;
}
}
test/com/sun/net/httpserver/bugs/B6401598.java
浏览文件 @
4e203d7a
...
...
@@ -83,7 +83,7 @@ public class B6401598 {
server
=
HttpServer
.
create
(
new
InetSocketAddress
(
0
),
400
);
server
.
createContext
(
"/server/"
,
new
MyHandler
());
exec
=
Executors
.
newFixedThreadPool
(
3
);
server
.
setExecutor
(
null
);
server
.
setExecutor
(
exec
);
port
=
server
.
getAddress
().
getPort
();
server
.
start
();
...
...
test/java/awt/Color/OpacityChange/OpacityChange.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
@test
@bug 6783910
@summary java.awt.Color.brighter()/darker() methods make color opaque
@author Andrei Dmitriev: area=awt-color
@run main OpacityChange
*/
import
java.awt.*
;
public
class
OpacityChange
{
private
final
static
int
INITIAL_ALPHA
=
125
;
public
static
void
main
(
String
argv
[])
{
Color
color
=
new
Color
(
20
,
20
,
20
,
INITIAL_ALPHA
);
System
.
out
.
println
(
"Initial alpha: "
+
color
.
getAlpha
());
Color
colorBrighter
=
color
.
brighter
();
System
.
out
.
println
(
"New alpha (after brighter): "
+
colorBrighter
.
getAlpha
());
Color
colorDarker
=
color
.
darker
();
System
.
out
.
println
(
"New alpha (after darker): "
+
colorDarker
.
getAlpha
());
if
(
INITIAL_ALPHA
!=
colorBrighter
.
getAlpha
())
{
throw
new
RuntimeException
(
"Brighter color alpha has changed from : "
+
INITIAL_ALPHA
+
" to "
+
colorBrighter
.
getAlpha
());
}
if
(
INITIAL_ALPHA
!=
colorDarker
.
getAlpha
())
{
throw
new
RuntimeException
(
"Darker color alpha has changed from : "
+
INITIAL_ALPHA
+
" to "
+
colorDarker
.
getAlpha
());
}
}
}
test/java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
@test
@bug 6990904
@summary on oel5.5, Frame doesn't show if the Frame has only a MenuBar as its component.
@author Andrei Dmitriev: area=awt-menubar
@run main/timeout=30 DeadlockTest1
*/
import
java.awt.*
;
public
class
DeadlockTest1
{
Frame
f
=
new
Frame
(
"Menu Frame"
);
DeadlockTest1
()
{
MenuBar
menubar
=
new
MenuBar
();
Menu
file
=
new
Menu
(
"File"
);
Menu
edit
=
new
Menu
(
"Edit"
);
Menu
help
=
new
Menu
(
"Help"
);
MenuItem
open
=
new
MenuItem
(
"Open"
);
MenuItem
close
=
new
MenuItem
(
"Close"
);
MenuItem
copy
=
new
MenuItem
(
"Copy"
);
MenuItem
paste
=
new
MenuItem
(
"Paste"
);
file
.
add
(
open
);
file
.
add
(
close
);
edit
.
add
(
copy
);
edit
.
add
(
paste
);
menubar
.
add
(
file
);
menubar
.
add
(
edit
);
menubar
.
add
(
help
);
menubar
.
setHelpMenu
(
help
);
f
.
setMenuBar
(
menubar
);
f
.
setSize
(
400
,
200
);
f
.
setVisible
(
true
);
try
{
Thread
.
sleep
(
5000
);
}
catch
(
InterruptedException
z
)
{
throw
new
RuntimeException
(
z
);
}
f
.
dispose
();
}
public
static
void
main
(
String
argv
[])
{
new
DeadlockTest1
();
}
}
test/java/awt/font/NumericShaper/ShapingTest.java
浏览文件 @
4e203d7a
...
...
@@ -23,8 +23,8 @@
/*
* @test
* @bug 6842557 6943963
* @summary confirm that shaping works as expected. (Mainly for new characters which were added in Unicode 5)
* @bug 6842557 6943963
6959267
* @summary confirm that shaping works as expected. (Mainly for new characters which were added in Unicode 5
and 6
)
* used where appropriate.
*/
...
...
@@ -39,6 +39,7 @@ public class ShapingTest {
public
static
void
main
(
String
[]
args
)
{
test6842557
();
test6943963
();
test6903266
();
if
(
err
)
{
throw
new
RuntimeException
(
"shape() returned unexpected value."
);
...
...
@@ -109,6 +110,34 @@ public class ShapingTest {
checkResult
(
"Range.ARABIC, Range.EASTERN_ARABIC"
,
ns
,
given
,
expected_EASTERN_ARABIC
);
}
private
static
void
test6903266
()
{
NumericShaper
ns
=
getContextualShaper
(
EnumSet
.
of
(
Range
.
TAI_THAM_HORA
));
String
given
=
"\u1a20 012"
;
String
expected
=
"\u1a20 \u1a80\u1a81\u1a82"
;
checkResult
(
"Range.TAI_THAM_HORA"
,
ns
,
given
,
expected
);
ns
=
getContextualShaper
(
EnumSet
.
of
(
Range
.
TAI_THAM_HORA
,
Range
.
TAI_THAM_THAM
));
given
=
"\u1a20 012"
;
expected
=
"\u1a20 \u1a90\u1a91\u1a92"
;
// Tham digits are prioritized.
checkResult
(
"Range.TAI_THAM_HORA, Range.TAI_THAM_THAM"
,
ns
,
given
,
expected
);
ns
=
getContextualShaper
(
EnumSet
.
of
(
Range
.
JAVANESE
));
given
=
"\ua984 012"
;
expected
=
"\ua984 \ua9d0\ua9d1\ua9d2"
;
checkResult
(
"Range.JAVANESE"
,
ns
,
given
,
expected
);
ns
=
getContextualShaper
(
EnumSet
.
of
(
Range
.
TAI_THAM_THAM
));
given
=
"\u1a20 012"
;
expected
=
"\u1a20 \u1a90\u1a91\u1a92"
;
checkResult
(
"Range.TAI_THAM_THAM"
,
ns
,
given
,
expected
);
ns
=
getContextualShaper
(
EnumSet
.
of
(
Range
.
MEETEI_MAYEK
));
given
=
"\uabc0 012"
;
expected
=
"\uabc0 \uabf0\uabf1\uabf2"
;
checkResult
(
"Range.MEETEI_MAYEK"
,
ns
,
given
,
expected
);
}
private
static
void
checkResult
(
String
ranges
,
NumericShaper
ns
,
String
given
,
String
expected
)
{
char
[]
text
=
given
.
toCharArray
();
...
...
test/java/beans/Introspector/Test6447751.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 6447751
* @summary Tests automatic search for customizers
* @author Sergey Malenkov
*/
import
java.awt.Component
;
import
java.beans.Customizer
;
import
java.beans.Introspector
;
import
java.beans.IntrospectionException
;
import
java.beans.SimpleBeanInfo
;
import
java.beans.BeanDescriptor
;
import
java.beans.PropertyChangeListener
;
public
class
Test6447751
{
public
static
void
main
(
String
[]
args
)
{
test
(
Manual
.
class
,
AutomaticCustomizer
.
class
);
test
(
Illegal
.
class
,
null
);
test
(
Automatic
.
class
,
AutomaticCustomizer
.
class
);
}
private
static
void
test
(
Class
<?>
type
,
Class
<?>
expected
)
{
Class
<?>
actual
;
try
{
actual
=
Introspector
.
getBeanInfo
(
type
).
getBeanDescriptor
().
getCustomizerClass
();
}
catch
(
IntrospectionException
exception
)
{
throw
new
Error
(
"unexpected error"
,
exception
);
}
if
(
actual
!=
expected
)
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"bean "
).
append
(
type
).
append
(
": "
);
if
(
expected
!=
null
)
{
sb
.
append
(
"expected "
).
append
(
expected
);
if
(
actual
!=
null
)
{
sb
.
append
(
", but "
);
}
}
if
(
actual
!=
null
)
{
sb
.
append
(
"found "
).
append
(
actual
);
}
throw
new
Error
(
sb
.
toString
());
}
}
public
static
class
Automatic
{
}
public
static
class
AutomaticCustomizer
extends
Component
implements
Customizer
{
public
void
setObject
(
Object
bean
)
{
throw
new
UnsupportedOperationException
();
}
}
public
static
class
Illegal
{
}
public
static
class
IllegalCustomizer
implements
Customizer
{
public
void
setObject
(
Object
bean
)
{
throw
new
UnsupportedOperationException
();
}
public
void
addPropertyChangeListener
(
PropertyChangeListener
listener
)
{
throw
new
UnsupportedOperationException
();
}
public
void
removePropertyChangeListener
(
PropertyChangeListener
listener
)
{
throw
new
UnsupportedOperationException
();
}
}
public
static
class
Manual
{
}
public
static
class
ManualBeanInfo
extends
SimpleBeanInfo
{
public
BeanDescriptor
getBeanDescriptor
()
{
return
new
BeanDescriptor
(
Manual
.
class
,
AutomaticCustomizer
.
class
);
}
}
}
test/java/lang/Character/CheckScript.java
浏览文件 @
4e203d7a
/**
* @test
* @bug 6945564
* @bug 6945564
6959267
* @summary Check that the j.l.Character.UnicodeScript
* @ignore don't run until #6903266 is integrated
*/
import
java.io.*
;
...
...
@@ -15,11 +14,15 @@ public class CheckScript {
public
static
void
main
(
String
[]
args
)
throws
Exception
{
if
(
args
.
length
!=
1
)
{
System
.
out
.
println
(
"java CharacterScript script.txt"
);
System
.
exit
(
1
);
BufferedReader
sbfr
=
null
;
if
(
args
.
length
==
0
)
{
sbfr
=
new
BufferedReader
(
new
FileReader
(
new
File
(
System
.
getProperty
(
"test.src"
,
"."
),
"Scripts.txt"
)));
}
else
if
(
args
.
length
==
1
)
{
sbfr
=
new
BufferedReader
(
new
FileReader
(
args
[
0
]));
}
else
{
System
.
out
.
println
(
"java CharacterScript Scripts.txt"
);
throw
new
RuntimeException
(
"Datafile name should be specified."
);
}
BufferedReader
sbfr
=
new
BufferedReader
(
new
FileReader
(
args
[
0
]));
Matcher
m
=
Pattern
.
compile
(
"(\\p{XDigit}+)(?:\\.{2}(\\p{XDigit}+))?\\s+;\\s+(\\w+)\\s+#.*"
).
matcher
(
""
);
String
line
=
null
;
HashMap
<
String
,
ArrayList
<
Integer
>>
scripts
=
new
HashMap
<>();
...
...
test/java/lang/Character/Scripts.txt
浏览文件 @
4e203d7a
# Scripts-
5.2
.0.txt
# Date: 20
09-08-22, 04:58:43
GMT [MD]
# Scripts-
6.0
.0.txt
# Date: 20
10-08-19, 00:48:47
GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-20
09
Unicode, Inc.
# Copyright (c) 1991-20
10
Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
...
...
@@ -73,7 +73,7 @@
02C2..02C5 ; Common # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
02C6..02D1 ; Common # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
02D2..02DF ; Common # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
02E5..02E
B ; Common # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
02E5..02E
9 ; Common # Sk [5] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER EXTRA-LOW TONE BAR
02EC ; Common # Lm MODIFIER LETTER VOICING
02ED ; Common # Sk MODIFIER LETTER UNASPIRATED
02EE ; Common # Lm MODIFIER LETTER DOUBLE APOSTROPHE
...
...
@@ -83,7 +83,6 @@
0385 ; Common # Sk GREEK DIALYTIKA TONOS
0387 ; Common # Po GREEK ANO TELEIA
0589 ; Common # Po ARMENIAN FULL STOP
0600..0603 ; Common # Cf [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
060C ; Common # Po ARABIC COMMA
061B ; Common # Po ARABIC SEMICOLON
061F ; Common # Po ARABIC QUESTION MARK
...
...
@@ -92,7 +91,6 @@
06DD ; Common # Cf ARABIC END OF AYAH
0964..0965 ; Common # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
0970 ; Common # Po DEVANAGARI ABBREVIATION SIGN
0CF1..0CF2 ; Common # So [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
0E3F ; Common # Sc THAI CURRENCY SYMBOL BAHT
0FD5..0FD8 ; Common # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
10FB ; Common # Po GEORGIAN PARAGRAPH SEPARATOR
...
...
@@ -148,7 +146,7 @@
208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
20A0..20B
8 ; Common # Sc [25] EURO-CURRENCY SIGN..TENG
E SIGN
20A0..20B
9 ; Common # Sc [26] EURO-CURRENCY SIGN..INDIAN RUPE
E SIGN
2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
...
...
@@ -157,7 +155,8 @@
210A..2113 ; Common # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
2114 ; Common # So L B BAR SYMBOL
2115 ; Common # L& DOUBLE-STRUCK CAPITAL N
2116..2118 ; Common # So [3] NUMERO SIGN..SCRIPT CAPITAL P
2116..2117 ; Common # So [2] NUMERO SIGN..SOUND RECORDING COPYRIGHT
2118 ; Common # Sm SCRIPT CAPITAL P
2119..211D ; Common # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
211E..2123 ; Common # So [6] PRESCRIPTION TAKE..VERSICLE
2124 ; Common # L& DOUBLE-STRUCK CAPITAL Z
...
...
@@ -213,7 +212,7 @@
239B..23B3 ; Common # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
23B4..23DB ; Common # So [40] TOP SQUARE BRACKET..FUSE
23DC..23E1 ; Common # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
23E2..23
E8 ; Common # So [7] WHITE TRAPEZIUM..DECIMAL EXPONENT SYMBOL
23E2..23
F3 ; Common # So [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
2400..2426 ; Common # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
2440..244A ; Common # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
2460..249B ; Common # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
...
...
@@ -227,18 +226,8 @@
25F8..25FF ; Common # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
2600..266E ; Common # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
266F ; Common # Sm MUSIC SHARP SIGN
2670..26CD ; Common # So [94] WEST SYRIAC CROSS..DISABLED CAR
26CF..26E1 ; Common # So [19] PICK..RESTRICTED LEFT ENTRY-2
26E3 ; Common # So HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
26E8..26FF ; Common # So [24] BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
2701..2704 ; Common # So [4] UPPER BLADE SCISSORS..WHITE SCISSORS
2706..2709 ; Common # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
270C..2727 ; Common # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
2729..274B ; Common # So [35] STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
274D ; Common # So SHADOWED WHITE CIRCLE
274F..2752 ; Common # So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
2756..275E ; Common # So [9] BLACK DIAMOND MINUS WHITE X..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
2761..2767 ; Common # So [7] CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
2670..26FF ; Common # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
2701..2767 ; Common # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
2768 ; Common # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
2769 ; Common # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
276A ; Common # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
...
...
@@ -254,15 +243,13 @@
2774 ; Common # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
2775 ; Common # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
2776..2793 ; Common # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
2794 ; Common # So HEAVY WIDE-HEADED RIGHTWARDS ARROW
2798..27AF ; Common # So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
27B1..27BE ; Common # So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
2794..27BF ; Common # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
27C0..27C4 ; Common # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
27C5 ; Common # Ps LEFT S-SHAPED BAG DELIMITER
27C6 ; Common # Pe RIGHT S-SHAPED BAG DELIMITER
27C7..27CA ; Common # Sm [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
27CC ; Common # Sm LONG DIVISION
27
D0..27E5 ; Common # Sm [22] WHITE DIAMOND WITH CENTRED DOT
..WHITE SQUARE WITH RIGHTWARDS TICK
27
CE..27E5 ; Common # Sm [24] SQUARED LOGICAL AND
..WHITE SQUARE WITH RIGHTWARDS TICK
27E6 ; Common # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
27E7 ; Common # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
27E8 ; Common # Ps MATHEMATICAL LEFT ANGLE BRACKET
...
...
@@ -555,27 +542,51 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1D7CE..1D7FF ; Common # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
1F000..1F02B ; Common # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
1F030..1F093 ; Common # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
1F0A0..1F0AE ; Common # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
1F0B1..1F0BE ; Common # So [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
1F0C1..1F0CF ; Common # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
1F0D1..1F0DF ; Common # So [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
1F100..1F10A ; Common # No [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
1F110..1F12E ; Common # So [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
1F131 ; Common # So SQUARED LATIN CAPITAL LETTER B
1F13D ; Common # So SQUARED LATIN CAPITAL LETTER N
1F13F ; Common # So SQUARED LATIN CAPITAL LETTER P
1F142 ; Common # So SQUARED LATIN CAPITAL LETTER S
1F146 ; Common # So SQUARED LATIN CAPITAL LETTER W
1F14A..1F14E ; Common # So [5] SQUARED HV..SQUARED PPV
1F157 ; Common # So NEGATIVE CIRCLED LATIN CAPITAL LETTER H
1F15F ; Common # So NEGATIVE CIRCLED LATIN CAPITAL LETTER P
1F179 ; Common # So NEGATIVE SQUARED LATIN CAPITAL LETTER J
1F17B..1F17C ; Common # So [2] NEGATIVE SQUARED LATIN CAPITAL LETTER L..NEGATIVE SQUARED LATIN CAPITAL LETTER M
1F17F ; Common # So NEGATIVE SQUARED LATIN CAPITAL LETTER P
1F18A..1F18D ; Common # So [4] CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P..NEGATIVE SQUARED SA
1F190 ; Common # So SQUARE DJ
1F210..1F231 ; Common # So [34] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-6253
1F130..1F169 ; Common # So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F19A ; Common # So [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
1F1E6..1F1FF ; Common # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
1F201..1F202 ; Common # So [2] SQUARED KATAKANA KOKO..SQUARED KATAKANA SA
1F210..1F23A ; Common # So [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
1F240..1F248 ; Common # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
1F250..1F251 ; Common # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
1F300..1F320 ; Common # So [33] CYCLONE..SHOOTING STAR
1F330..1F335 ; Common # So [6] CHESTNUT..CACTUS
1F337..1F37C ; Common # So [70] TULIP..BABY BOTTLE
1F380..1F393 ; Common # So [20] RIBBON..GRADUATION CAP
1F3A0..1F3C4 ; Common # So [37] CAROUSEL HORSE..SURFER
1F3C6..1F3CA ; Common # So [5] TROPHY..SWIMMER
1F3E0..1F3F0 ; Common # So [17] HOUSE BUILDING..EUROPEAN CASTLE
1F400..1F43E ; Common # So [63] RAT..PAW PRINTS
1F440 ; Common # So EYES
1F442..1F4F7 ; Common # So [182] EAR..CAMERA
1F4F9..1F4FC ; Common # So [4] VIDEO CAMERA..VIDEOCASSETTE
1F500..1F53D ; Common # So [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
1F550..1F567 ; Common # So [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
1F5FB..1F5FF ; Common # So [5] MOUNT FUJI..MOYAI
1F601..1F610 ; Common # So [16] GRINNING FACE WITH SMILING EYES..NEUTRAL FACE
1F612..1F614 ; Common # So [3] UNAMUSED FACE..PENSIVE FACE
1F616 ; Common # So CONFOUNDED FACE
1F618 ; Common # So FACE THROWING A KISS
1F61A ; Common # So KISSING FACE WITH CLOSED EYES
1F61C..1F61E ; Common # So [3] FACE WITH STUCK-OUT TONGUE AND WINKING EYE..DISAPPOINTED FACE
1F620..1F625 ; Common # So [6] ANGRY FACE..DISAPPOINTED BUT RELIEVED FACE
1F628..1F62B ; Common # So [4] FEARFUL FACE..TIRED FACE
1F62D ; Common # So LOUDLY CRYING FACE
1F630..1F633 ; Common # So [4] FACE WITH OPEN MOUTH AND COLD SWEAT..FLUSHED FACE
1F635..1F640 ; Common # So [12] DIZZY FACE..WEARY CAT FACE
1F645..1F64F ; Common # So [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
1F680..1F6C5 ; Common # So [70] ROCKET..LEFT LUGGAGE
1F700..1F773 ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
E0001 ; Common # Cf LANGUAGE TAG
E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
# Total code points:
5395
# Total code points:
6379
# ================================================
...
...
@@ -603,7 +614,7 @@ E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
1E00..1EFF ; Latin # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
2071 ; Latin # Lm SUPERSCRIPT LATIN SMALL LETTER I
207F ; Latin # Lm SUPERSCRIPT LATIN SMALL LETTER N
2090..209
4 ; Latin # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
2090..209
C ; Latin # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
212A..212B ; Latin # L& [2] KELVIN SIGN..ANGSTROM SIGN
2132 ; Latin # L& TURNED CAPITAL F
214E ; Latin # L& TURNED SMALL F
...
...
@@ -616,13 +627,16 @@ E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
A722..A76F ; Latin # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
A770 ; Latin # Lm MODIFIER LETTER US
A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
A78B..A78C ; Latin # L& [2] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER SALTILLO
A78B..A78E ; Latin # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A790..A791 ; Latin # L& [2] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER N WITH DESCENDER
A7A0..A7A9 ; Latin # L& [10] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN SMALL LETTER S WITH OBLIQUE STROKE
A7FA ; Latin # L& LATIN LETTER SMALL CAPITAL TURNED M
A7FB..A7FF ; Latin # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
# Total code points: 12
44
# Total code points: 12
67
# ================================================
...
...
@@ -687,12 +701,11 @@ FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
0483..0484 ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PALATALIZATION
0487 ; Cyrillic # Mn COMBINING CYRILLIC POKRYTIE
0488..0489 ; Cyrillic # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
048A..052
5 ; Cyrillic # L& [156] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER PE
WITH DESCENDER
048A..052
7 ; Cyrillic # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA
WITH DESCENDER
1D2B ; Cyrillic # L& CYRILLIC LETTER SMALL CAPITAL EL
1D78 ; Cyrillic # Lm MODIFIER LETTER CYRILLIC EN
2DE0..2DFF ; Cyrillic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
A640..A65F ; Cyrillic # L& [32] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER YN
A662..A66D ; Cyrillic # L& [12] CYRILLIC CAPITAL LETTER SOFT DE..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
A640..A66D ; Cyrillic # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
A66E ; Cyrillic # Lo CYRILLIC LETTER MULTIOCULAR O
A66F ; Cyrillic # Mn COMBINING CYRILLIC VZMET
A670..A672 ; Cyrillic # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
...
...
@@ -702,7 +715,7 @@ A67E ; Cyrillic # Po CYRILLIC KAVYKA
A67F ; Cyrillic # Lm CYRILLIC PAYEROK
A680..A697 ; Cyrillic # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
# Total code points: 40
4
# Total code points: 40
8
# ================================================
...
...
@@ -744,6 +757,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
# ================================================
0600..0603 ; Arabic # Cf [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
0606..0608 ; Arabic # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
0609..060A ; Arabic # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
060B ; Arabic # Sc AFGHANI SIGN
...
...
@@ -751,7 +765,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
0610..061A ; Arabic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK
062
1..063F ; Arabic # Lo [31] ARABIC LETTER HAMZA
..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
062
0..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH
..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
0656..065E ; Arabic # Mn [9] ARABIC SUBSCRIPT ALEF..ARABIC FATHA WITH TWO DOTS
066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
...
...
@@ -760,7 +774,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
06D4 ; Arabic # Po ARABIC FULL STOP
06D5 ; Arabic # Lo ARABIC LETTER AE
06D6..06DC ; Arabic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
06DE ; Arabic #
Me
ARABIC START OF RUB EL HIZB
06DE ; Arabic #
So
ARABIC START OF RUB EL HIZB
06DF..06E4 ; Arabic # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
06E5..06E6 ; Arabic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
06E7..06E8 ; Arabic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
...
...
@@ -773,6 +787,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
FBB2..FBC1 ; Arabic # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
...
...
@@ -782,7 +797,7 @@ FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN
FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
10E60..10E7E ; Arabic # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
# Total code points: 10
30
# Total code points: 10
51
# ================================================
...
...
@@ -809,27 +824,29 @@ FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
0900..0902 ; Devanagari # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
0903 ; Devanagari # Mc DEVANAGARI SIGN VISARGA
0904..0939 ; Devanagari # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
093A ; Devanagari # Mn DEVANAGARI VOWEL SIGN OE
093B ; Devanagari # Mc DEVANAGARI VOWEL SIGN OOE
093C ; Devanagari # Mn DEVANAGARI SIGN NUKTA
093D ; Devanagari # Lo DEVANAGARI SIGN AVAGRAHA
093E..0940 ; Devanagari # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
0941..0948 ; Devanagari # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
0949..094C ; Devanagari # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
094D ; Devanagari # Mn DEVANAGARI SIGN VIRAMA
094E
; Devanagari # Mc DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
094E
..094F ; Devanagari # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
0950 ; Devanagari # Lo DEVANAGARI OM
0953..095
5 ; Devanagari # Mn [3] DEVANAGARI GRAVE ACCENT..DEVANAGARI VOWEL SIGN CANDRA LONG
E
0953..095
7 ; Devanagari # Mn [5] DEVANAGARI GRAVE ACCENT..DEVANAGARI VOWEL SIGN UU
E
0958..0961 ; Devanagari # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
0962..0963 ; Devanagari # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
0966..096F ; Devanagari # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
0971 ; Devanagari # Lm DEVANAGARI SIGN HIGH SPACING DOT
0972
; Devanagari # Lo DEVANAGARI LETTER CANDRA A
0972
..0977 ; Devanagari # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
0979..097F ; Devanagari # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
A8E0..A8F1 ; Devanagari # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
A8F2..A8F7 ; Devanagari # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
A8F8..A8FA ; Devanagari # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
# Total code points: 1
4
0
# Total code points: 1
5
0
# ================================================
...
...
@@ -941,8 +958,9 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0B66..0B6F ; Oriya # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
0B70 ; Oriya # So ORIYA ISSHAR
0B71 ; Oriya # Lo ORIYA LETTER WA
0B72..0B77 ; Oriya # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
# Total code points:
84
# Total code points:
90
# ================================================
...
...
@@ -1018,22 +1036,23 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0CE0..0CE1 ; Kannada # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
0CE2..0CE3 ; Kannada # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0CF1..0CF2 ; Kannada # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
# Total code points: 8
4
# Total code points: 8
6
# ================================================
0D02..0D03 ; Malayalam # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D05..0D0C ; Malayalam # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
0D0E..0D10 ; Malayalam # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
0D12..0D28 ; Malayalam # Lo [23] MALAYALAM LETTER O..MALAYALAM LETTER NA
0D2A..0D39 ; Malayalam # Lo [16] MALAYALAM LETTER PA..MALAYALAM LETTER HA
0D12..0D3A ; Malayalam # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
0D3D ; Malayalam # Lo MALAYALAM SIGN AVAGRAHA
0D3E..0D40 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
0D41..0D44 ; Malayalam # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0D46..0D48 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
0D4A..0D4C ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
0D4D ; Malayalam # Mn MALAYALAM SIGN VIRAMA
0D4E ; Malayalam # Lo MALAYALAM LETTER DOT REPH
0D57 ; Malayalam # Mc MALAYALAM AU LENGTH MARK
0D60..0D61 ; Malayalam # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
0D62..0D63 ; Malayalam # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
...
...
@@ -1042,7 +1061,7 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0D79 ; Malayalam # So MALAYALAM DATE MARK
0D7A..0D7F ; Malayalam # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
# Total code points: 9
5
# Total code points: 9
8
# ================================================
...
...
@@ -1132,16 +1151,17 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0F80..0F84 ; Tibetan # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
0F85 ; Tibetan # Po TIBETAN MARK PALUTA
0F86..0F87 ; Tibetan # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
0F88..0F8
B ; Tibetan # Lo [4] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN GRU MED RGYINGS
0F
90..0F97 ; Tibetan # Mn [8] TIBETAN SUBJOINED LETTER KA
..TIBETAN SUBJOINED LETTER JA
0F88..0F8
C ; Tibetan # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
0F
8D..0F97 ; Tibetan # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN
..TIBETAN SUBJOINED LETTER JA
0F99..0FBC ; Tibetan # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
0FBE..0FC5 ; Tibetan # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
0FC6 ; Tibetan # Mn TIBETAN SYMBOL PADMA GDAN
0FC7..0FCC ; Tibetan # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
0FCE..0FCF ; Tibetan # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
0FD0..0FD4 ; Tibetan # Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
0FD9..0FDA ; Tibetan # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
# Total code points: 20
1
# Total code points: 20
7
# ================================================
...
...
@@ -1201,6 +1221,7 @@ AA7B ; Myanmar # Mc MYANMAR SIGN PAO KAREN TONE
# ================================================
1100..11FF ; Hangul # Lo [256] HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
302E..302F ; Hangul # Mn [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
3131..318E ; Hangul # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
3200..321E ; Hangul # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
3260..327E ; Hangul # So [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
...
...
@@ -1214,7 +1235,7 @@ FFCA..FFCF ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL
FFD2..FFD7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
# Total code points: 1173
7
# Total code points: 1173
9
# ================================================
...
...
@@ -1234,7 +1255,7 @@ FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL L
12D8..1310 ; Ethiopic # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
1312..1315 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
1318..135A ; Ethiopic # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
135
F ; Ethiopic # Mn
ETHIOPIC COMBINING GEMINATION MARK
135
D..135F ; Ethiopic # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..
ETHIOPIC COMBINING GEMINATION MARK
1360 ; Ethiopic # So ETHIOPIC SECTION MARK
1361..1368 ; Ethiopic # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
1369..137C ; Ethiopic # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
...
...
@@ -1249,8 +1270,13 @@ FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL L
2DC8..2DCE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
2DD0..2DD6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
2DD8..2DDE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
AB01..AB06 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
AB09..AB0E ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
AB11..AB16 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
AB20..AB26 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
AB28..AB2E ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
# Total code points: 4
61
# Total code points: 4
95
# ================================================
...
...
@@ -1329,9 +1355,10 @@ FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL L
3041..3096 ; Hiragana # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI
1B001 ; Hiragana # Lo HIRAGANA LETTER ARCHAIC YE
1F200 ; Hiragana # So SQUARE HIRAGANA HOKA
# Total code points: 9
0
# Total code points: 9
1
# ================================================
...
...
@@ -1343,15 +1370,17 @@ FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL L
3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
# Total code points:
299
# Total code points:
300
# ================================================
02EA..02EB ; Bopomofo # Sk [2] MODIFIER LETTER YIN DEPARTING TONE MARK..MODIFIER LETTER YANG DEPARTING TONE MARK
3105..312D ; Bopomofo # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH
31A0..31B
7 ; Bopomofo # Lo [24] BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
31A0..31B
A ; Bopomofo # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY
# Total code points:
65
# Total code points:
70
# ================================================
...
...
@@ -1370,9 +1399,10 @@ FA30..FA6D ; Han # Lo [62] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILI
FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
20000..2A6D6 ; Han # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
2A700..2B734 ; Han # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
# Total code points: 75
738
# Total code points: 75
960
# ================================================
...
...
@@ -1410,6 +1440,7 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
0300..036F ; Inherited # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
0485..0486 ; Inherited # Mn [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA
064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
065F ; Inherited # Mn ARABIC WAVY HAMZA BELOW
0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF
0951..0952 ; Inherited # Mn [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
...
...
@@ -1417,14 +1448,14 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
1CE2..1CE8 ; Inherited # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; Inherited # Mn VEDIC SIGN TIRYAK
1DC0..1DE6 ; Inherited # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
1DF
D..1DFF ; Inherited # Mn [3] COMBINING ALMOST EQUAL TO
BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
1DF
C..1DFF ; Inherited # Mn [4] COMBINING DOUBLE INVERTED BREVE
BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; Inherited # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
20E1 ; Inherited # Mn COMBINING LEFT RIGHT ARROW ABOVE
20E2..20E4 ; Inherited # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
20E5..20F0 ; Inherited # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
302A..302
F ; Inherited # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT
TONE MARK
302A..302
D ; Inherited # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING
TONE MARK
3099..309A ; Inherited # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
FE00..FE0F ; Inherited # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
FE20..FE26 ; Inherited # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
...
...
@@ -1568,8 +1599,9 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
19B0..19C0 ; New_Tai_Lue # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
19C1..19C7 ; New_Tai_Lue # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
19C8..19C9 ; New_Tai_Lue # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
19D0..19DA ; New_Tai_Lue # Nd [11] NEW TAI LUE DIGIT ZERO..NEW TAI LUE THAM DIGIT ONE
19DE..19DF ; New_Tai_Lue # Po [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
19D0..19D9 ; New_Tai_Lue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
19DA ; New_Tai_Lue # No NEW TAI LUE THAM DIGIT ONE
19DE..19DF ; New_Tai_Lue # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
# Total code points: 83
...
...
@@ -1584,8 +1616,10 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
2D30..2D65 ; Tifinagh # Lo [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
2D6F ; Tifinagh # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
2D70 ; Tifinagh # Po TIFINAGH SEPARATOR MARK
2D7F ; Tifinagh # Mn TIFINAGH CONSONANT JOINER
# Total code points: 5
5
# Total code points: 5
7
# ================================================
...
...
@@ -1882,8 +1916,9 @@ A6A0..A6E5 ; Bamum # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
A6E6..A6EF ; Bamum # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
A6F0..A6F1 ; Bamum # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
A6F2..A6F7 ; Bamum # Po [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
16800..16A38 ; Bamum # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
# Total code points:
88
# Total code points:
657
# ================================================
...
...
@@ -1969,4 +2004,40 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
# Total code points: 66
# ================================================
1BC0..1BE5 ; Batak # Lo [38] BATAK LETTER A..BATAK LETTER U
1BE6 ; Batak # Mn BATAK SIGN TOMPI
1BE7 ; Batak # Mc BATAK VOWEL SIGN E
1BE8..1BE9 ; Batak # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
1BEA..1BEC ; Batak # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
1BED ; Batak # Mn BATAK VOWEL SIGN KARO O
1BEE ; Batak # Mc BATAK VOWEL SIGN U
1BEF..1BF1 ; Batak # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
1BF2..1BF3 ; Batak # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
1BFC..1BFF ; Batak # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
# Total code points: 56
# ================================================
11000 ; Brahmi # Mc BRAHMI SIGN CANDRABINDU
11001 ; Brahmi # Mn BRAHMI SIGN ANUSVARA
11002 ; Brahmi # Mc BRAHMI SIGN VISARGA
11003..11037 ; Brahmi # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
11038..11046 ; Brahmi # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
11047..1104D ; Brahmi # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
11052..11065 ; Brahmi # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
11066..1106F ; Brahmi # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
# Total code points: 108
# ================================================
0840..0858 ; Mandaic # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
0859..085B ; Mandaic # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
085E ; Mandaic # Po MANDAIC PUNCTUATION
# Total code points: 29
# EOF
test/java/nio/Buffer/StringCharBufferSliceTest.java
浏览文件 @
4e203d7a
...
...
@@ -22,7 +22,7 @@
*/
/* @test
* @bug 4997655
* @bug 4997655
7000913
* @summary (bf) CharBuffer.slice() on wrapped CharSequence results in wrong position
*/
...
...
@@ -75,12 +75,27 @@ public class StringCharBufferSliceTest {
}
}
System
.
out
.
println
(
">>> StringCharBufferSliceTest-main: testing slice with result of slice"
);
buff
.
position
(
0
);
buff
.
limit
(
buff
.
capacity
());
slice
=
buff
.
slice
();
for
(
int
i
=
0
;
i
<
4
;
i
++)
{
slice
.
position
(
i
);
CharBuffer
nextSlice
=
slice
.
slice
();
if
(
nextSlice
.
position
()
!=
0
)
throw
new
RuntimeException
(
"New buffer's position should be zero"
);
if
(!
nextSlice
.
equals
(
slice
))
throw
new
RuntimeException
(
"New buffer should be equal"
);
slice
=
nextSlice
;
}
System
.
out
.
println
(
">>> StringCharBufferSliceTest-main: testing toString."
);
buff
.
position
(
4
);
buff
.
limit
(
7
);
slice
=
buff
.
slice
();
if
(!
slice
.
toString
().
equals
(
"tes"
))
{
if
(!
slice
.
toString
().
equals
(
"tes"
))
{
throw
new
RuntimeException
(
"bad toString() after slice(): "
+
slice
.
toString
());
}
...
...
@@ -104,6 +119,7 @@ public class StringCharBufferSliceTest {
||
dupe
.
charAt
(
2
)
!=
's'
||
dupe
.
charAt
(
3
)
!=
't'
)
{
throw
new
RuntimeException
(
"bad duplicate() after slice(): '"
+
dupe
+
"'"
);
}
System
.
out
.
println
(
">>> StringCharBufferSliceTest-main: done!"
);
}
...
...
test/java/nio/channels/AsynchronousSocketChannel/Basic.java
浏览文件 @
4e203d7a
...
...
@@ -22,7 +22,7 @@
*/
/* @test
* @bug 4607272 6842687
* @bug 4607272 6842687
6878369
* @summary Unit test for AsynchronousSocketChannel
* @run main/timeout=600 Basic
*/
...
...
@@ -712,27 +712,32 @@ public class Basic {
}
static
void
testTimeout
()
throws
Exception
{
System
.
out
.
println
(
"-- timeouts --"
);
testTimeout
(
Integer
.
MIN_VALUE
,
TimeUnit
.
SECONDS
);
testTimeout
(-
1L
,
TimeUnit
.
SECONDS
);
testTimeout
(
0L
,
TimeUnit
.
SECONDS
);
testTimeout
(
2L
,
TimeUnit
.
SECONDS
);
}
static
void
testTimeout
(
final
long
timeout
,
final
TimeUnit
unit
)
throws
Exception
{
Server
server
=
new
Server
();
AsynchronousSocketChannel
ch
=
AsynchronousSocketChannel
.
open
();
ch
.
connect
(
server
.
address
()).
get
();
System
.
out
.
println
(
"-- timeout when reading --"
);
ByteBuffer
dst
=
ByteBuffer
.
allocate
(
512
);
final
AtomicReference
<
Throwable
>
readException
=
new
AtomicReference
<
Throwable
>();
// this read should timeout
ch
.
read
(
dst
,
3
,
TimeUnit
.
SECONDS
,
(
Void
)
null
,
new
CompletionHandler
<
Integer
,
Void
>()
{
// this read should timeout if value is > 0
ch
.
read
(
dst
,
timeout
,
unit
,
null
,
new
CompletionHandler
<
Integer
,
Void
>()
{
public
void
completed
(
Integer
result
,
Void
att
)
{
throw
new
RuntimeException
(
"Should not complete"
);
readException
.
set
(
new
RuntimeException
(
"Should not complete"
)
);
}
public
void
failed
(
Throwable
exc
,
Void
att
)
{
readException
.
set
(
exc
);
}
});
if
(
timeout
>
0L
)
{
// wait for exception
while
(
readException
.
get
()
==
null
)
{
Thread
.
sleep
(
100
);
...
...
@@ -749,15 +754,15 @@ public class Basic {
}
if
(!
exceptionThrown
)
throw
new
RuntimeException
(
"RuntimeException expected after timeout."
);
System
.
out
.
println
(
"-- timeout when writing --"
);
}
else
{
Thread
.
sleep
(
1000
);
Throwable
exc
=
readException
.
get
();
if
(
exc
!=
null
)
throw
new
RuntimeException
(
exc
);
}
final
AtomicReference
<
Throwable
>
writeException
=
new
AtomicReference
<
Throwable
>();
final
long
timeout
=
5
;
final
TimeUnit
unit
=
TimeUnit
.
SECONDS
;
// write bytes to fill socket buffer
ch
.
write
(
genBuffer
(),
timeout
,
unit
,
ch
,
new
CompletionHandler
<
Integer
,
AsynchronousSocketChannel
>()
...
...
@@ -769,7 +774,7 @@ public class Basic {
writeException
.
set
(
exc
);
}
});
if
(
timeout
>
0
)
{
// wait for exception
while
(
writeException
.
get
()
==
null
)
{
Thread
.
sleep
(
100
);
...
...
@@ -778,7 +783,7 @@ public class Basic {
throw
new
RuntimeException
(
"InterruptedByTimeoutException expected"
);
// after a timeout then further writing should throw unspecified runtime exception
exceptionThrown
=
false
;
boolean
exceptionThrown
=
false
;
try
{
ch
.
write
(
genBuffer
());
}
catch
(
RuntimeException
x
)
{
...
...
@@ -786,7 +791,15 @@ public class Basic {
}
if
(!
exceptionThrown
)
throw
new
RuntimeException
(
"RuntimeException expected after timeout."
);
}
else
{
Thread
.
sleep
(
1000
);
Throwable
exc
=
writeException
.
get
();
if
(
exc
!=
null
)
throw
new
RuntimeException
(
exc
);
}
// clean-up
server
.
accept
().
close
();
ch
.
close
();
server
.
close
();
}
...
...
test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh
浏览文件 @
4e203d7a
...
...
@@ -68,11 +68,10 @@ case "$OS" in
;;
esac
# remove old class files
cd
${
TESTCLASSES
}${
FILESEP
}
rm
-f
ClassLoaderDeadlock.class
rm
-rf
provider
mkdir
provider
if
[
!
-d
provider
]
;
then
mkdir
provider
fi
# compile the test program
${
TESTJAVA
}${
FILESEP
}
bin
${
FILESEP
}
javac
\
...
...
@@ -88,4 +87,11 @@ ${TESTJAVA}${FILESEP}bin${FILESEP}java \
-classpath
"
${
TESTCLASSES
}${
PATHSEP
}${
TESTSRC
}${
FILESEP
}
Deadlock.jar"
\
ClassLoaderDeadlock
exit
$?
STATUS
=
$?
# clean up
rm
-f
'ClassLoaderDeadlock.class'
'ClassLoaderDeadlock$1.class'
\
'ClassLoaderDeadlock$DelayClassLoader.class'
\
provider
${
FILESEP
}
HashProvider.class
exit
$STATUS
test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh
浏览文件 @
4e203d7a
...
...
@@ -26,7 +26,6 @@
# @test
# @bug 6440846
# @ignore until 6203816 is dealt with.
# @summary make sure we do not deadlock between ExtClassLoader and AppClassLoader
# @author Valerie Peng
# @run shell/timeout=20 Deadlock2.sh
...
...
@@ -71,11 +70,14 @@ esac
# remove old class files
cd
${
TESTCLASSES
}
rm
-f
Deadlock2
*
.class
if
[
-d
testlib
]
;
then
rm
-rf
testlib
fi
cp
-r
${
TESTJAVA
}${
FILESEP
}
lib
${
FILESEP
}
ext testlib
if
[
-d
${
TESTJAVA
}${
FILESEP
}
lib
${
FILESEP
}
ext
]
;
then
cp
-r
${
TESTJAVA
}${
FILESEP
}
lib
${
FILESEP
}
ext testlib
else
cp
-r
${
TESTJAVA
}${
FILESEP
}
jre
${
FILESEP
}
lib
${
FILESEP
}
ext testlib
fi
# compile and package the test program
${
TESTJAVA
}${
FILESEP
}
bin
${
FILESEP
}
javac
\
...
...
test/java/text/Bidi/Bug7002398.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 7002398
* @summary Verify that Corrigendum #8 for Unicode 6.0.0 has been applied.
*/
import
java.text.*
;
public
class
Bug7002398
{
private
static
final
int
[]
directions
=
{
Bidi
.
DIRECTION_DEFAULT_LEFT_TO_RIGHT
,
Bidi
.
DIRECTION_DEFAULT_RIGHT_TO_LEFT
,
Bidi
.
DIRECTION_LEFT_TO_RIGHT
,
Bidi
.
DIRECTION_RIGHT_TO_LEFT
};
/*
* Old Bidi class: AL AN AL AN AL
* New Bidi class: AL
*/
private
static
final
String
str
=
"\u0627\u0660\u0710\u070F\u070D"
;
private
static
final
int
[]
expectedLevels
=
{
1
,
2
,
1
,
1
,
1
};
public
static
void
main
(
String
[]
args
)
{
boolean
err
=
false
;
for
(
int
dir
=
0
;
dir
<
directions
.
length
;
dir
++)
{
Bidi
bidi
=
new
Bidi
(
str
,
directions
[
dir
]);
for
(
int
index
=
0
;
index
<
str
.
length
();
index
++)
{
int
gotLevel
=
bidi
.
getLevelAt
(
index
);
if
(
gotLevel
!=
expectedLevels
[
index
])
{
err
=
true
;
System
.
err
.
println
(
"Unexpected level for the character 0x"
+
Integer
.
toHexString
(
str
.
charAt
(
index
)).
toUpperCase
()
+
": Expected level = "
+
expectedLevels
[
index
]
+
", actual level = "
+
bidi
.
getLevelAt
(
index
)
+
" in direction = "
+
directions
[
dir
]
+
"."
);
}
}
}
if
(
err
)
{
throw
new
RuntimeException
(
"Failed."
);
}
}
}
test/java/util/Currency/Bug6807534.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 6807534
* @summary check whether the default implementation of
* CurrencNameProvider.getDisplayName(String, Locale) throws appropriate
* exceptions when necessary.
*/
import
java.util.Locale
;
import
java.util.spi.CurrencyNameProvider
;
public
class
Bug6807534
{
static
final
CurrencyNameProvider
cnp
=
new
CurrencyNameProviderImpl
();
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// test for NullPointerException (currencyCode)
try
{
cnp
.
getDisplayName
(
null
,
Locale
.
US
);
throwException
(
"NPE was not thrown with null currencyCode"
);
}
catch
(
NullPointerException
npe
)
{}
// test for NullPointerException (locale)
try
{
cnp
.
getDisplayName
(
"USD"
,
null
);
throwException
(
"NPE was not thrown with null locale"
);
}
catch
(
NullPointerException
npe
)
{}
// test for IllegalArgumentException (illegal currencyCode)
try
{
cnp
.
getDisplayName
(
"INVALID"
,
Locale
.
US
);
throwException
(
"IllegalArgumentException was not thrown with invalid currency code"
);
}
catch
(
IllegalArgumentException
iae
)
{}
try
{
cnp
.
getDisplayName
(
"inv"
,
Locale
.
US
);
throwException
(
"IllegalArgumentException was not thrown with invalid currency code"
);
}
catch
(
IllegalArgumentException
iae
)
{}
// test for IllegalArgumentException (non-supported locale)
try
{
cnp
.
getDisplayName
(
"USD"
,
Locale
.
JAPAN
);
throwException
(
"IllegalArgumentException was not thrown with non-supported locale"
);
}
catch
(
IllegalArgumentException
iae
)
{}
}
static
void
throwException
(
String
msg
)
{
throw
new
RuntimeException
(
"test failed. "
+
msg
);
}
static
class
CurrencyNameProviderImpl
extends
CurrencyNameProvider
{
// dummy implementation
public
String
getSymbol
(
String
currencyCode
,
Locale
locale
)
{
return
""
;
}
public
Locale
[]
getAvailableLocales
()
{
Locale
[]
avail
=
new
Locale
[
1
];
avail
[
0
]
=
Locale
.
US
;
return
avail
;
}
}
}
test/java/util/Locale/data/deflocale.rhel5
浏览文件 @
4e203d7a
...
...
@@ -518,16 +518,16 @@ display locale: ID: bn_IN, Name: Bengali (India)
format locale: ID: bn_IN, Name: Bengali (India)
default charset: UTF-8
OS Locale: bokm
a
l
OS Locale: bokml
default locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
display locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
format locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
default charset: ISO-8859-1
OS Locale: bokml
default locale: ID:
en, Name: English
display locale: ID:
en, Name: English
format locale: ID:
en, Name: English
OS Locale: bokm
a
l
default locale: ID:
nb_NO, Name: Norwegian Bokml (Norway)
display locale: ID:
nb_NO, Name: Norwegian Bokml (Norway)
format locale: ID:
nb_NO, Name: Norwegian Bokml (Norway)
default charset: ISO-8859-1
OS Locale: br_FR
...
...
test/java/util/Locale/data/deflocale.rhel5.fmtasdefault
浏览文件 @
4e203d7a
...
...
@@ -518,16 +518,16 @@ display locale: ID: bn_IN, Name: Bengali (India)
format locale: ID: bn_IN, Name: Bengali (India)
default charset: UTF-8
OS Locale: bokm
a
l
OS Locale: bokml
default locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
display locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
format locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
default charset: ISO-8859-1
OS Locale: bokml
default locale: ID:
en, Name: English
display locale: ID:
en, Name: English
format locale: ID:
en, Name: English
OS Locale: bokm
a
l
default locale: ID:
nb_NO, Name: Norwegian Bokml (Norway)
display locale: ID:
nb_NO, Name: Norwegian Bokml (Norway)
format locale: ID:
nb_NO, Name: Norwegian Bokml (Norway)
default charset: ISO-8859-1
OS Locale: br_FR
...
...
test/java/util/ResourceBundle/Bug4168625Test.java
浏览文件 @
4e203d7a
...
...
@@ -32,12 +32,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
* This software is the confidential and proprietary information
* of Sun Microsystems, Inc. ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with Sun.
*
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
...
...
test/java/util/concurrent/Executors/AutoShutdown.java
浏览文件 @
4e203d7a
...
...
@@ -32,21 +32,40 @@ import java.io.*;
import
java.util.*
;
import
java.util.concurrent.*
;
import
static
java
.
util
.
concurrent
.
Executors
.*;
import
java.util.concurrent.Phaser
;
public
class
AutoShutdown
{
private
static
void
waitForFinalizersToRun
()
throws
Throwable
{
System
.
gc
();
System
.
runFinalization
();
Thread
.
sleep
(
10
);
System
.
gc
();
System
.
runFinalization
();
Thread
.
sleep
(
10
);
private
static
void
waitForFinalizersToRun
()
{
for
(
int
i
=
0
;
i
<
2
;
i
++)
tryWaitForFinalizersToRun
();
}
private
static
void
tryWaitForFinalizersToRun
()
{
System
.
gc
();
final
CountDownLatch
fin
=
new
CountDownLatch
(
1
);
new
Object
()
{
protected
void
finalize
()
{
fin
.
countDown
();
}};
System
.
gc
();
try
{
fin
.
await
();
}
catch
(
InterruptedException
ie
)
{
throw
new
Error
(
ie
);
}
}
private
static
void
realMain
(
String
[]
args
)
throws
Throwable
{
Runnable
trivialRunnable
=
new
Runnable
()
{
public
void
run
()
{}};
final
Phaser
phaser
=
new
Phaser
(
3
);
Runnable
trivialRunnable
=
new
Runnable
()
{
public
void
run
()
{
phaser
.
arriveAndAwaitAdvance
();
}
};
int
count0
=
Thread
.
activeCount
();
newSingleThreadExecutor
().
execute
(
trivialRunnable
);
newSingleThreadExecutor
(
defaultThreadFactory
()).
execute
(
trivialRunnable
);
Thread
.
sleep
(
100
);
Executor
e1
=
newSingleThreadExecutor
();
Executor
e2
=
newSingleThreadExecutor
(
defaultThreadFactory
());
e1
.
execute
(
trivialRunnable
);
e2
.
execute
(
trivialRunnable
);
phaser
.
arriveAndAwaitAdvance
();
equal
(
Thread
.
activeCount
(),
count0
+
2
);
waitForFinalizersToRun
();
e1
=
e2
=
null
;
for
(
int
i
=
0
;
i
<
10
&&
Thread
.
activeCount
()
>
count0
;
i
++)
tryWaitForFinalizersToRun
();
equal
(
Thread
.
activeCount
(),
count0
);
}
...
...
test/javax/swing/JFileChooser/4150029/bug4150029.html
0 → 100644
浏览文件 @
4e203d7a
<html>
<body>
<applet
code=
"bug4150029.class"
width=
200
height=
200
></applet>
1.Go into 'subDir' folder.
2.Press BACKSPACE key.
3.Push OPEN button.
4.Push DONE button.
</body>
</html>
test/javax/swing/JFileChooser/4150029/bug4150029.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* @test
@bug 4150029
@summary BackSpace keyboard button does not lead to parent directory
@author Oleg Mokhovikov
@run applet/manual=done bug4150029.html
*/
import
javax.swing.*
;
import
java.io.File
;
import
java.io.IOException
;
public
class
bug4150029
extends
JApplet
{
private
boolean
res
;
public
void
init
()
{
String
tmpDir
=
System
.
getProperty
(
"java.io.tmpdir"
);
if
(
tmpDir
.
length
()
==
0
)
{
//'java.io.tmpdir' isn't guaranteed to be defined
tmpDir
=
System
.
getProperty
(
"user.home"
);
}
System
.
out
.
println
(
"Temp directory: "
+
tmpDir
);
File
testDir
=
new
File
(
tmpDir
,
"testDir"
);
testDir
.
mkdir
();
File
subDir
=
new
File
(
testDir
,
"subDir"
);
subDir
.
mkdir
();
System
.
out
.
println
(
"Created directory: "
+
testDir
);
System
.
out
.
println
(
"Created sub-directory: "
+
subDir
);
JFileChooser
fileChooser
=
new
JFileChooser
(
testDir
);
fileChooser
.
setFileSelectionMode
(
JFileChooser
.
DIRECTORIES_ONLY
);
try
{
res
=
fileChooser
.
showOpenDialog
(
this
)
!=
JFileChooser
.
APPROVE_OPTION
||
testDir
.
getCanonicalPath
().
equals
(
fileChooser
.
getSelectedFile
().
getCanonicalPath
());
}
catch
(
IOException
e
)
{
res
=
false
;
e
.
printStackTrace
();
}
try
{
subDir
.
delete
();
testDir
.
delete
();
}
catch
(
SecurityException
e
)
{
e
.
printStackTrace
();
}
}
public
void
destroy
()
{
if
(!
res
)
{
throw
new
RuntimeException
(
"BackSpace keyboard button does not lead to parent directory"
);
}
}
}
test/javax/swing/JLayer/6994419/bug6994419.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* @test
* @bug 6994419
* @summary JLayer.removeAll() behavior doesn't correspond to JLayer.remove() behavior.
* @author Alexander Potochkin
*/
import
javax.swing.*
;
import
java.beans.PropertyChangeListener
;
import
java.beans.PropertyChangeEvent
;
public
class
bug6994419
{
public
static
void
main
(
String
...
args
)
throws
Exception
{
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
JLayer
<
JComponent
>
l
=
new
JLayer
<
JComponent
>(
new
JButton
());
l
.
removeAll
();
l
.
addPropertyChangeListener
(
new
PropertyChangeListener
()
{
public
void
propertyChange
(
PropertyChangeEvent
evt
)
{
throw
new
RuntimeException
(
"Property change event was unexpectedly fired"
);
}
});
l
.
removeAll
();
}
});
}
}
test/javax/swing/JLayer/SerializationTest/SerializationTest.java
浏览文件 @
4e203d7a
...
...
@@ -54,9 +54,6 @@ public class SerializationTest {
JLayer
newLayer
=
(
JLayer
)
inputStream
.
readObject
();
if
(
newLayer
.
getLayout
()
==
null
)
{
throw
new
RuntimeException
(
"JLayer's layout is null"
);
}
if
(
newLayer
.
getGlassPane
()
==
null
)
{
throw
new
RuntimeException
(
"JLayer's glassPane is null"
);
}
...
...
test/javax/swing/JScrollPane/6559589/bug6559589.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 6559589
* @summary Memory leak in JScrollPane.updateUI()
* @author Alexander Potochkin
* @run main bug6559589
*/
import
javax.swing.*
;
import
javax.swing.plaf.metal.MetalLookAndFeel
;
public
class
bug6559589
{
private
static
void
createGui
()
{
JScrollPane
sp
=
new
JScrollPane
();
int
listenerCount
=
sp
.
getPropertyChangeListeners
().
length
;
sp
.
updateUI
();
if
(
listenerCount
!=
sp
.
getPropertyChangeListeners
().
length
)
{
throw
new
RuntimeException
(
"Listeners' leak"
);
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
UIManager
.
setLookAndFeel
(
new
MetalLookAndFeel
());
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
bug6559589
.
createGui
();
}
});
}
}
test/javax/swing/border/Test6981576.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 6981576
* @summary Tests that default border for the titled border is not null
* @author Sergey Malenkov
*/
import
java.awt.Component
;
import
java.awt.Graphics
;
import
javax.swing.JFrame
;
import
javax.swing.JPanel
;
import
javax.swing.SwingUtilities
;
import
javax.swing.UIManager
;
import
javax.swing.UIManager.LookAndFeelInfo
;
import
javax.swing.border.TitledBorder
;
public
class
Test6981576
extends
TitledBorder
implements
Runnable
,
Thread
.
UncaughtExceptionHandler
{
public
static
void
main
(
String
[]
args
)
{
SwingUtilities
.
invokeLater
(
new
Test6981576
());
}
private
int
index
;
private
LookAndFeelInfo
[]
infos
;
private
JFrame
frame
;
private
Test6981576
()
{
super
(
""
);
}
@Override
public
void
paintBorder
(
Component
c
,
Graphics
g
,
int
x
,
int
y
,
int
width
,
int
height
)
{
getBorder
().
paintBorder
(
c
,
g
,
x
,
y
,
width
,
height
);
}
public
void
run
()
{
if
(
this
.
infos
==
null
)
{
this
.
infos
=
UIManager
.
getInstalledLookAndFeels
();
Thread
.
currentThread
().
setUncaughtExceptionHandler
(
this
);
JPanel
panel
=
new
JPanel
();
panel
.
setBorder
(
this
);
this
.
frame
=
new
JFrame
(
getClass
().
getSimpleName
());
this
.
frame
.
add
(
panel
);
this
.
frame
.
setDefaultCloseOperation
(
JFrame
.
DISPOSE_ON_CLOSE
);
this
.
frame
.
setVisible
(
true
);
}
if
(
this
.
index
==
this
.
infos
.
length
)
{
this
.
frame
.
dispose
();
}
else
{
LookAndFeelInfo
info
=
this
.
infos
[
this
.
index
%
this
.
infos
.
length
];
try
{
UIManager
.
setLookAndFeel
(
info
.
getClassName
());
}
catch
(
Exception
exception
)
{
System
.
err
.
println
(
"could not change look and feel"
);
}
SwingUtilities
.
updateComponentTreeUI
(
this
.
frame
);
this
.
frame
.
pack
();
this
.
frame
.
setLocationRelativeTo
(
null
);
this
.
index
++;
SwingUtilities
.
invokeLater
(
this
);
}
}
public
void
uncaughtException
(
Thread
thread
,
Throwable
throwable
)
{
System
.
exit
(
1
);
}
}
test/sun/nio/cs/CheckHistoricalNames.java
浏览文件 @
4e203d7a
...
...
@@ -22,7 +22,7 @@
*/
/* @test
@bug 4513767 4961027
@bug 4513767 4961027
6217210
@summary Checks canonical names match between old and (NIO) core charsets
*/
import
java.io.InputStreamReader
;
...
...
@@ -154,6 +154,7 @@ public class CheckHistoricalNames {
checkHistoricalName
(
"Cp500"
);
checkHistoricalName
(
"Cp737"
);
checkHistoricalName
(
"Cp775"
);
checkHistoricalName
(
"Cp833"
);
checkHistoricalName
(
"Cp838"
);
checkHistoricalName
(
"Cp850"
);
checkHistoricalName
(
"Cp852"
);
...
...
@@ -228,6 +229,7 @@ public class CheckHistoricalNames {
checkMappedName
(
"IBM856"
,
"Cp856"
);
checkMappedName
(
"IBM857"
,
"Cp857"
);
checkMappedName
(
"IBM00858"
,
"Cp858"
);
checkMappedName
(
"IBM833"
,
"Cp833"
);
checkMappedName
(
"IBM860"
,
"Cp860"
);
checkMappedName
(
"IBM861"
,
"Cp861"
);
checkMappedName
(
"IBM862"
,
"Cp862"
);
...
...
test/sun/security/krb5/UnknownCCEntry.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 6979329
* @summary CCacheInputStream fails to read ticket cache files from Kerberos 1.8.1
*/
import
java.io.ByteArrayInputStream
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
sun.security.krb5.internal.ccache.CCacheInputStream
;
import
sun.security.krb5.internal.ccache.CredentialsCache
;
public
class
UnknownCCEntry
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// This is a ccache file generated on a test machine:
// Default principal: dummy@MAX.LOCAL
// Valid starting Expires Service principal
// 08/24/10 10:37:28 08/25/10 10:37:28 krbtgt/MAX.LOCAL@MAX.LOCAL
// Flags: FI, Etype (skey, tkt): AES-128 CTS mode with 96-bit SHA-1
// HMAC, AES-256 CTS mode with 96-bit SHA-1 HMAC
byte
[]
krb5cc
=
{
(
byte
)
0x05
,
(
byte
)
0x04
,
(
byte
)
0x00
,
(
byte
)
0x0C
,
(
byte
)
0x00
,
(
byte
)
0x01
,
(
byte
)
0x00
,
(
byte
)
0x08
,
(
byte
)
0xFF
,
(
byte
)
0xFF
,
(
byte
)
0xFF
,
(
byte
)
0xFA
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x01
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x01
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x09
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x05
,
(
byte
)
0x64
,
(
byte
)
0x75
,
(
byte
)
0x6D
,
(
byte
)
0x6D
,
(
byte
)
0x79
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x01
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x01
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x09
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x05
,
(
byte
)
0x64
,
(
byte
)
0x75
,
(
byte
)
0x6D
,
(
byte
)
0x6D
,
(
byte
)
0x79
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x02
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x09
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x06
,
(
byte
)
0x6B
,
(
byte
)
0x72
,
(
byte
)
0x62
,
(
byte
)
0x74
,
(
byte
)
0x67
,
(
byte
)
0x74
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x09
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0x00
,
(
byte
)
0x11
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x10
,
(
byte
)
0x92
,
(
byte
)
0x1D
,
(
byte
)
0x1A
,
(
byte
)
0x0C
,
(
byte
)
0x7F
,
(
byte
)
0xB8
,
(
byte
)
0x01
,
(
byte
)
0x2E
,
(
byte
)
0xC9
,
(
byte
)
0xF5
,
(
byte
)
0x7B
,
(
byte
)
0x92
,
(
byte
)
0x81
,
(
byte
)
0xCA
,
(
byte
)
0x49
,
(
byte
)
0xC5
,
(
byte
)
0x4C
,
(
byte
)
0x73
,
(
byte
)
0x30
,
(
byte
)
0x68
,
(
byte
)
0x4C
,
(
byte
)
0x73
,
(
byte
)
0x30
,
(
byte
)
0x68
,
(
byte
)
0x4C
,
(
byte
)
0x74
,
(
byte
)
0x81
,
(
byte
)
0xE8
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x40
,
(
byte
)
0x41
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x01
,
(
byte
)
0x29
,
(
byte
)
0x61
,
(
byte
)
0x82
,
(
byte
)
0x01
,
(
byte
)
0x25
,
(
byte
)
0x30
,
(
byte
)
0x82
,
(
byte
)
0x01
,
(
byte
)
0x21
,
(
byte
)
0xA0
,
(
byte
)
0x03
,
(
byte
)
0x02
,
(
byte
)
0x01
,
(
byte
)
0x05
,
(
byte
)
0xA1
,
(
byte
)
0x0B
,
(
byte
)
0x1B
,
(
byte
)
0x09
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0xA2
,
(
byte
)
0x1E
,
(
byte
)
0x30
,
(
byte
)
0x1C
,
(
byte
)
0xA0
,
(
byte
)
0x03
,
(
byte
)
0x02
,
(
byte
)
0x01
,
(
byte
)
0x00
,
(
byte
)
0xA1
,
(
byte
)
0x15
,
(
byte
)
0x30
,
(
byte
)
0x13
,
(
byte
)
0x1B
,
(
byte
)
0x06
,
(
byte
)
0x6B
,
(
byte
)
0x72
,
(
byte
)
0x62
,
(
byte
)
0x74
,
(
byte
)
0x67
,
(
byte
)
0x74
,
(
byte
)
0x1B
,
(
byte
)
0x09
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0xA3
,
(
byte
)
0x81
,
(
byte
)
0xEC
,
(
byte
)
0x30
,
(
byte
)
0x81
,
(
byte
)
0xE9
,
(
byte
)
0xA0
,
(
byte
)
0x03
,
(
byte
)
0x02
,
(
byte
)
0x01
,
(
byte
)
0x12
,
(
byte
)
0xA1
,
(
byte
)
0x03
,
(
byte
)
0x02
,
(
byte
)
0x01
,
(
byte
)
0x01
,
(
byte
)
0xA2
,
(
byte
)
0x81
,
(
byte
)
0xDC
,
(
byte
)
0x04
,
(
byte
)
0x81
,
(
byte
)
0xD9
,
(
byte
)
0xFB
,
(
byte
)
0x4B
,
(
byte
)
0xD2
,
(
byte
)
0x55
,
(
byte
)
0x33
,
(
byte
)
0xA8
,
(
byte
)
0x1A
,
(
byte
)
0xE6
,
(
byte
)
0xB5
,
(
byte
)
0x3D
,
(
byte
)
0x67
,
(
byte
)
0x46
,
(
byte
)
0x69
,
(
byte
)
0x6F
,
(
byte
)
0x0A
,
(
byte
)
0x64
,
(
byte
)
0xE7
,
(
byte
)
0x3D
,
(
byte
)
0xEF
,
(
byte
)
0x22
,
(
byte
)
0xBE
,
(
byte
)
0x81
,
(
byte
)
0x32
,
(
byte
)
0xF3
,
(
byte
)
0x72
,
(
byte
)
0xB4
,
(
byte
)
0x50
,
(
byte
)
0xE3
,
(
byte
)
0xC3
,
(
byte
)
0xDB
,
(
byte
)
0xE5
,
(
byte
)
0x38
,
(
byte
)
0x3C
,
(
byte
)
0x60
,
(
byte
)
0xC8
,
(
byte
)
0x08
,
(
byte
)
0x53
,
(
byte
)
0x44
,
(
byte
)
0x6F
,
(
byte
)
0xDF
,
(
byte
)
0x55
,
(
byte
)
0x67
,
(
byte
)
0x32
,
(
byte
)
0x02
,
(
byte
)
0xDD
,
(
byte
)
0x6B
,
(
byte
)
0xFB
,
(
byte
)
0x23
,
(
byte
)
0x1A
,
(
byte
)
0x88
,
(
byte
)
0x71
,
(
byte
)
0xE0
,
(
byte
)
0xF8
,
(
byte
)
0xBB
,
(
byte
)
0x51
,
(
byte
)
0x1E
,
(
byte
)
0x76
,
(
byte
)
0xC9
,
(
byte
)
0x1F
,
(
byte
)
0x45
,
(
byte
)
0x9B
,
(
byte
)
0xA0
,
(
byte
)
0xA5
,
(
byte
)
0x61
,
(
byte
)
0x45
,
(
byte
)
0x9E
,
(
byte
)
0x65
,
(
byte
)
0xB8
,
(
byte
)
0xD6
,
(
byte
)
0x0E
,
(
byte
)
0x3C
,
(
byte
)
0xD9
,
(
byte
)
0x56
,
(
byte
)
0xD6
,
(
byte
)
0xA6
,
(
byte
)
0xDD
,
(
byte
)
0x36
,
(
byte
)
0x21
,
(
byte
)
0x25
,
(
byte
)
0x0E
,
(
byte
)
0xE6
,
(
byte
)
0xAD
,
(
byte
)
0xA0
,
(
byte
)
0x3A
,
(
byte
)
0x9B
,
(
byte
)
0x21
,
(
byte
)
0x87
,
(
byte
)
0xE2
,
(
byte
)
0xAF
,
(
byte
)
0x3A
,
(
byte
)
0xEF
,
(
byte
)
0x75
,
(
byte
)
0x85
,
(
byte
)
0xA8
,
(
byte
)
0xD7
,
(
byte
)
0xE5
,
(
byte
)
0x46
,
(
byte
)
0xD8
,
(
byte
)
0x5C
,
(
byte
)
0x17
,
(
byte
)
0x4E
,
(
byte
)
0x64
,
(
byte
)
0x51
,
(
byte
)
0xDB
,
(
byte
)
0x38
,
(
byte
)
0x8E
,
(
byte
)
0x6B
,
(
byte
)
0x02
,
(
byte
)
0x05
,
(
byte
)
0x46
,
(
byte
)
0x77
,
(
byte
)
0xD0
,
(
byte
)
0x75
,
(
byte
)
0x8A
,
(
byte
)
0xE0
,
(
byte
)
0x42
,
(
byte
)
0x5E
,
(
byte
)
0x8D
,
(
byte
)
0x49
,
(
byte
)
0x86
,
(
byte
)
0xDE
,
(
byte
)
0x6C
,
(
byte
)
0xBC
,
(
byte
)
0xAF
,
(
byte
)
0x10
,
(
byte
)
0x9A
,
(
byte
)
0x97
,
(
byte
)
0x64
,
(
byte
)
0xA6
,
(
byte
)
0xBD
,
(
byte
)
0xDB
,
(
byte
)
0x01
,
(
byte
)
0x40
,
(
byte
)
0xA9
,
(
byte
)
0x3D
,
(
byte
)
0x74
,
(
byte
)
0x99
,
(
byte
)
0xDC
,
(
byte
)
0x63
,
(
byte
)
0x34
,
(
byte
)
0x40
,
(
byte
)
0x31
,
(
byte
)
0x57
,
(
byte
)
0xC7
,
(
byte
)
0x70
,
(
byte
)
0x9F
,
(
byte
)
0xCE
,
(
byte
)
0xC6
,
(
byte
)
0x7B
,
(
byte
)
0x00
,
(
byte
)
0x5B
,
(
byte
)
0x02
,
(
byte
)
0x5C
,
(
byte
)
0xC7
,
(
byte
)
0x81
,
(
byte
)
0x40
,
(
byte
)
0x4D
,
(
byte
)
0xA7
,
(
byte
)
0xB1
,
(
byte
)
0xD2
,
(
byte
)
0xEA
,
(
byte
)
0x8E
,
(
byte
)
0xEC
,
(
byte
)
0xA0
,
(
byte
)
0xB3
,
(
byte
)
0x03
,
(
byte
)
0x29
,
(
byte
)
0xB8
,
(
byte
)
0x44
,
(
byte
)
0xD7
,
(
byte
)
0xA1
,
(
byte
)
0x2B
,
(
byte
)
0x37
,
(
byte
)
0x9D
,
(
byte
)
0x19
,
(
byte
)
0x11
,
(
byte
)
0x1D
,
(
byte
)
0x58
,
(
byte
)
0xE8
,
(
byte
)
0x06
,
(
byte
)
0xE7
,
(
byte
)
0x06
,
(
byte
)
0xE3
,
(
byte
)
0xF7
,
(
byte
)
0xEF
,
(
byte
)
0x05
,
(
byte
)
0xA9
,
(
byte
)
0x05
,
(
byte
)
0x93
,
(
byte
)
0x42
,
(
byte
)
0x94
,
(
byte
)
0x5A
,
(
byte
)
0xD6
,
(
byte
)
0xA0
,
(
byte
)
0x24
,
(
byte
)
0x3A
,
(
byte
)
0x52
,
(
byte
)
0x92
,
(
byte
)
0xA3
,
(
byte
)
0x79
,
(
byte
)
0x98
,
(
byte
)
0x3C
,
(
byte
)
0x68
,
(
byte
)
0x55
,
(
byte
)
0x1B
,
(
byte
)
0x6A
,
(
byte
)
0xC5
,
(
byte
)
0x83
,
(
byte
)
0x89
,
(
byte
)
0x5A
,
(
byte
)
0x79
,
(
byte
)
0x5C
,
(
byte
)
0x52
,
(
byte
)
0xBA
,
(
byte
)
0xB8
,
(
byte
)
0xF7
,
(
byte
)
0x72
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x01
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x01
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x09
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x05
,
(
byte
)
0x64
,
(
byte
)
0x75
,
(
byte
)
0x6D
,
(
byte
)
0x6D
,
(
byte
)
0x79
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x03
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x0C
,
(
byte
)
0x58
,
(
byte
)
0x2D
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x43
,
(
byte
)
0x48
,
(
byte
)
0x45
,
(
byte
)
0x43
,
(
byte
)
0x4F
,
(
byte
)
0x4E
,
(
byte
)
0x46
,
(
byte
)
0x3A
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x15
,
(
byte
)
0x6B
,
(
byte
)
0x72
,
(
byte
)
0x62
,
(
byte
)
0x35
,
(
byte
)
0x5F
,
(
byte
)
0x63
,
(
byte
)
0x63
,
(
byte
)
0x61
,
(
byte
)
0x63
,
(
byte
)
0x68
,
(
byte
)
0x65
,
(
byte
)
0x5F
,
(
byte
)
0x63
,
(
byte
)
0x6F
,
(
byte
)
0x6E
,
(
byte
)
0x66
,
(
byte
)
0x5F
,
(
byte
)
0x64
,
(
byte
)
0x61
,
(
byte
)
0x74
,
(
byte
)
0x61
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x0A
,
(
byte
)
0x66
,
(
byte
)
0x61
,
(
byte
)
0x73
,
(
byte
)
0x74
,
(
byte
)
0x5F
,
(
byte
)
0x61
,
(
byte
)
0x76
,
(
byte
)
0x61
,
(
byte
)
0x69
,
(
byte
)
0x6C
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x1A
,
(
byte
)
0x6B
,
(
byte
)
0x72
,
(
byte
)
0x62
,
(
byte
)
0x74
,
(
byte
)
0x67
,
(
byte
)
0x74
,
(
byte
)
0x2F
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0x40
,
(
byte
)
0x4D
,
(
byte
)
0x41
,
(
byte
)
0x58
,
(
byte
)
0x2E
,
(
byte
)
0x4C
,
(
byte
)
0x4F
,
(
byte
)
0x43
,
(
byte
)
0x41
,
(
byte
)
0x4C
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x03
,
(
byte
)
0x79
,
(
byte
)
0x65
,
(
byte
)
0x73
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
(
byte
)
0x00
,
};
File
f
=
File
.
createTempFile
(
"ccache"
,
"cc"
,
new
File
(
"."
));
FileOutputStream
fout
=
new
FileOutputStream
(
f
);
fout
.
write
(
krb5cc
);
fout
.
close
();
CredentialsCache
cc
=
CredentialsCache
.
getInstance
(
f
.
getPath
());
if
(!
cc
.
getDefaultCreds
().
getServicePrincipal
().
getNameStrings
()[
0
]
.
equals
(
"krbtgt"
))
{
throw
new
Exception
(
"No TGT found"
);
}
}
}
test/sun/security/krb5/tools/ktarg.sh
0 → 100644
浏览文件 @
4e203d7a
#
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# @test
# @bug 7002036
# @summary ktab return code changes on a error case
# @run shell ktarg.sh
#
if
[
"
${
TESTJAVA
}
"
=
""
]
;
then
JAVAC_CMD
=
`
which javac
`
TESTJAVA
=
`
dirname
$JAVAC_CMD
`
/..
fi
if
[
"
${
TESTSRC
}
"
=
""
]
;
then
TESTSRC
=
"."
fi
OS
=
`
uname
-s
`
case
"
$OS
"
in
CYGWIN
*
)
FS
=
"/"
;;
Windows_
*
)
FS
=
"
\\
"
;;
*
)
FS
=
"/"
echo
"Unsupported system!"
exit
0
;
;;
esac
KEYTAB
=
ktarg.tmp
rm
$KEYTAB
2> /dev/null
KTAB
=
"
${
TESTJAVA
}${
FS
}
bin
${
FS
}
ktab -k
$KEYTAB
"
$KTAB
-a
me mine
||
exit
1
$KTAB
-hello
if
[
$?
=
0
]
;
then
exit
2
;
fi
$KTAB
if
[
$?
=
0
]
;
then
exit
3
;
fi
exit
0
test/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @bug 6687725
* @summary Test internal PKCS5Padding impl with various error conditions.
* @author Valerie Peng
* @library ..
*/
import
java.io.*
;
import
java.nio.*
;
import
java.util.*
;
import
java.security.*
;
import
java.security.spec.AlgorithmParameterSpec
;
import
javax.crypto.*
;
import
javax.crypto.spec.IvParameterSpec
;
public
class
TestPKCS5PaddingError
extends
PKCS11Test
{
private
static
class
CI
{
// class for holding Cipher Information
String
transformation
;
String
keyAlgo
;
CI
(
String
transformation
,
String
keyAlgo
)
{
this
.
transformation
=
transformation
;
this
.
keyAlgo
=
keyAlgo
;
}
}
private
static
final
CI
[]
TEST_LIST
=
{
// algorithms which use the native padding impl
new
CI
(
"DES/CBC/PKCS5Padding"
,
"DES"
),
new
CI
(
"DESede/CBC/PKCS5Padding"
,
"DESede"
),
new
CI
(
"AES/CBC/PKCS5Padding"
,
"AES"
),
// algorithms which use SunPKCS11's own padding impl
new
CI
(
"DES/ECB/PKCS5Padding"
,
"DES"
),
new
CI
(
"DESede/ECB/PKCS5Padding"
,
"DESede"
),
new
CI
(
"AES/ECB/PKCS5Padding"
,
"AES"
),
};
private
static
StringBuffer
debugBuf
=
new
StringBuffer
();
public
void
main
(
Provider
p
)
throws
Exception
{
boolean
status
=
true
;
Random
random
=
new
Random
();
try
{
byte
[]
plainText
=
new
byte
[
200
];
for
(
int
i
=
0
;
i
<
TEST_LIST
.
length
;
i
++)
{
CI
currTest
=
TEST_LIST
[
i
];
System
.
out
.
println
(
"==="
+
currTest
.
transformation
+
"==="
);
try
{
KeyGenerator
kg
=
KeyGenerator
.
getInstance
(
currTest
.
keyAlgo
,
p
);
SecretKey
key
=
kg
.
generateKey
();
Cipher
c1
=
Cipher
.
getInstance
(
currTest
.
transformation
,
"SunJCE"
);
c1
.
init
(
Cipher
.
ENCRYPT_MODE
,
key
);
byte
[]
cipherText
=
c1
.
doFinal
(
plainText
);
AlgorithmParameters
params
=
c1
.
getParameters
();
Cipher
c2
=
Cipher
.
getInstance
(
currTest
.
transformation
,
p
);
c2
.
init
(
Cipher
.
DECRYPT_MODE
,
key
,
params
);
// 1st test: wrong output length
// NOTE: Skip NSS since it reports CKR_DEVICE_ERROR when
// the data passed to its EncryptUpdate/DecryptUpdate is
// not multiple of blocks
if
(!
p
.
getName
().
equals
(
"SunPKCS11-NSS"
))
{
try
{
System
.
out
.
println
(
"Testing with wrong cipherText length"
);
c2
.
doFinal
(
cipherText
,
0
,
cipherText
.
length
-
2
);
}
catch
(
IllegalBlockSizeException
ibe
)
{
// expected
}
catch
(
Exception
ex
)
{
System
.
out
.
println
(
"Error: Unexpected Ex "
+
ex
);
ex
.
printStackTrace
();
}
}
// 2nd test: wrong padding value
try
{
System
.
out
.
println
(
"Testing with wrong padding bytes"
);
cipherText
[
cipherText
.
length
-
1
]++;
c2
.
doFinal
(
cipherText
);
}
catch
(
BadPaddingException
bpe
)
{
// expected
}
catch
(
Exception
ex
)
{
System
.
out
.
println
(
"Error: Unexpected Ex "
+
ex
);
ex
.
printStackTrace
();
}
System
.
out
.
println
(
"DONE"
);
}
catch
(
NoSuchAlgorithmException
nsae
)
{
System
.
out
.
println
(
"Skipping unsupported algorithm: "
+
nsae
);
}
}
}
catch
(
Exception
ex
)
{
// print out debug info when exception is encountered
if
(
debugBuf
!=
null
)
{
System
.
out
.
println
(
debugBuf
.
toString
());
debugBuf
=
new
StringBuffer
();
}
throw
ex
;
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
main
(
new
TestPKCS5PaddingError
());
}
}
test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java
浏览文件 @
4e203d7a
...
...
@@ -23,7 +23,7 @@
/**
* @test
* @bug 4917233 6461727 6490213
* @bug 4917233 6461727 6490213
6720456
* @summary test the KeyGenerator
* @author Andreas Sterbenz
* @library ..
...
...
@@ -104,7 +104,7 @@ public class TestKeyGenerator extends PKCS11Test {
// Different PKCS11 impls have different ranges
// of supported key sizes for variable-key-length
// algorithms.
// Solaris> Blowfish: 32-128
bits, RC4: 8-12
8 bits
// Solaris> Blowfish: 32-128
or even 448 bits, RC4: 8-128 bits or as much as 204
8 bits
// NSS> Blowfish: n/a, RC4: 8-2048 bits
// However, we explicitly disallowed key sizes less
// than 40-bits.
...
...
@@ -114,8 +114,8 @@ public class TestKeyGenerator extends PKCS11Test {
test
(
"Blowfish"
,
32
,
p
,
TestResult
.
FAIL
);
test
(
"Blowfish"
,
40
,
p
,
TestResult
.
PASS
);
test
(
"Blowfish"
,
128
,
p
,
TestResult
.
PASS
);
test
(
"Blowfish"
,
136
,
p
,
TestResult
.
FAIL
);
test
(
"Blowfish"
,
448
,
p
,
TestResult
.
FAIL
);
test
(
"Blowfish"
,
136
,
p
,
TestResult
.
TBD
);
test
(
"Blowfish"
,
448
,
p
,
TestResult
.
TBD
);
test
(
"Blowfish"
,
456
,
p
,
TestResult
.
FAIL
);
test
(
"ARCFOUR"
,
0
,
p
,
TestResult
.
FAIL
);
...
...
@@ -124,7 +124,7 @@ public class TestKeyGenerator extends PKCS11Test {
test
(
"ARCFOUR"
,
128
,
p
,
TestResult
.
PASS
);
if
(
p
.
getName
().
equals
(
"SunPKCS11-Solaris"
))
{
test
(
"ARCFOUR"
,
1024
,
p
,
TestResult
.
FAIL
);
test
(
"ARCFOUR"
,
1024
,
p
,
TestResult
.
TBD
);
}
else
if
(
p
.
getName
().
equals
(
"SunPKCS11-NSS"
))
{
test
(
"ARCFOUR"
,
1024
,
p
,
TestResult
.
PASS
);
test
(
"ARCFOUR"
,
2048
,
p
,
TestResult
.
PASS
);
...
...
test/tools/launcher/Settings.java
0 → 100644
浏览文件 @
4e203d7a
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import
java.io.File
;
import
java.io.IOException
;
/*
* @test
* @bug 6994753
* @summary tests -XshowSettings options
* @compile -XDignore.symbol.file Settings.java TestHelper.java
* @run main Settings
* @author ksrini
*/
public
class
Settings
{
private
static
File
testJar
=
null
;
static
void
init
()
throws
IOException
{
if
(
testJar
!=
null
)
{
return
;
}
testJar
=
new
File
(
"test.jar"
);
StringBuilder
tsrc
=
new
StringBuilder
();
tsrc
.
append
(
"public static void main(String... args) {\n"
);
tsrc
.
append
(
" for (String x : args) {\n"
);
tsrc
.
append
(
" System.out.println(x);\n"
);
tsrc
.
append
(
" }\n"
);
tsrc
.
append
(
"}\n"
);
TestHelper
.
createJar
(
testJar
,
tsrc
.
toString
());
}
static
void
checkContains
(
TestHelper
.
TestResult
tr
,
String
str
)
{
if
(!
tr
.
contains
(
str
))
{
System
.
out
.
println
(
tr
);
throw
new
RuntimeException
(
str
+
" not found"
);
}
}
static
void
checkNoContains
(
TestHelper
.
TestResult
tr
,
String
str
)
{
if
(
tr
.
contains
(
str
))
{
System
.
out
.
println
(
tr
.
status
);
throw
new
RuntimeException
(
str
+
" found"
);
}
}
private
static
final
String
VM_SETTINGS
=
"VM settings:"
;
private
static
final
String
PROP_SETTINGS
=
"Property settings:"
;
private
static
final
String
LOCALE_SETTINGS
=
"Locale settings:"
;
static
void
containsAllOptions
(
TestHelper
.
TestResult
tr
)
{
checkContains
(
tr
,
VM_SETTINGS
);
checkContains
(
tr
,
PROP_SETTINGS
);
checkContains
(
tr
,
LOCALE_SETTINGS
);
}
static
void
runTestOptionDefault
()
throws
IOException
{
TestHelper
.
TestResult
tr
=
null
;
tr
=
TestHelper
.
doExec
(
TestHelper
.
javaCmd
,
"-Xmx512m"
,
"-Xss128k"
,
"-XshowSettings"
,
"-jar"
,
testJar
.
getAbsolutePath
());
containsAllOptions
(
tr
);
if
(!
tr
.
isOK
())
{
System
.
out
.
println
(
tr
.
status
);
throw
new
RuntimeException
(
"test fails"
);
}
}
static
void
runTestOptionAll
()
throws
IOException
{
init
();
TestHelper
.
TestResult
tr
=
null
;
tr
=
TestHelper
.
doExec
(
TestHelper
.
javaCmd
,
"-XshowSettings:all"
);
containsAllOptions
(
tr
);
}
static
void
runTestOptionVM
()
throws
IOException
{
TestHelper
.
TestResult
tr
=
null
;
tr
=
TestHelper
.
doExec
(
TestHelper
.
javaCmd
,
"-XshowSettings:vm"
);
checkContains
(
tr
,
VM_SETTINGS
);
checkNoContains
(
tr
,
PROP_SETTINGS
);
checkNoContains
(
tr
,
LOCALE_SETTINGS
);
}
static
void
runTestOptionProperty
()
throws
IOException
{
TestHelper
.
TestResult
tr
=
null
;
tr
=
TestHelper
.
doExec
(
TestHelper
.
javaCmd
,
"-XshowSettings:properties"
);
checkNoContains
(
tr
,
VM_SETTINGS
);
checkContains
(
tr
,
PROP_SETTINGS
);
checkNoContains
(
tr
,
LOCALE_SETTINGS
);
}
static
void
runTestOptionLocale
()
throws
IOException
{
TestHelper
.
TestResult
tr
=
null
;
tr
=
TestHelper
.
doExec
(
TestHelper
.
javaCmd
,
"-XshowSettings:locale"
);
checkNoContains
(
tr
,
VM_SETTINGS
);
checkNoContains
(
tr
,
PROP_SETTINGS
);
checkContains
(
tr
,
LOCALE_SETTINGS
);
}
static
void
runTestBadOptions
()
throws
IOException
{
TestHelper
.
TestResult
tr
=
null
;
tr
=
TestHelper
.
doExec
(
TestHelper
.
javaCmd
,
"-XshowSettingsBadOption"
);
checkNoContains
(
tr
,
VM_SETTINGS
);
checkNoContains
(
tr
,
PROP_SETTINGS
);
checkNoContains
(
tr
,
LOCALE_SETTINGS
);
checkContains
(
tr
,
"Unrecognized option: -XshowSettingsBadOption"
);
}
public
static
void
main
(
String
...
args
)
{
try
{
runTestOptionAll
();
runTestOptionDefault
();
runTestOptionVM
();
runTestOptionProperty
();
runTestOptionLocale
();
runTestBadOptions
();
}
catch
(
IOException
ioe
)
{
throw
new
RuntimeException
(
ioe
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录