Merge
This commit is contained in:
commit
37a6f605d0
@ -282,3 +282,4 @@ cdcf2e599e42935c2d1d19a24bb19e808aeb43b5 jdk9-b36
|
||||
27c3345d6dce39a22c262f30bb1f0e0b00c3709e jdk9-b37
|
||||
d2d745313c81d1fc01f426983b9f784ab1f750e8 jdk9-b38
|
||||
ca6edf957fe1c6ea818530b503578e872cea7239 jdk9-b39
|
||||
f1ed1540da70a066527fd043413107e47721edbf jdk9-b40
|
||||
|
@ -44,7 +44,7 @@ BUILD_DEMOS =
|
||||
DEMO_SHARE_SRC := $(JDK_TOPDIR)/src/demo/share
|
||||
DEMO_CLOSED_SHARE_SRC := $(JDK_TOPDIR)/src/closed/demo/share
|
||||
DEMO_SOLARIS_SRC := $(JDK_TOPDIR)/src/demo/solaris
|
||||
DEMO_OS_API_SRC := $(JDK_TOPDIR)/src/demo/$(OPENJDK_TARGET_OS_API_DIR)
|
||||
DEMO_OS_TYPE_SRC := $(JDK_TOPDIR)/src/demo/$(OPENJDK_TARGET_OS_TYPE)
|
||||
VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
|
||||
##################################################################################################
|
||||
@ -214,13 +214,13 @@ define SetupJVMTIDemo
|
||||
# Param 2 = add these directories to the includes, default is agent_util
|
||||
# Param 3 = extra CFLAGS
|
||||
# Param 4 = C or C++ (defaults to C)
|
||||
# Param 5 = libs for posix
|
||||
# Param 5 = libs for unix
|
||||
# Param 6 = libs for windows
|
||||
# Param 7 = libs for solaris
|
||||
# Param 8 = libs for linux
|
||||
# Param 9 = extra directories with required sources
|
||||
BUILD_DEMO_JVMTI_$1_EXTRA_SRC := \
|
||||
$$(wildcard $(DEMO_OS_API_SRC)/jvmti/$1) \
|
||||
$$(wildcard $(DEMO_OS_TYPE_SRC)/jvmti/$1) \
|
||||
$$(wildcard $$(addprefix $(DEMO_SHARE_SRC)/jvmti/, $2)) \
|
||||
$9
|
||||
BUILD_DEMO_JVMTI_$1_EXTRA_SRC_EXCLUDE := \
|
||||
@ -257,7 +257,7 @@ define SetupJVMTIDemo
|
||||
LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \
|
||||
LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \
|
||||
LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \
|
||||
LDFLAGS_SUFFIX_posix := $5, \
|
||||
LDFLAGS_SUFFIX_unix := $5, \
|
||||
LDFLAGS_SUFFIX_windows := $6, \
|
||||
LDFLAGS_SUFFIX_solaris := $7 -lc, \
|
||||
LDFLAGS_SUFFIX_linux := $8, \
|
||||
|
@ -656,7 +656,7 @@ endif
|
||||
SRC_ZIP_SRCS := $(wildcard \
|
||||
$(JDK_TOPDIR)/src/*/share/classes \
|
||||
$(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS)/classes \
|
||||
$(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS_API_DIR)/classes \
|
||||
$(JDK_TOPDIR)/src/*/$(OPENJDK_TARGET_OS_TYPE)/classes \
|
||||
$(LANGTOOLS_TOPDIR)/src/*/share/classes \
|
||||
$(CORBA_TOPDIR)/src/*/share/classes \
|
||||
$(JAXP_TOPDIR)/src/*/share/classes \
|
||||
@ -679,7 +679,7 @@ $(eval $(call SetupCopyFiles,COPY_LAUNCHER_SRC, \
|
||||
FILES := $(wildcard \
|
||||
$(JDK_TOPDIR)/src/java.base/share/native/launcher/* \
|
||||
$(JDK_TOPDIR)/src/java.base/share/native/libjli/* \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjli/java_md*)))
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjli/java_md*)))
|
||||
|
||||
LAUNCHER_ZIP_SRC := $(COPY_LAUNCHER_SRC)
|
||||
|
||||
|
@ -30,8 +30,8 @@ include MakeBase.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
# Put the libraries here. Different locations for different target apis.
|
||||
ifeq ($(OPENJDK_TARGET_OS_API), posix)
|
||||
# Put the libraries here. Different locations for different target OS types.
|
||||
ifeq ($(OPENJDK_TARGET_OS_TYPE), unix)
|
||||
INSTALL_LIBRARIES_HERE := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
|
||||
HOTSPOT_LIB_DIR := $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)
|
||||
else
|
||||
|
@ -83,7 +83,7 @@ endif
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
JVMCFG_SRC := $(JDK_TOPDIR)/src/java.base/macosx/conf/$(JVMCFG_ARCH)/jvm.cfg
|
||||
else
|
||||
JVMCFG_SRC := $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/conf/$(JVMCFG_ARCH)/jvm.cfg
|
||||
JVMCFG_SRC := $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/conf/$(JVMCFG_ARCH)/jvm.cfg
|
||||
endif
|
||||
JVMCFG_DIR := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
|
||||
JVMCFG := $(JVMCFG_DIR)/jvm.cfg
|
||||
@ -190,7 +190,7 @@ $(JDK_OUTPUTDIR)/lib/net.properties: $(JDK_TOPDIR)/src/java.base/share/conf/net.
|
||||
NET_CONF_FILES += $(JDK_OUTPUTDIR)/lib/net.properties
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
$(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template: $(JDK_TOPDIR)/src/java.base/${OPENJDK_TARGET_OS_API_DIR}/conf/sdp/sdp.conf.template
|
||||
$(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template: $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/conf/sdp/sdp.conf.template
|
||||
$(ECHO) $(LOG_INFO) Copying $(@F)
|
||||
$(call install-file)
|
||||
|
||||
|
@ -102,13 +102,13 @@ DESKTOP_CONF_FILES += $(PSFONTPROPFILE_TARGET_FILES)
|
||||
# Copy cursor.properties and cursors gif files to LIB_DST_DIR
|
||||
#
|
||||
ifneq ($(OPENJDK_TARGET_OS), macosx)
|
||||
OPENJDK_TARGET_OS_LIB_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/conf
|
||||
OPENJDK_TARGET_OS_LIB_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/conf
|
||||
else
|
||||
OPENJDK_TARGET_OS_LIB_SRC := $(JDK_TOPDIR)/src/java.desktop/macosx/conf
|
||||
endif
|
||||
|
||||
CURSORS_DEST_DIR := $(LIB_DST_DIR)/images/cursors
|
||||
CURSORS_OPENJDK_TARGET_OS_LIB_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/conf/images/cursors
|
||||
CURSORS_OPENJDK_TARGET_OS_LIB_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/conf/images/cursors
|
||||
|
||||
$(CURSORS_DEST_DIR)/cursors.properties: $(CURSORS_OPENJDK_TARGET_OS_LIB_SRC)/cursors.properties
|
||||
$(call install-file)
|
||||
|
@ -21,4 +21,4 @@
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
tzdata2014i
|
||||
tzdata2014j
|
||||
|
@ -29,20 +29,19 @@
|
||||
# tz@iana.org for general use in the future). For more, please see
|
||||
# the file CONTRIBUTING in the tz distribution.
|
||||
|
||||
# From Paul Eggert (2013-02-21):
|
||||
# From Paul Eggert (2014-10-31):
|
||||
#
|
||||
# A good source for time zone historical data outside the U.S. is
|
||||
# Unless otherwise specified, the source for data through 1990 is:
|
||||
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
|
||||
# San Diego: ACS Publications, Inc. (2003).
|
||||
# Unfortunately this book contains many errors and cites no sources.
|
||||
#
|
||||
# Gwillim Law writes that a good source
|
||||
# for recent time zone data is the International Air Transport
|
||||
# Association's Standard Schedules Information Manual (IATA SSIM),
|
||||
# published semiannually. Law sent in several helpful summaries
|
||||
# of the IATA's data after 1990.
|
||||
#
|
||||
# Except where otherwise noted, Shanks & Pottenger is the source for
|
||||
# entries through 1990, and IATA SSIM is the source for entries afterwards.
|
||||
# of the IATA's data after 1990. Except where otherwise noted,
|
||||
# IATA SSIM is the source for entries after 1990.
|
||||
#
|
||||
# Another source occasionally used is Edward W. Whitman, World Time Differences,
|
||||
# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
|
||||
@ -88,7 +87,6 @@
|
||||
# 3:00 CAST Central Africa Summer Time (no longer used)
|
||||
# 3:00 SAST South Africa Summer Time (no longer used)
|
||||
# 3:00 EAT East Africa Time
|
||||
# 4:00 EAST East Africa Summer Time (no longer used)
|
||||
|
||||
# Algeria
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
@ -169,9 +167,7 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
|
||||
1:00 - WAT
|
||||
|
||||
# Comoros
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Indian/Comoro 2:53:04 - LMT 1911 Jul # Moroni, Gran Comoro
|
||||
3:00 - EAT
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Democratic Republic of the Congo
|
||||
# See Africa/Lagos for the western part and Africa/Maputo for the eastern.
|
||||
@ -195,9 +191,7 @@ Link Africa/Abidjan Africa/Sao_Tome # São Tomé and Príncipe
|
||||
Link Africa/Abidjan Atlantic/St_Helena # St Helena
|
||||
|
||||
# Djibouti
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Djibouti 2:52:36 - LMT 1911 Jul
|
||||
3:00 - EAT
|
||||
# See Africa/Nairobi.
|
||||
|
||||
###############################################################################
|
||||
|
||||
@ -410,27 +404,8 @@ Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
|
||||
# See Africa/Lagos.
|
||||
|
||||
# Eritrea
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Asmara 2:35:32 - LMT 1870
|
||||
2:35:32 - AMT 1890 # Asmara Mean Time
|
||||
2:35:20 - ADMT 1936 May 5 # Adis Dera MT
|
||||
3:00 - EAT
|
||||
|
||||
# Ethiopia
|
||||
# From Paul Eggert (2014-07-31):
|
||||
# Like the Swahili of Kenya and Tanzania, many Ethiopians keep a
|
||||
# 12-hour clock starting at our 06:00, so their "8 o'clock" is our
|
||||
# 02:00 or 14:00. Keep this in mind when you ask the time in Amharic.
|
||||
#
|
||||
# Shanks & Pottenger write that Ethiopia had six narrowly-spaced time
|
||||
# zones between 1870 and 1890, that they merged to 38E50 (2:35:20) in
|
||||
# 1890, and that they switched to 3:00 on 1936-05-05. Perhaps 38E50
|
||||
# was for Adis Dera. Quite likely the Shanks data entries are wrong
|
||||
# anyway.
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Addis_Ababa 2:34:48 - LMT 1870
|
||||
2:35:20 - ADMT 1936 May 5 # Adis Dera MT
|
||||
3:00 - EAT
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Gabon
|
||||
# See Africa/Lagos.
|
||||
@ -474,6 +449,15 @@ Zone Africa/Nairobi 2:27:16 - LMT 1928 Jul
|
||||
2:30 - BEAT 1940
|
||||
2:45 - BEAUT 1960
|
||||
3:00 - EAT
|
||||
Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia
|
||||
Link Africa/Nairobi Africa/Asmara # Eritrea
|
||||
Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania
|
||||
Link Africa/Nairobi Africa/Djibouti
|
||||
Link Africa/Nairobi Africa/Kampala # Uganda
|
||||
Link Africa/Nairobi Africa/Mogadishu # Somalia
|
||||
Link Africa/Nairobi Indian/Antananarivo # Madagascar
|
||||
Link Africa/Nairobi Indian/Comoro
|
||||
Link Africa/Nairobi Indian/Mayotte
|
||||
|
||||
# Lesotho
|
||||
# See Africa/Johannesburg.
|
||||
@ -551,11 +535,7 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920
|
||||
2:00 - EET
|
||||
|
||||
# Madagascar
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Indian/Antananarivo 3:10:04 - LMT 1911 Jul
|
||||
3:00 - EAT 1954 Feb 27 23:00s
|
||||
3:00 1:00 EAST 1954 May 29 23:00s
|
||||
3:00 - EAT
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Malawi
|
||||
# See Africa/Maputo.
|
||||
@ -658,9 +638,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
|
||||
# no information; probably like Indian/Mauritius
|
||||
|
||||
# Mayotte
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Indian/Mayotte 3:00:56 - LMT 1911 Jul # Mamoutzou
|
||||
3:00 - EAT
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Morocco
|
||||
# See the 'europe' file for Spanish Morocco (Africa/Ceuta).
|
||||
@ -1072,11 +1050,7 @@ Zone Indian/Mahe 3:41:48 - LMT 1906 Jun # Victoria
|
||||
# See Africa/Abidjan.
|
||||
|
||||
# Somalia
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Mogadishu 3:01:28 - LMT 1893 Nov
|
||||
3:00 - EAT 1931
|
||||
2:30 - BEAT 1957
|
||||
3:00 - EAT
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# South Africa
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
@ -1119,11 +1093,7 @@ Link Africa/Khartoum Africa/Juba
|
||||
# See Africa/Johannesburg.
|
||||
|
||||
# Tanzania
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Dar_es_Salaam 2:37:08 - LMT 1931
|
||||
3:00 - EAT 1948
|
||||
2:45 - BEAUT 1961
|
||||
3:00 - EAT
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Togo
|
||||
# See Africa/Abidjan.
|
||||
@ -1229,12 +1199,7 @@ Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
|
||||
1:00 Tunisia CE%sT
|
||||
|
||||
# Uganda
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Africa/Kampala 2:09:40 - LMT 1928 Jul
|
||||
3:00 - EAT 1930
|
||||
2:30 - BEAT 1948
|
||||
2:45 - BEAUT 1957
|
||||
3:00 - EAT
|
||||
# See Africa/Nairobi.
|
||||
|
||||
# Zambia
|
||||
# Zimbabwe
|
||||
|
@ -29,20 +29,19 @@
|
||||
# tz@iana.org for general use in the future). For more, please see
|
||||
# the file CONTRIBUTING in the tz distribution.
|
||||
|
||||
# From Paul Eggert (2013-08-11):
|
||||
# From Paul Eggert (2014-10-31):
|
||||
#
|
||||
# A good source for time zone historical data outside the U.S. is
|
||||
# Unless otherwise specified, the source for data through 1990 is:
|
||||
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
|
||||
# San Diego: ACS Publications, Inc. (2003).
|
||||
# Unfortunately this book contains many errors and cites no sources.
|
||||
#
|
||||
# Gwillim Law writes that a good source
|
||||
# for recent time zone data is the International Air Transport
|
||||
# Association's Standard Schedules Information Manual (IATA SSIM),
|
||||
# published semiannually. Law sent in several helpful summaries
|
||||
# of the IATA's data after 1990.
|
||||
#
|
||||
# Except where otherwise noted, Shanks & Pottenger is the source for
|
||||
# entries through 1990, and IATA SSIM is the source for entries afterwards.
|
||||
# of the IATA's data after 1990. Except where otherwise noted,
|
||||
# IATA SSIM is the source for entries after 1990.
|
||||
#
|
||||
# Another source occasionally used is Edward W. Whitman, World Time Differences,
|
||||
# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
|
||||
@ -1686,44 +1685,70 @@ Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2
|
||||
# Korea (North and South)
|
||||
|
||||
# From Annie I. Bang (2006-07-10):
|
||||
# http://www.koreaherald.co.kr/SITE/data/html_dir/2006/07/10/200607100012.asp
|
||||
# The Ministry of Commerce, Industry and Energy has already
|
||||
# commissioned a research project [to reintroduce DST] and has said
|
||||
# the system may begin as early as 2008.... Korea ran a daylight
|
||||
# saving program from 1949-61 but stopped it during the 1950-53 Korean War.
|
||||
# http://www.koreaherald.com/view.php?ud=200607100012
|
||||
# Korea ran a daylight saving program from 1949-61 but stopped it
|
||||
# during the 1950-53 Korean War. The system was temporarily enforced
|
||||
# between 1987 and 1988 ...
|
||||
|
||||
# From Sanghyuk Jung (2014-10-29):
|
||||
# http://mm.icann.org/pipermail/tz/2014-October/021830.html
|
||||
# According to the Korean Wikipedia
|
||||
# http://ko.wikipedia.org/wiki/한국_표준시
|
||||
# [oldid=12896437 2014-09-04 08:03 UTC]
|
||||
# DST in Republic of Korea was as follows.... And I checked old
|
||||
# newspapers in Korean, all articles correspond with data in Wikipedia.
|
||||
# For example, the article in 1948 (Korean Language) proved that DST
|
||||
# started at June 1 in that year. For another example, the article in
|
||||
# 1988 said that DST started at 2:00 AM in that year.
|
||||
|
||||
# From Shanks & Pottenger:
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule ROK 1960 only - May 15 0:00 1:00 D
|
||||
Rule ROK 1960 only - Sep 13 0:00 0 S
|
||||
Rule ROK 1987 1988 - May Sun>=8 0:00 1:00 D
|
||||
Rule ROK 1987 1988 - Oct Sun>=8 0:00 0 S
|
||||
Rule ROK 1948 only - Jun 1 0:00 1:00 D
|
||||
Rule ROK 1948 only - Sep 13 0:00 0 S
|
||||
Rule ROK 1949 only - Apr 3 0:00 1:00 D
|
||||
Rule ROK 1949 1951 - Sep Sun>=8 0:00 0 S
|
||||
Rule ROK 1950 only - Apr 1 0:00 1:00 D
|
||||
Rule ROK 1951 only - May 6 0:00 1:00 D
|
||||
Rule ROK 1955 only - May 5 0:00 1:00 D
|
||||
Rule ROK 1955 only - Sep 9 0:00 0 S
|
||||
Rule ROK 1956 only - May 20 0:00 1:00 D
|
||||
Rule ROK 1956 only - Sep 30 0:00 0 S
|
||||
Rule ROK 1957 1960 - May Sun>=1 0:00 1:00 D
|
||||
Rule ROK 1957 1960 - Sep Sun>=18 0:00 0 S
|
||||
Rule ROK 1987 1988 - May Sun>=8 2:00 1:00 D
|
||||
Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
|
||||
|
||||
# From Paul Eggert (2014-07-01):
|
||||
# The following entries are from Shanks & Pottenger, except that I
|
||||
# guessed that time zone abbreviations through 1945 followed the same
|
||||
# From Paul Eggert (2014-10-30):
|
||||
# The Korean Wikipedia entry gives the following sources for UT offsets:
|
||||
#
|
||||
# 1908: Official Journal Article No. 3994 (Edict No. 5)
|
||||
# 1912: Governor-General of Korea Official Gazette Issue No. 367
|
||||
# (Announcement No. 338)
|
||||
# 1954: Presidential Decree No. 876 (1954-03-17)
|
||||
# 1961: Law No. 676 (1961-08-07)
|
||||
# 1987: Law No. 3919 (1986-12-31)
|
||||
#
|
||||
# The Wikipedia entry also has confusing information about a change
|
||||
# to UT+9 in April 1910, but then what would be the point of the later change
|
||||
# to UT+9 on 1912-01-01? Omit the 1910 change for now.
|
||||
#
|
||||
# I guessed that time zone abbreviations through 1945 followed the same
|
||||
# rules as discussed under Taiwan, with nominal switches from JST to KST
|
||||
# when the respective cities were taken over by the Allies after WWII.
|
||||
#
|
||||
# For Pyongyang we have no information; guess no changes since World War II.
|
||||
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Asia/Seoul 8:27:52 - LMT 1890
|
||||
8:30 - KST 1904 Dec
|
||||
9:00 - JCST 1928
|
||||
8:30 - KST 1932
|
||||
Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1
|
||||
8:30 - KST 1912 Jan 1
|
||||
9:00 - JCST 1937 Oct 1
|
||||
9:00 - JST 1945 Sep 8
|
||||
9:00 - KST 1954 Mar 21
|
||||
8:00 ROK K%sT 1961 Aug 10
|
||||
8:30 - KST 1968 Oct
|
||||
8:30 ROK K%sT 1961 Aug 10
|
||||
9:00 ROK K%sT
|
||||
Zone Asia/Pyongyang 8:23:00 - LMT 1890
|
||||
8:30 - KST 1904 Dec
|
||||
9:00 - JCST 1928
|
||||
8:30 - KST 1932
|
||||
Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1
|
||||
8:30 - KST 1912 Jan 1
|
||||
9:00 - JCST 1937 Oct 1
|
||||
9:00 - JST 1945 Aug 24
|
||||
9:00 - KST 1954 Mar 21
|
||||
8:00 - KST 1961 Aug 10
|
||||
9:00 - KST
|
||||
|
||||
###############################################################################
|
||||
|
@ -820,19 +820,19 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
|
||||
# tz@iana.org for general use in the future). For more, please see
|
||||
# the file CONTRIBUTING in the tz distribution.
|
||||
|
||||
# From Paul Eggert (2013-02-21):
|
||||
# A good source for time zone historical data outside the U.S. is
|
||||
# From Paul Eggert (2014-10-31):
|
||||
#
|
||||
# Unless otherwise specified, the source for data through 1990 is:
|
||||
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
|
||||
# San Diego: ACS Publications, Inc. (2003).
|
||||
# Unfortunately this book contains many errors and cites no sources.
|
||||
#
|
||||
# Gwillim Law writes that a good source
|
||||
# for recent time zone data is the International Air Transport
|
||||
# Association's Standard Schedules Information Manual (IATA SSIM),
|
||||
# published semiannually. Law sent in several helpful summaries
|
||||
# of the IATA's data after 1990.
|
||||
#
|
||||
# Except where otherwise noted, Shanks & Pottenger is the source for
|
||||
# entries through 1990, and IATA SSIM is the source for entries afterwards.
|
||||
# of the IATA's data after 1990. Except where otherwise noted,
|
||||
# IATA SSIM is the source for entries after 1990.
|
||||
#
|
||||
# Another source occasionally used is Edward W. Whitman, World Time Differences,
|
||||
# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
|
||||
|
@ -29,16 +29,19 @@
|
||||
# tz@iana.org for general use in the future). For more, please see
|
||||
# the file CONTRIBUTING in the tz distribution.
|
||||
|
||||
# From Paul Eggert (2014-05-31):
|
||||
# A good source for time zone historical data outside the U.S. is
|
||||
# From Paul Eggert (2014-10-31):
|
||||
#
|
||||
# Unless otherwise specified, the source for data through 1990 is:
|
||||
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
|
||||
# San Diego: ACS Publications, Inc. (2003).
|
||||
# Unfortunately this book contains many errors and cites no sources.
|
||||
#
|
||||
# Gwillim Law writes that a good source
|
||||
# for recent time zone data is the International Air Transport
|
||||
# Association's Standard Schedules Information Manual (IATA SSIM),
|
||||
# published semiannually. Law sent in several helpful summaries
|
||||
# of the IATA's data after 1990.
|
||||
# of the IATA's data after 1990. Except where otherwise noted,
|
||||
# IATA SSIM is the source for entries after 1990.
|
||||
#
|
||||
# A reliable and entertaining source about time zones is
|
||||
# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
|
||||
@ -310,6 +313,14 @@
|
||||
# "Timeball on the ballast office is down. Dunsink time."
|
||||
# -- James Joyce, Ulysses
|
||||
|
||||
# "Countess Markievicz ... claimed that the [1916] abolition of Dublin Mean Time
|
||||
# was among various actions undertaken by the 'English' government that
|
||||
# would 'put the whole country into the SF (Sinn Féin) camp'. She claimed
|
||||
# Irish 'public feeling (was) outraged by forcing of English time on us'."
|
||||
# -- Parsons M. Dublin lost its time zone - and 25 minutes - after 1916 Rising.
|
||||
# Irish Times 2014-10-27.
|
||||
# http://www.irishtimes.com/news/politics/dublin-lost-its-time-zone-and-25-minutes-after-1916-rising-1.1977411
|
||||
|
||||
# From Joseph S. Myers (2005-01-26):
|
||||
# Irish laws are available online at <http://www.irishstatutebook.ie>.
|
||||
# These include various relating to legal time, for example:
|
||||
@ -617,6 +628,7 @@ Rule Russia 1992 only - Sep lastSat 23:00 0 -
|
||||
Rule Russia 1993 2010 - Mar lastSun 2:00s 1:00 S
|
||||
Rule Russia 1993 1995 - Sep lastSun 2:00s 0 -
|
||||
Rule Russia 1996 2010 - Oct lastSun 2:00s 0 -
|
||||
# As described below, Russia's 2014 change affects Zone data, not Rule data.
|
||||
|
||||
# From Alexander Krivenyshev (2011-06-14):
|
||||
# According to Kremlin press service, Russian President Dmitry Medvedev
|
||||
|
@ -33,8 +33,8 @@
|
||||
# The NTP Timescale and Leap Seconds
|
||||
# http://www.eecis.udel.edu/~mills/leap.html
|
||||
|
||||
# The International Earth Rotation Service periodically uses leap seconds
|
||||
# to keep UTC to within 0.9 s of UT1
|
||||
# The International Earth Rotation and Reference Systems Service
|
||||
# periodically uses leap seconds to keep UTC to within 0.9 s of UT1
|
||||
# (which measures the true angular orientation of the earth in space); see
|
||||
# Terry J Quinn, The BIPM and the accurate measure of time,
|
||||
# Proc IEEE 79, 7 (July 1991), 894-905 <http://dx.doi.org/10.1109/5.84965>.
|
||||
|
@ -1014,19 +1014,19 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00
|
||||
################################################################################
|
||||
|
||||
|
||||
# From Paul Eggert (2006-03-22):
|
||||
# A good source for time zone historical data outside the U.S. is
|
||||
# From Paul Eggert (2014-10-31):
|
||||
#
|
||||
# Unless otherwise specified, the source for data through 1990 is:
|
||||
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
|
||||
# San Diego: ACS Publications, Inc. (2003).
|
||||
# Unfortunately this book contains many errors and cites no sources.
|
||||
#
|
||||
# Gwillim Law writes that a good source
|
||||
# for recent time zone data is the International Air Transport
|
||||
# Association's Standard Schedules Information Manual (IATA SSIM),
|
||||
# published semiannually. Law sent in several helpful summaries
|
||||
# of the IATA's data after 1990.
|
||||
#
|
||||
# Except where otherwise noted, Shanks & Pottenger is the source for
|
||||
# entries through 1990, and IATA SSIM is the source for entries afterwards.
|
||||
# of the IATA's data after 1990. Except where otherwise noted,
|
||||
# IATA SSIM is the source for entries after 1990.
|
||||
#
|
||||
# Other sources occasionally used include:
|
||||
#
|
||||
@ -3154,13 +3154,17 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre
|
||||
# From Paul Eggert (2014-08-19):
|
||||
# The 2014-08-13 Cabinet meeting decided to stay on UTC-4 year-round. See:
|
||||
# http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm
|
||||
# Model this as a switch from EST/EDT to AST on 2014-11-02 at 02:00.
|
||||
# Model this as a switch from EST/EDT to AST ...
|
||||
# From Chris Walton (2014-11-04):
|
||||
# ... the TCI government appears to have delayed the switch to
|
||||
# "permanent daylight saving time" by one year....
|
||||
# http://tcweeklynews.com/time-change-to-go-ahead-this-november-p5437-127.htm
|
||||
#
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Grand_Turk -4:44:32 - LMT 1890
|
||||
-5:07:11 - KMT 1912 Feb # Kingston Mean Time
|
||||
-5:00 - EST 1979
|
||||
-5:00 US E%sT 2014 Nov 2 2:00
|
||||
-5:00 US E%sT 2015 Nov Sun>=1 2:00
|
||||
-4:00 - AST
|
||||
|
||||
# British Virgin Is
|
||||
|
@ -29,23 +29,23 @@
|
||||
# tz@iana.org for general use in the future). For more, please see
|
||||
# the file CONTRIBUTING in the tz distribution.
|
||||
|
||||
# From Paul Eggert (2006-03-22):
|
||||
# A good source for time zone historical data outside the U.S. is
|
||||
# From Paul Eggert (2014-10-31):
|
||||
#
|
||||
# Unless otherwise specified, the source for data through 1990 is:
|
||||
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
|
||||
# San Diego: ACS Publications, Inc. (2003).
|
||||
#
|
||||
# For data circa 1899, a common source is:
|
||||
# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
|
||||
# http://www.jstor.org/stable/1774359
|
||||
# Unfortunately this book contains many errors and cites no sources.
|
||||
#
|
||||
# Gwillim Law writes that a good source
|
||||
# for recent time zone data is the International Air Transport
|
||||
# Association's Standard Schedules Information Manual (IATA SSIM),
|
||||
# published semiannually. Law sent in several helpful summaries
|
||||
# of the IATA's data after 1990.
|
||||
# of the IATA's data after 1990. Except where otherwise noted,
|
||||
# IATA SSIM is the source for entries after 1990.
|
||||
#
|
||||
# Except where otherwise noted, Shanks & Pottenger is the source for
|
||||
# entries through 1990, and IATA SSIM is the source for entries afterwards.
|
||||
# For data circa 1899, a common source is:
|
||||
# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
|
||||
# http://www.jstor.org/stable/1774359
|
||||
#
|
||||
# Earlier editions of these tables used the North American style (e.g. ARST and
|
||||
# ARDT for Argentine Standard and Daylight Time), but the following quote
|
||||
|
@ -29,9 +29,9 @@ GENSRC_AWT_ICONS_TMP := $(JDK_OUTPUTDIR)/gensrc
|
||||
GENSRC_AWT_ICONS_DST := $(GENSRC_AWT_ICONS_TMP)/java.desktop/sun/awt/
|
||||
|
||||
ifdef OPENJDK
|
||||
X11_ICONS_PATH_PREFIX := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)
|
||||
X11_ICONS_PATH_PREFIX := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)
|
||||
else
|
||||
X11_ICONS_PATH_PREFIX := $(JDK_TOPDIR)/src/closed/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)
|
||||
X11_ICONS_PATH_PREFIX := $(JDK_TOPDIR)/src/closed/java.desktop/$(OPENJDK_TARGET_OS_TYPE)
|
||||
endif
|
||||
|
||||
GENSRC_AWT_ICONS_SRC += \
|
||||
|
@ -95,8 +95,8 @@ ifneq ($(COMPILE_TYPE), cross)
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_EXPORT_DIR)/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
|
||||
#
|
||||
|
@ -42,7 +42,7 @@ UNPACKEXE_SRC := $(JDK_TOPDIR)/src/jdk.runtime/share/native/common-unpack \
|
||||
$(JDK_TOPDIR)/src/jdk.runtime/share/native/unpack200
|
||||
UNPACKEXE_CFLAGS := -I$(JDK_TOPDIR)/src/jdk.runtime/share/native/common-unpack \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjava
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava
|
||||
|
||||
ifeq ($(USE_EXTERNAL_LIBZ), true)
|
||||
UNPACKEXE_CFLAGS += -DSYSTEM_ZLIB
|
||||
@ -102,7 +102,7 @@ $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \
|
||||
MAPFILE := $(UNPACK_MAPFILE),\
|
||||
LDFLAGS := $(UNPACKEXE_ZIPOBJS), \
|
||||
LDFLAGS_windows := $(CXXFLAGS_JDKEXE), \
|
||||
LDFLAGS_posix := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
|
||||
LDFLAGS_unix := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
|
||||
$(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_linux := -lc, \
|
||||
|
@ -62,7 +62,7 @@ endif
|
||||
LAUNCHER_SRC := $(JDK_TOPDIR)/src/java.base/share/native/launcher
|
||||
LAUNCHER_CFLAGS := -I$(JDK_TOPDIR)/src/java.base/share/native/launcher \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjli \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjli \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjli \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/native/libjli \
|
||||
#
|
||||
GLOBAL_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
@ -71,10 +71,10 @@ MACOSX_PLIST_DIR := $(JDK_TOPDIR)/src/java.base/macosx/native/launcher
|
||||
# Until the shuffle is permanent, we can't add this in configure
|
||||
CFLAGS_JDKEXE := $(filter-out %javavm/export, $(CFLAGS_JDKEXE))
|
||||
CFLAGS_JDKEXE += -I$(JDK_TOPDIR)/src/java.base/share/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/include
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/include
|
||||
CXXFLAGS_JDKEXE := $(filter-out %javavm/export, $(CXXFLAGS_JDKEXE))
|
||||
CXXFLAGS_JDKEXE += -I$(JDK_TOPDIR)/src/java.base/share/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/include
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/include
|
||||
JAVA_MANIFEST := $(JDK_TOPDIR)/src/java.base/windows/native/launcher/java.manifest
|
||||
|
||||
define SetupLauncher
|
||||
@ -82,7 +82,7 @@ define SetupLauncher
|
||||
# Parameter 1 is the name of the launcher (java, javac, jar...)
|
||||
# Parameter 2 is extra CFLAGS
|
||||
# Parameter 3 is extra LDFLAGS
|
||||
# Parameter 4 is extra LDFLAGS_SUFFIX_posix
|
||||
# Parameter 4 is extra LDFLAGS_SUFFIX_unix
|
||||
# Parameter 5 is extra LDFLAGS_SUFFIX_windows
|
||||
# Parameter 6 is optional Windows JLI library (full path)
|
||||
# Parameter 7 is optional Windows resource (RC) flags
|
||||
@ -187,7 +187,7 @@ define SetupLauncher
|
||||
$(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
|
||||
MAPFILE := $$($1_MAPFILE), \
|
||||
LDFLAGS_SUFFIX := $(LDFLAGS_JDKEXE_SUFFIX) $$($1_LDFLAGS_SUFFIX), \
|
||||
LDFLAGS_SUFFIX_posix := $4, \
|
||||
LDFLAGS_SUFFIX_unix := $4, \
|
||||
LDFLAGS_SUFFIX_windows := $$($1_WINDOWS_JLI_LIB) \
|
||||
$(JDK_OUTPUTDIR)/objs/libjava/java.lib advapi32.lib $5, \
|
||||
LDFLAGS_SUFFIX_linux := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli $(LIBDL) -lc, \
|
||||
@ -231,4 +231,3 @@ ifdef OPENJDK
|
||||
else
|
||||
JAVA_RC_FLAGS += -i "$(JDK_TOPDIR)/src/closed/java.base/windows/native/launcher/icons"
|
||||
endif
|
||||
|
||||
|
@ -31,7 +31,7 @@ BUILD_LIBMLIB_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/libmlib_image \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/medialib
|
||||
BUILD_LIBMLIB_CFLAGS := -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \
|
||||
$(addprefix -I, $(BUILD_LIBMLIB_SRC)) \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libmlib_image
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libmlib_image
|
||||
|
||||
BUILD_LIBMLIB_LDLIBS :=
|
||||
BUILD_LIBMLIB_IMAGE_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libmlib_image/mapfile-vers
|
||||
@ -144,9 +144,9 @@ endif
|
||||
################################################################################
|
||||
|
||||
LIBAWT_DIRS := $(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
|
||||
#
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||
@ -211,7 +211,7 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# Why does libawt need java.base headers?
|
||||
LIBAWT_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/opengl \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/opengl \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/windows/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.base \
|
||||
@ -298,15 +298,15 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
|
||||
ifndef BUILD_HEADLESS_ONLY
|
||||
|
||||
LIBAWT_XAWT_DIRS := \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt_xawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt_xawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libjawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/utility \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/opengl \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/x11 \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/opengl \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/x11 \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
|
||||
#
|
||||
|
||||
LIBAWT_XAWT_EXCLUDES := medialib
|
||||
@ -315,15 +315,15 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/java2d \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libsunwjdga \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/font \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libsunwjdga \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/font \
|
||||
$(LIBJAVA_HEADER_FLAGS)
|
||||
#
|
||||
|
||||
@ -514,14 +514,14 @@ DESKTOP_LIBRARIES += $(BUILD_LIBJAVAJPEG)
|
||||
################################################################################
|
||||
|
||||
LIBFONTMANAGER_SRC := $(JDK_TOPDIR)/src/java.desktop/share/native/libfontmanager \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libfontmanager
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libfontmanager
|
||||
LIBFONTMANAGER_CFLAGS := \
|
||||
$(addprefix -I, $(shell $(FIND) \
|
||||
$(LIBFONTMANAGER_SRC) \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/libawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common -type d)) \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common -type d)) \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
#
|
||||
@ -542,7 +542,7 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
|
||||
X11TextRenderer.c
|
||||
LIBFONTMANAGER_OPTIMIZATION := HIGHEST
|
||||
LIBFONTMANAGER_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/windows
|
||||
LIBFONTMANAGER_CFLAGS += -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/windows
|
||||
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
|
||||
X11TextRenderer.c \
|
||||
@ -606,12 +606,12 @@ DESKTOP_LIBRARIES += $(BUILD_LIBFONTMANAGER)
|
||||
################################################################################
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt
|
||||
LIBJAWT_CFLAGS := -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/windows \
|
||||
LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libjawt
|
||||
LIBJAWT_CFLAGS := -I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/windows \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d/windows \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/java2d/windows \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/windows/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
|
||||
@ -655,12 +655,12 @@ else # OPENJDK_TARGET_OS not windows
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/macosx/native/libjawt
|
||||
else
|
||||
LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjawt
|
||||
LIBJAWT_SRC := $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libjawt
|
||||
endif
|
||||
LIBJAWT_CFLAGS := \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/include \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/include \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
#
|
||||
@ -724,9 +724,9 @@ ifeq ($(BUILD_HEADLESS), true)
|
||||
ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
|
||||
|
||||
LIBAWT_HEADLESS_DIRS := $(JDK_TOPDIR)/src/java.desktop/unix/native/libawt_headless/awt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/awt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/opengl \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/java2d/x11 \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/opengl \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/x11 \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
|
||||
#
|
||||
@ -739,11 +739,11 @@ ifeq ($(BUILD_HEADLESS), true)
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libawt/java2d \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/java2d \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/common/font \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libsunwjdga/ \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/font \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libsunwjdga/ \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
#
|
||||
|
||||
@ -817,7 +817,7 @@ ifndef BUILD_HEADLESS_ONLY
|
||||
endif
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libsplashscreen
|
||||
LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libsplashscreen
|
||||
else
|
||||
LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/java.desktop/macosx/native/libsplashscreen
|
||||
endif
|
||||
@ -988,7 +988,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/awt \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxapp \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN) \
|
||||
|
@ -99,7 +99,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libverify/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_SUFFIX_posix := -ljvm -lc, \
|
||||
LDFLAGS_SUFFIX_unix := -ljvm -lc, \
|
||||
LDFLAGS_SUFFIX_windows := jvm.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
@ -160,7 +160,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjava/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_SUFFIX_posix := -ljvm -lverify, \
|
||||
LDFLAGS_SUFFIX_unix := -ljvm -lverify, \
|
||||
LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \
|
||||
LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \
|
||||
LDFLAGS_SUFFIX_aix := $(LIBDL) $(BUILD_LIBFDLIBM) -lm,\
|
||||
@ -216,9 +216,9 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(ZLIB_CPPFLAGS) \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.base, \
|
||||
CFLAGS_posix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
|
||||
CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libzip/mapfile-vers, \
|
||||
REORDER := $(BUILD_LIBZIP_REORDER), \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
@ -247,7 +247,7 @@ BASE_LIBRARIES += $(BUILD_LIBZIP)
|
||||
##########################################################################################
|
||||
|
||||
BUILD_LIBJLI_SRC_DIRS := $(JDK_TOPDIR)/src/java.base/share/native/libjli \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjli
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjli
|
||||
|
||||
LIBJLI_CFLAGS := $(CFLAGS_JDKLIB)
|
||||
|
||||
@ -291,7 +291,7 @@ else ifneq ($(OPENJDK_TARGET_OS), macosx)
|
||||
|
||||
# if the architecture specific ergo file exists then
|
||||
# use it, else use the generic definitions from ergo.c
|
||||
ifneq ($(wildcard $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjli/$(ERGO_ARCH_FILE)), )
|
||||
ifneq ($(wildcard $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjli/$(ERGO_ARCH_FILE)), )
|
||||
BUILD_LIBJLI_FILES += $(ERGO_ARCH_FILE)
|
||||
else # !ERGO_ARCH_FILE
|
||||
LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO
|
||||
|
@ -28,7 +28,7 @@ include LibCommon.gmk
|
||||
################################################################################
|
||||
|
||||
LIBINSTRUMENT_SRC := $(JDK_TOPDIR)/src/java.instrument/share/native/libinstrument \
|
||||
$(JDK_TOPDIR)/src/java.instrument/$(OPENJDK_TARGET_OS_API_DIR)/native/libinstrument \
|
||||
$(JDK_TOPDIR)/src/java.instrument/$(OPENJDK_TARGET_OS_TYPE)/native/libinstrument \
|
||||
#
|
||||
LIBINSTRUMENT_CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(addprefix -I, $(LIBINSTRUMENT_SRC)) \
|
||||
|
@ -31,7 +31,7 @@ $(eval $(call IncludeCustomExtension, jdk, lib/Lib-java.management.gmk))
|
||||
################################################################################
|
||||
|
||||
BUILD_LIBMANAGEMENT_SRC += $(JDK_TOPDIR)/src/java.management/share/native/libmanagement \
|
||||
$(JDK_TOPDIR)/src/java.management/$(OPENJDK_TARGET_OS_API_DIR)/native/libmanagement
|
||||
$(JDK_TOPDIR)/src/java.management/$(OPENJDK_TARGET_OS_TYPE)/native/libmanagement
|
||||
BUILD_LIBMANAGEMENT_CFLAGS := -I$(JDK_TOPDIR)/src/java.management/share/native/include \
|
||||
$(addprefix -I,$(BUILD_LIBMANAGEMENT_SRC)) \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.management \
|
||||
|
@ -30,7 +30,7 @@ include LibCommon.gmk
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LIBPREF_SRC_DIRS := $(JDK_TOPDIR)/src/java.prefs/macosx/native/libprefs
|
||||
else
|
||||
LIBPREF_SRC_DIRS := $(JDK_TOPDIR)/src/java.prefs/$(OPENJDK_TARGET_OS_API_DIR)/native/libprefs
|
||||
LIBPREF_SRC_DIRS := $(JDK_TOPDIR)/src/java.prefs/$(OPENJDK_TARGET_OS_TYPE)/native/libprefs
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBPREFS, \
|
||||
|
@ -29,7 +29,7 @@ include LibCommon.gmk
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBJ2GSS_SRC := $(JDK_TOPDIR)/src/java.security.jgss/share/native/libj2gss \
|
||||
$(JDK_TOPDIR)/src/java.security.jgss/$(OPENJDK_TARGET_OS_API_DIR)/native/libj2gss \
|
||||
$(JDK_TOPDIR)/src/java.security.jgss/$(OPENJDK_TARGET_OS_TYPE)/native/libj2gss \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS, \
|
||||
@ -58,7 +58,7 @@ ifneq ($(BUILD_CRYPTO), no)
|
||||
BUILD_LIBKRB5_NAME :=
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
BUILD_LIBKRB5_NAME := w2k_lsa_auth
|
||||
BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/java.security.jgss/$(OPENJDK_TARGET_OS_API_DIR)/native/libw2k_lsa_auth
|
||||
BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/java.security.jgss/$(OPENJDK_TARGET_OS_TYPE)/native/libw2k_lsa_auth
|
||||
BUILD_LIBKRB5_LIBS := advapi32.lib Secur32.lib netapi32.lib kernel32.lib user32.lib \
|
||||
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib \
|
||||
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib
|
||||
|
@ -28,9 +28,9 @@ include LibCommon.gmk
|
||||
################################################################################
|
||||
|
||||
LIBJ2PCSC_SRC := $(JDK_TOPDIR)/src/java.smartcardio/share/native/libj2pcsc \
|
||||
$(JDK_TOPDIR)/src/java.smartcardio/$(OPENJDK_TARGET_OS_API_DIR)/native/libj2pcsc
|
||||
$(JDK_TOPDIR)/src/java.smartcardio/$(OPENJDK_TARGET_OS_TYPE)/native/libj2pcsc
|
||||
LIBJ2PCSC_CPPFLAGS := $(addprefix -I,$(LIBJ2PCSC_SRC)) \
|
||||
-I$(JDK_TOPDIR)/src/java.smartcardio/$(OPENJDK_TARGET_OS_API_DIR)/native/libj2pcsc/MUSCLE \
|
||||
-I$(JDK_TOPDIR)/src/java.smartcardio/$(OPENJDK_TARGET_OS_TYPE)/native/libj2pcsc/MUSCLE \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.smartcardio
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \
|
||||
@ -38,13 +38,13 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJ2PCSC_SRC), \
|
||||
LANG := C, \
|
||||
CFLAGS_posix := -D__sun_jdk, \
|
||||
CFLAGS_unix := -D__sun_jdk, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBJ2PCSC_CPPFLAGS), \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2pcsc/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_SUFFIX_posix := $(LIBDL), \
|
||||
LDFLAGS_SUFFIX_unix := $(LIBDL), \
|
||||
LDFLAGS_SUFFIX_windows := winscard.lib, \
|
||||
LDFLAGS_SUFFIX_solaris := -lc, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
|
@ -29,7 +29,7 @@ include LibCommon.gmk
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
|
||||
LIBSUNMSCAPI_SRC := $(JDK_TOPDIR)/src/jdk.crypto.mscapi/$(OPENJDK_TARGET_OS_API_DIR)/native/libsunmscapi
|
||||
LIBSUNMSCAPI_SRC := $(JDK_TOPDIR)/src/jdk.crypto.mscapi/$(OPENJDK_TARGET_OS_TYPE)/native/libsunmscapi
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI, \
|
||||
LIBRARY := sunmscapi, \
|
||||
|
@ -28,7 +28,7 @@ include LibCommon.gmk
|
||||
################################################################################
|
||||
|
||||
LIBJ2PKCS11_SRC := $(JDK_TOPDIR)/src/jdk.crypto.pkcs11/share/native/libj2pkcs11 \
|
||||
$(JDK_TOPDIR)/src/jdk.crypto.pkcs11/$(OPENJDK_TARGET_OS_API_DIR)/native/libj2pkcs11
|
||||
$(JDK_TOPDIR)/src/jdk.crypto.pkcs11/$(OPENJDK_TARGET_OS_TYPE)/native/libj2pkcs11
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \
|
||||
LIBRARY := j2pkcs11, \
|
||||
@ -42,7 +42,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2pkcs11/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_SUFFIX_posix := $(LIBDL), \
|
||||
LDFLAGS_SUFFIX_unix := $(LIBDL), \
|
||||
LDFLAGS_SUFFIX_solaris := -lc, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
|
@ -30,7 +30,7 @@ include LibCommon.gmk
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
|
||||
LIBDT_SHMEM_SRC := $(JDK_TOPDIR)/src/jdk.jdi/share/native/libdt_shmem \
|
||||
$(JDK_TOPDIR)/src/jdk.jdi/$(OPENJDK_TARGET_OS_API_DIR)/native/libdt_shmem \
|
||||
$(JDK_TOPDIR)/src/jdk.jdi/$(OPENJDK_TARGET_OS_TYPE)/native/libdt_shmem \
|
||||
#
|
||||
LIBDT_SHMEM_CPPFLAGS := -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \
|
||||
$(addprefix -I, $(LIBDT_SHMEM_SRC)) \
|
||||
|
@ -28,7 +28,7 @@ include LibCommon.gmk
|
||||
################################################################################
|
||||
|
||||
LIBDT_SOCKET_SRC := $(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libdt_socket \
|
||||
$(JDK_TOPDIR)/src/jdk.jdwp.agent/$(OPENJDK_TARGET_OS_API_DIR)/native/libdt_socket
|
||||
$(JDK_TOPDIR)/src/jdk.jdwp.agent/$(OPENJDK_TARGET_OS_TYPE)/native/libdt_socket
|
||||
LIBDT_SOCKET_CPPFLAGS := \
|
||||
$(addprefix -I, $(LIBDT_SOCKET_SRC)) \
|
||||
-I$(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libjdwp/export \
|
||||
@ -66,7 +66,7 @@ JDWP_LIBRARIES += $(BUILD_LIBDT_SOCKET)
|
||||
################################################################################
|
||||
|
||||
LIBJDWP_SRC := $(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libjdwp \
|
||||
$(JDK_TOPDIR)/src/jdk.jdwp.agent/$(OPENJDK_TARGET_OS_API_DIR)/native/libjdwp
|
||||
$(JDK_TOPDIR)/src/jdk.jdwp.agent/$(OPENJDK_TARGET_OS_TYPE)/native/libjdwp
|
||||
LIBJDWP_CPPFLAGS := \
|
||||
-I$(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libjdwp/export \
|
||||
-I$(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/include \
|
||||
|
@ -45,7 +45,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_windows := -map:$(JDK_OUTPUTDIR)/objs/unpack.map -debug \
|
||||
jvm.lib $(WIN_JAVA_LIB), \
|
||||
LDFLAGS_SUFFIX_posix := -ljvm $(LIBCXX) -ljava -lc, \
|
||||
LDFLAGS_SUFFIX_unix := -ljvm $(LIBCXX) -ljava -lc, \
|
||||
OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libunpack, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
@ -61,7 +61,7 @@ UNPACK_LIBRARIES += $(BUILD_LIBUNPACK)
|
||||
################################################################################
|
||||
|
||||
LIBJSDT_SRC := $(JDK_TOPDIR)/src/jdk.runtime/share/native/libjsdt \
|
||||
$(JDK_TOPDIR)/src/jdk.runtime/$(OPENJDK_TARGET_OS_API_DIR)/native/libjsdt
|
||||
$(JDK_TOPDIR)/src/jdk.runtime/$(OPENJDK_TARGET_OS_TYPE)/native/libjsdt
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJSDT, \
|
||||
LIBRARY := jsdt, \
|
||||
|
@ -27,7 +27,7 @@ include LibCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS_API), posix)
|
||||
ifeq ($(OPENJDK_TARGET_OS_TYPE), unix)
|
||||
|
||||
ifeq (, $(filter $(OPENJDK_TARGET_OS), macosx aix))
|
||||
|
||||
@ -40,11 +40,11 @@ ifeq ($(OPENJDK_TARGET_OS_API), posix)
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \
|
||||
LIBRARY := sctp, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(JDK_TOPDIR)/src/jdk.sctp/$(OPENJDK_TARGET_OS_API_DIR)/native/libsctp, \
|
||||
SRC := $(JDK_TOPDIR)/src/jdk.sctp/$(OPENJDK_TARGET_OS_TYPE)/native/libsctp, \
|
||||
LANG := C, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
-I $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libnio/ch \
|
||||
-I $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio/ch \
|
||||
-I $(JDK_TOPDIR)/src/java.base/share/native/libnio/ch \
|
||||
$(addprefix -I, $(call FindSrcDirsForLib, java.base, net)) \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
@ -55,7 +55,7 @@ ifeq ($(OPENJDK_TARGET_OS_API), posix)
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \
|
||||
LDFLAGS_SUFFIX_posix := -lnio -lnet, \
|
||||
LDFLAGS_SUFFIX_unix := -lnio -lnet, \
|
||||
LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \
|
||||
LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \
|
||||
OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \
|
||||
|
@ -43,7 +43,7 @@ endif
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAAS, \
|
||||
LIBRARY := $(LIBJAAS_NAME), \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(JDK_TOPDIR)/src/jdk.security.auth/$(OPENJDK_TARGET_OS_API_DIR)/native/libjaas, \
|
||||
SRC := $(JDK_TOPDIR)/src/jdk.security.auth/$(OPENJDK_TARGET_OS_TYPE)/native/libjaas, \
|
||||
LANG := C, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers/jdk.security.auth, \
|
||||
|
@ -34,8 +34,8 @@ include Tools.gmk
|
||||
|
||||
GLOBAL_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
|
||||
# Put the libraries here. Different locations for different target apis.
|
||||
ifeq ($(OPENJDK_TARGET_OS_API), posix)
|
||||
# Put the libraries here. Different locations for different target OS types.
|
||||
ifeq ($(OPENJDK_TARGET_OS_TYPE), unix)
|
||||
INSTALL_LIBRARIES_HERE := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
|
||||
else
|
||||
INSTALL_LIBRARIES_HERE := $(JDK_OUTPUTDIR)/bin
|
||||
@ -63,7 +63,7 @@ endif
|
||||
# Param 2 - library name
|
||||
FindSrcDirsForLib = $(call uniq, $(wildcard \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS)/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_API_DIR)/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/share/native/lib$(strip $2)))
|
||||
|
||||
################################################################################
|
||||
|
@ -24,7 +24,7 @@
|
||||
#
|
||||
|
||||
LIBNET_SRC_DIRS := $(JDK_TOPDIR)/src/java.base/share/native/libnet \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libnet
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnet
|
||||
LIBNET_CFLAGS += -I$(JDK_OUTPUTDIR)/gensrc_headers/java.base \
|
||||
$(LIBJAVA_HEADER_FLAGS)
|
||||
|
||||
@ -77,4 +77,3 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBNET, \
|
||||
$(BUILD_LIBNET): $(BUILD_LIBJAVA)
|
||||
|
||||
BASE_LIBRARIES += $(BUILD_LIBNET)
|
||||
|
||||
|
@ -25,10 +25,10 @@
|
||||
|
||||
BUILD_LIBNIO_SRC := \
|
||||
$(JDK_TOPDIR)/src/java.base/share/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libnio \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio \
|
||||
$(sort $(wildcard \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libnio/fs \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio/fs \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/native/libnio/fs)) \
|
||||
#
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
LIBJSOUND_SRC_DIRS := \
|
||||
$(JDK_TOPDIR)/src/java.desktop/share/native/libjsound \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_API_DIR)/native/libjsound \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libjsound \
|
||||
#
|
||||
LIBJSOUND_CFLAGS := \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_headers/java.desktop \
|
||||
@ -169,7 +169,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUND, \
|
||||
-framework CoreServices -framework AudioUnit $(LIBCXX) \
|
||||
-framework CoreMIDI -framework AudioToolbox, \
|
||||
LDFLAGS_windows := $(WIN_JAVA_LIB) advapi32.lib winmm.lib, \
|
||||
LDFLAGS_SUFFIX_posix := -ljava -ljvm, \
|
||||
LDFLAGS_SUFFIX_unix := -ljava -ljvm, \
|
||||
LDFLAGS_SUFFIX_solaris := -lc, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
|
@ -95,7 +95,17 @@ class TzdbZoneRulesProvider {
|
||||
obj = zones.get(zoneId);
|
||||
}
|
||||
if (obj == null) {
|
||||
throw new ZoneRulesException("Unknown time-zone ID: " + zoneId0);
|
||||
// Timezone link can be located in 'backward' file and it
|
||||
// can refer to another link, so we need to check for
|
||||
// link one more time, before throwing an exception
|
||||
String zoneIdBack = zoneId;
|
||||
if (links.containsKey(zoneId)) {
|
||||
zoneId = links.get(zoneId);
|
||||
obj = zones.get(zoneId);
|
||||
}
|
||||
if (obj == null) {
|
||||
throw new ZoneRulesException("Unknown time-zone ID: " + zoneIdBack);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (obj instanceof ZoneRules) {
|
||||
|
@ -719,15 +719,15 @@ public final class Class<T> implements java.io.Serializable,
|
||||
|
||||
|
||||
/**
|
||||
* Returns the {@code Class} representing the superclass of the entity
|
||||
* (class, interface, primitive type or void) represented by this
|
||||
* {@code Class}. If this {@code Class} represents either the
|
||||
* Returns the {@code Class} representing the direct superclass of the
|
||||
* entity (class, interface, primitive type or void) represented by
|
||||
* this {@code Class}. If this {@code Class} represents either the
|
||||
* {@code Object} class, an interface, a primitive type, or void, then
|
||||
* null is returned. If this object represents an array class then the
|
||||
* {@code Class} object representing the {@code Object} class is
|
||||
* returned.
|
||||
*
|
||||
* @return the superclass of the class represented by this object.
|
||||
* @return the direct superclass of the class represented by this object
|
||||
*/
|
||||
public native Class<? super T> getSuperclass();
|
||||
|
||||
@ -758,7 +758,7 @@ public final class Class<T> implements java.io.Serializable,
|
||||
* @throws java.lang.reflect.MalformedParameterizedTypeException if the
|
||||
* generic superclass refers to a parameterized type that cannot be
|
||||
* instantiated for any reason
|
||||
* @return the superclass of the class represented by this object
|
||||
* @return the direct superclass of the class represented by this object
|
||||
* @since 1.5
|
||||
*/
|
||||
public Type getGenericSuperclass() {
|
||||
@ -798,15 +798,15 @@ public final class Class<T> implements java.io.Serializable,
|
||||
|
||||
|
||||
/**
|
||||
* Determines the interfaces implemented by the class or interface
|
||||
* Returns the interfaces directly implemented by the class or interface
|
||||
* represented by this object.
|
||||
*
|
||||
* <p> If this object represents a class, the return value is an array
|
||||
* containing objects representing all interfaces implemented by the
|
||||
* class. The order of the interface objects in the array corresponds to
|
||||
* the order of the interface names in the {@code implements} clause
|
||||
* of the declaration of the class represented by this object. For
|
||||
* example, given the declaration:
|
||||
* <p>If this object represents a class, the return value is an array
|
||||
* containing objects representing all interfaces directly implemented by
|
||||
* the class. The order of the interface objects in the array corresponds
|
||||
* to the order of the interface names in the {@code implements} clause of
|
||||
* the declaration of the class represented by this object. For example,
|
||||
* given the declaration:
|
||||
* <blockquote>
|
||||
* {@code class Shimmer implements FloorWax, DessertTopping { ... }}
|
||||
* </blockquote>
|
||||
@ -823,23 +823,23 @@ public final class Class<T> implements java.io.Serializable,
|
||||
* is the {@code Class} object that represents interface
|
||||
* {@code DessertTopping}.
|
||||
*
|
||||
* <p> If this object represents an interface, the array contains objects
|
||||
* representing all interfaces extended by the interface. The order of the
|
||||
* interface objects in the array corresponds to the order of the interface
|
||||
* names in the {@code extends} clause of the declaration of the
|
||||
* interface represented by this object.
|
||||
* <p>If this object represents an interface, the array contains objects
|
||||
* representing all interfaces directly extended by the interface. The
|
||||
* order of the interface objects in the array corresponds to the order of
|
||||
* the interface names in the {@code extends} clause of the declaration of
|
||||
* the interface represented by this object.
|
||||
*
|
||||
* <p> If this object represents a class or interface that implements no
|
||||
* <p>If this object represents a class or interface that implements no
|
||||
* interfaces, the method returns an array of length 0.
|
||||
*
|
||||
* <p> If this object represents a primitive type or void, the method
|
||||
* <p>If this object represents a primitive type or void, the method
|
||||
* returns an array of length 0.
|
||||
*
|
||||
* <p> If this {@code Class} object represents an array type, the
|
||||
* <p>If this {@code Class} object represents an array type, the
|
||||
* interfaces {@code Cloneable} and {@code java.io.Serializable} are
|
||||
* returned in that order.
|
||||
*
|
||||
* @return an array of interfaces implemented by this class.
|
||||
* @return an array of interfaces directly implemented by this class
|
||||
*/
|
||||
public Class<?>[] getInterfaces() {
|
||||
ReflectionData<T> rd = reflectionData();
|
||||
@ -873,29 +873,28 @@ public final class Class<T> implements java.io.Serializable,
|
||||
* for the semantics of the creation process for parameterized
|
||||
* types.
|
||||
*
|
||||
* <p> If this object represents a class, the return value is an
|
||||
* array containing objects representing all interfaces
|
||||
* implemented by the class. The order of the interface objects in
|
||||
* the array corresponds to the order of the interface names in
|
||||
* the {@code implements} clause of the declaration of the class
|
||||
* represented by this object. In the case of an array class, the
|
||||
* interfaces {@code Cloneable} and {@code Serializable} are
|
||||
* <p>If this object represents a class, the return value is an array
|
||||
* containing objects representing all interfaces directly implemented by
|
||||
* the class. The order of the interface objects in the array corresponds
|
||||
* to the order of the interface names in the {@code implements} clause of
|
||||
* the declaration of the class represented by this object.
|
||||
*
|
||||
* <p>If this object represents an interface, the array contains objects
|
||||
* representing all interfaces directly extended by the interface. The
|
||||
* order of the interface objects in the array corresponds to the order of
|
||||
* the interface names in the {@code extends} clause of the declaration of
|
||||
* the interface represented by this object.
|
||||
*
|
||||
* <p>If this object represents a class or interface that implements no
|
||||
* interfaces, the method returns an array of length 0.
|
||||
*
|
||||
* <p>If this object represents a primitive type or void, the method
|
||||
* returns an array of length 0.
|
||||
*
|
||||
* <p>If this {@code Class} object represents an array type, the
|
||||
* interfaces {@code Cloneable} and {@code java.io.Serializable} are
|
||||
* returned in that order.
|
||||
*
|
||||
* <p>If this object represents an interface, the array contains
|
||||
* objects representing all interfaces directly extended by the
|
||||
* interface. The order of the interface objects in the array
|
||||
* corresponds to the order of the interface names in the
|
||||
* {@code extends} clause of the declaration of the interface
|
||||
* represented by this object.
|
||||
*
|
||||
* <p>If this object represents a class or interface that
|
||||
* implements no interfaces, the method returns an array of length
|
||||
* 0.
|
||||
*
|
||||
* <p>If this object represents a primitive type or void, the
|
||||
* method returns an array of length 0.
|
||||
*
|
||||
* @throws java.lang.reflect.GenericSignatureFormatError
|
||||
* if the generic class signature does not conform to the format
|
||||
* specified in
|
||||
@ -905,7 +904,7 @@ public final class Class<T> implements java.io.Serializable,
|
||||
* @throws java.lang.reflect.MalformedParameterizedTypeException
|
||||
* if any of the generic superinterfaces refer to a parameterized
|
||||
* type that cannot be instantiated for any reason
|
||||
* @return an array of interfaces implemented by this class
|
||||
* @return an array of interfaces directly implemented by this class
|
||||
* @since 1.5
|
||||
*/
|
||||
public Type[] getGenericInterfaces() {
|
||||
@ -1533,7 +1532,8 @@ public final class Class<T> implements java.io.Serializable,
|
||||
* 0.
|
||||
*
|
||||
* <p> If this {@code Class} object represents a class, then this method
|
||||
* returns the public fields of the class and of all its superclasses.
|
||||
* returns the public fields of the class and of all its superclasses and
|
||||
* superinterfaces.
|
||||
*
|
||||
* <p> If this {@code Class} object represents an interface, then this
|
||||
* method returns the fields of the interface and of all its
|
||||
|
@ -453,7 +453,7 @@ public class Object {
|
||||
"nanosecond timeout value out of range");
|
||||
}
|
||||
|
||||
if (nanos >= 500000 || (nanos != 0 && timeout == 0)) {
|
||||
if (nanos > 0) {
|
||||
timeout++;
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ public abstract
|
||||
class Authenticator {
|
||||
|
||||
// The system-wide authenticator object. See setDefault().
|
||||
private static Authenticator theAuthenticator;
|
||||
private static volatile Authenticator theAuthenticator;
|
||||
|
||||
private String requestingHost;
|
||||
private InetAddress requestingSite;
|
||||
|
@ -771,6 +771,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
} // end of while
|
||||
}
|
||||
}
|
||||
DatagramPacket tmp = null;
|
||||
if ((connectState == ST_CONNECTED_NO_IMPL) || explicitFilter) {
|
||||
// We have to do the filtering the old fashioned way since
|
||||
// the native impl doesn't support connect or the connect
|
||||
@ -795,11 +796,13 @@ class DatagramSocket implements java.io.Closeable {
|
||||
if ((!connectedAddress.equals(peekAddress)) ||
|
||||
(connectedPort != peekPort)) {
|
||||
// throw the packet away and silently continue
|
||||
DatagramPacket tmp = new DatagramPacket(
|
||||
tmp = new DatagramPacket(
|
||||
new byte[1024], 1024);
|
||||
getImpl().receive(tmp);
|
||||
if (explicitFilter) {
|
||||
bytesLeftToFilter -= tmp.getLength();
|
||||
if (checkFiltering(tmp)) {
|
||||
stop = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
stop = true;
|
||||
@ -809,18 +812,22 @@ class DatagramSocket implements java.io.Closeable {
|
||||
// If the security check succeeds, or the datagram is
|
||||
// connected then receive the packet
|
||||
getImpl().receive(p);
|
||||
if (explicitFilter) {
|
||||
bytesLeftToFilter -= p.getLength();
|
||||
if (bytesLeftToFilter <= 0) {
|
||||
explicitFilter = false;
|
||||
} else {
|
||||
// break out of filter, if there is no more data queued
|
||||
explicitFilter = getImpl().dataAvailable() > 0;
|
||||
}
|
||||
if (explicitFilter && tmp == null) {
|
||||
// packet was not filtered, account for it here
|
||||
checkFiltering(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkFiltering(DatagramPacket p) throws SocketException {
|
||||
bytesLeftToFilter -= p.getLength();
|
||||
if (bytesLeftToFilter <= 0 || getImpl().dataAvailable() <= 0) {
|
||||
explicitFilter = false;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the local address to which the socket is bound.
|
||||
*
|
||||
|
@ -2624,10 +2624,11 @@ public final class Formatter implements Closeable, Flushable {
|
||||
private boolean dt = false;
|
||||
private char c;
|
||||
|
||||
private int index(String s) {
|
||||
if (s != null) {
|
||||
private int index(String s, int start, int end) {
|
||||
if (start >= 0) {
|
||||
try {
|
||||
index = Integer.parseInt(s.substring(0, s.length() - 1));
|
||||
// skip the trailing '$'
|
||||
index = Integer.parseInt(s, start, end - 1, 10);
|
||||
} catch (NumberFormatException x) {
|
||||
assert(false);
|
||||
}
|
||||
@ -2648,11 +2649,11 @@ public final class Formatter implements Closeable, Flushable {
|
||||
return f;
|
||||
}
|
||||
|
||||
private int width(String s) {
|
||||
private int width(String s, int start, int end) {
|
||||
width = -1;
|
||||
if (s != null) {
|
||||
if (start >= 0) {
|
||||
try {
|
||||
width = Integer.parseInt(s);
|
||||
width = Integer.parseInt(s, start, end, 10);
|
||||
if (width < 0)
|
||||
throw new IllegalFormatWidthException(width);
|
||||
} catch (NumberFormatException x) {
|
||||
@ -2662,12 +2663,12 @@ public final class Formatter implements Closeable, Flushable {
|
||||
return width;
|
||||
}
|
||||
|
||||
private int precision(String s) {
|
||||
private int precision(String s, int start, int end) {
|
||||
precision = -1;
|
||||
if (s != null) {
|
||||
if (start >= 0) {
|
||||
try {
|
||||
// remove the '.'
|
||||
precision = Integer.parseInt(s.substring(1));
|
||||
// skip the leading '.'
|
||||
precision = Integer.parseInt(s, start + 1, end, 10);
|
||||
if (precision < 0)
|
||||
throw new IllegalFormatPrecisionException(precision);
|
||||
} catch (NumberFormatException x) {
|
||||
@ -2695,23 +2696,19 @@ public final class Formatter implements Closeable, Flushable {
|
||||
}
|
||||
|
||||
FormatSpecifier(String s, Matcher m) {
|
||||
int idx = 1;
|
||||
index(s, m.start(1), m.end(1));
|
||||
flags(s, m.start(2), m.end(2));
|
||||
width(s, m.start(3), m.end(3));
|
||||
precision(s, m.start(4), m.end(4));
|
||||
|
||||
index(m.group(idx++));
|
||||
flags(s, m.start(idx), m.end(idx++));
|
||||
width(m.group(idx++));
|
||||
precision(m.group(idx++));
|
||||
|
||||
int tTStart = m.start(idx);
|
||||
int tTEnd = m.end(idx++);
|
||||
if (tTStart != -1 && tTEnd != -1) {
|
||||
int tTStart = m.start(5);
|
||||
if (tTStart >= 0) {
|
||||
dt = true;
|
||||
if (tTStart == tTEnd - 1 && s.charAt(tTStart) == 'T') {
|
||||
if (s.charAt(tTStart) == 'T') {
|
||||
f.add(Flags.UPPERCASE);
|
||||
}
|
||||
}
|
||||
|
||||
conversion(s.charAt(m.start(idx)));
|
||||
conversion(s.charAt(m.start(6)));
|
||||
|
||||
if (dt)
|
||||
checkDateTime();
|
||||
|
@ -28,7 +28,7 @@ package java.util.jar;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Collection;
|
||||
@ -47,6 +47,9 @@ import sun.misc.ASCIICaseInsensitiveComparator;
|
||||
* <a href="../../../../technotes/guides/jar/jar.html">JAR File Specification</a>
|
||||
* for more information about valid attribute names and values.
|
||||
*
|
||||
* <p>This map and its views have a predictable iteration order, namely the
|
||||
* order that keys were inserted into the map, as with {@link LinkedHashMap}.
|
||||
*
|
||||
* @author David Connelly
|
||||
* @see Manifest
|
||||
* @since 1.2
|
||||
@ -71,7 +74,7 @@ public class Attributes implements Map<Object,Object>, Cloneable {
|
||||
* @param size the initial number of attributes
|
||||
*/
|
||||
public Attributes(int size) {
|
||||
map = new HashMap<>(size);
|
||||
map = new LinkedHashMap<>(size);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,7 +84,7 @@ public class Attributes implements Map<Object,Object>, Cloneable {
|
||||
* @param attr the specified Attributes
|
||||
*/
|
||||
public Attributes(Attributes attr) {
|
||||
map = new HashMap<>(attr);
|
||||
map = new LinkedHashMap<>(attr);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2014, 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
|
||||
@ -34,9 +34,8 @@ import sun.nio.ch.DirectBuffer;
|
||||
* can be computed much faster.
|
||||
*
|
||||
* <p> Passing a {@code null} argument to a method in this class will cause
|
||||
* a {@link NullPointerException} to be thrown.
|
||||
* a {@link NullPointerException} to be thrown.</p>
|
||||
*
|
||||
* @see Checksum
|
||||
* @author David Connelly
|
||||
*/
|
||||
public
|
||||
@ -53,9 +52,8 @@ class Adler32 implements Checksum {
|
||||
/**
|
||||
* Updates the checksum with the specified byte (the low eight
|
||||
* bits of the argument b).
|
||||
*
|
||||
* @param b the byte to update the checksum with
|
||||
*/
|
||||
@Override
|
||||
public void update(int b) {
|
||||
adler = update(adler, b);
|
||||
}
|
||||
@ -63,11 +61,12 @@ class Adler32 implements Checksum {
|
||||
/**
|
||||
* Updates the checksum with the specified array of bytes.
|
||||
*
|
||||
* @throws ArrayIndexOutOfBoundsException
|
||||
* if {@code off} is negative, or {@code len} is negative,
|
||||
* or {@code off+len} is greater than the length of the
|
||||
* array {@code b}
|
||||
* @throws ArrayIndexOutOfBoundsException
|
||||
* if {@code off} is negative, or {@code len} is negative, or
|
||||
* {@code off+len} is negative or greater than the length of
|
||||
* the array {@code b}.
|
||||
*/
|
||||
@Override
|
||||
public void update(byte[] b, int off, int len) {
|
||||
if (b == null) {
|
||||
throw new NullPointerException();
|
||||
@ -78,29 +77,16 @@ class Adler32 implements Checksum {
|
||||
adler = updateBytes(adler, b, off, len);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the checksum with the specified array of bytes.
|
||||
*
|
||||
* @param b the byte array to update the checksum with
|
||||
*/
|
||||
public void update(byte[] b) {
|
||||
adler = updateBytes(adler, b, 0, b.length);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Updates the checksum with the bytes from the specified buffer.
|
||||
*
|
||||
* The checksum is updated using
|
||||
* buffer.{@link java.nio.Buffer#remaining() remaining()}
|
||||
* bytes starting at
|
||||
* buffer.{@link java.nio.Buffer#position() position()}
|
||||
* Upon return, the buffer's position will be updated to its
|
||||
* limit; its limit will not have been changed.
|
||||
* The checksum is updated with the remaining bytes in the buffer, starting
|
||||
* at the buffer's position. Upon return, the buffer's position will be
|
||||
* updated to its limit; its limit will not have been changed.
|
||||
*
|
||||
* @param buffer the ByteBuffer to update the checksum with
|
||||
* @since 1.8
|
||||
*/
|
||||
@Override
|
||||
public void update(ByteBuffer buffer) {
|
||||
int pos = buffer.position();
|
||||
int limit = buffer.limit();
|
||||
@ -113,9 +99,12 @@ class Adler32 implements Checksum {
|
||||
} else if (buffer.hasArray()) {
|
||||
adler = updateBytes(adler, buffer.array(), pos + buffer.arrayOffset(), rem);
|
||||
} else {
|
||||
byte[] b = new byte[rem];
|
||||
buffer.get(b);
|
||||
adler = updateBytes(adler, b, 0, b.length);
|
||||
byte[] b = new byte[Math.min(buffer.remaining(), 4096)];
|
||||
while (buffer.hasRemaining()) {
|
||||
int length = Math.min(buffer.remaining(), b.length);
|
||||
buffer.get(b, 0, length);
|
||||
update(b, 0, length);
|
||||
}
|
||||
}
|
||||
buffer.position(limit);
|
||||
}
|
||||
@ -123,6 +112,7 @@ class Adler32 implements Checksum {
|
||||
/**
|
||||
* Resets the checksum to initial value.
|
||||
*/
|
||||
@Override
|
||||
public void reset() {
|
||||
adler = 1;
|
||||
}
|
||||
@ -130,6 +120,7 @@ class Adler32 implements Checksum {
|
||||
/**
|
||||
* Returns the checksum value.
|
||||
*/
|
||||
@Override
|
||||
public long getValue() {
|
||||
return (long)adler & 0xffffffffL;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2014, 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
|
||||
@ -32,9 +32,8 @@ import sun.nio.ch.DirectBuffer;
|
||||
* A class that can be used to compute the CRC-32 of a data stream.
|
||||
*
|
||||
* <p> Passing a {@code null} argument to a method in this class will cause
|
||||
* a {@link NullPointerException} to be thrown.
|
||||
* a {@link NullPointerException} to be thrown.</p>
|
||||
*
|
||||
* @see Checksum
|
||||
* @author David Connelly
|
||||
*/
|
||||
public
|
||||
@ -51,9 +50,8 @@ class CRC32 implements Checksum {
|
||||
/**
|
||||
* Updates the CRC-32 checksum with the specified byte (the low
|
||||
* eight bits of the argument b).
|
||||
*
|
||||
* @param b the byte to update the checksum with
|
||||
*/
|
||||
@Override
|
||||
public void update(int b) {
|
||||
crc = update(crc, b);
|
||||
}
|
||||
@ -61,11 +59,12 @@ class CRC32 implements Checksum {
|
||||
/**
|
||||
* Updates the CRC-32 checksum with the specified array of bytes.
|
||||
*
|
||||
* @throws ArrayIndexOutOfBoundsException
|
||||
* if {@code off} is negative, or {@code len} is negative,
|
||||
* or {@code off+len} is greater than the length of the
|
||||
* array {@code b}
|
||||
* @throws ArrayIndexOutOfBoundsException
|
||||
* if {@code off} is negative, or {@code len} is negative, or
|
||||
* {@code off+len} is negative or greater than the length of
|
||||
* the array {@code b}.
|
||||
*/
|
||||
@Override
|
||||
public void update(byte[] b, int off, int len) {
|
||||
if (b == null) {
|
||||
throw new NullPointerException();
|
||||
@ -77,27 +76,15 @@ class CRC32 implements Checksum {
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the CRC-32 checksum with the specified array of bytes.
|
||||
* Updates the CRC-32 checksum with the bytes from the specified buffer.
|
||||
*
|
||||
* @param b the array of bytes to update the checksum with
|
||||
*/
|
||||
public void update(byte[] b) {
|
||||
crc = updateBytes(crc, b, 0, b.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the checksum with the bytes from the specified buffer.
|
||||
* The checksum is updated with the remaining bytes in the buffer, starting
|
||||
* at the buffer's position. Upon return, the buffer's position will be
|
||||
* updated to its limit; its limit will not have been changed.
|
||||
*
|
||||
* The checksum is updated using
|
||||
* buffer.{@link java.nio.Buffer#remaining() remaining()}
|
||||
* bytes starting at
|
||||
* buffer.{@link java.nio.Buffer#position() position()}
|
||||
* Upon return, the buffer's position will
|
||||
* be updated to its limit; its limit will not have been changed.
|
||||
*
|
||||
* @param buffer the ByteBuffer to update the checksum with
|
||||
* @since 1.8
|
||||
*/
|
||||
@Override
|
||||
public void update(ByteBuffer buffer) {
|
||||
int pos = buffer.position();
|
||||
int limit = buffer.limit();
|
||||
@ -110,9 +97,12 @@ class CRC32 implements Checksum {
|
||||
} else if (buffer.hasArray()) {
|
||||
crc = updateBytes(crc, buffer.array(), pos + buffer.arrayOffset(), rem);
|
||||
} else {
|
||||
byte[] b = new byte[rem];
|
||||
buffer.get(b);
|
||||
crc = updateBytes(crc, b, 0, b.length);
|
||||
byte[] b = new byte[Math.min(buffer.remaining(), 4096)];
|
||||
while (buffer.hasRemaining()) {
|
||||
int length = Math.min(buffer.remaining(), b.length);
|
||||
buffer.get(b, 0, length);
|
||||
update(b, 0, length);
|
||||
}
|
||||
}
|
||||
buffer.position(limit);
|
||||
}
|
||||
@ -120,6 +110,7 @@ class CRC32 implements Checksum {
|
||||
/**
|
||||
* Resets CRC-32 to initial value.
|
||||
*/
|
||||
@Override
|
||||
public void reset() {
|
||||
crc = 0;
|
||||
}
|
||||
@ -127,6 +118,7 @@ class CRC32 implements Checksum {
|
||||
/**
|
||||
* Returns CRC-32 value.
|
||||
*/
|
||||
@Override
|
||||
public long getValue() {
|
||||
return (long)crc & 0xffffffffL;
|
||||
}
|
||||
|
339
jdk/src/java.base/share/classes/java/util/zip/CRC32C.java
Normal file
339
jdk/src/java.base/share/classes/java/util/zip/CRC32C.java
Normal file
@ -0,0 +1,339 @@
|
||||
/*
|
||||
* Copyright (c) 2014, 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 java.util.zip;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import sun.misc.Unsafe;
|
||||
import sun.nio.ch.DirectBuffer;
|
||||
|
||||
/**
|
||||
* A class that can be used to compute the CRC-32C of a data stream.
|
||||
*
|
||||
* <p>
|
||||
* CRC-32C is defined in <a href="http://www.ietf.org/rfc/rfc3720.txt">RFC
|
||||
* 3720</a>: Internet Small Computer Systems Interface (iSCSI).
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Passing a {@code null} argument to a method in this class will cause a
|
||||
* {@link NullPointerException} to be thrown.
|
||||
* </p>
|
||||
*
|
||||
* @since 1.9
|
||||
*/
|
||||
public final class CRC32C implements Checksum {
|
||||
|
||||
/*
|
||||
* This CRC-32C implementation uses the 'slicing-by-8' algorithm described
|
||||
* in the paper "A Systematic Approach to Building High Performance
|
||||
* Software-Based CRC Generators" by Michael E. Kounavis and Frank L. Berry,
|
||||
* Intel Research and Development
|
||||
*/
|
||||
|
||||
/**
|
||||
* CRC-32C Polynomial
|
||||
*/
|
||||
private static final int CRC32C_POLY = 0x1EDC6F41;
|
||||
private static final int REVERSED_CRC32C_POLY = Integer.reverse(CRC32C_POLY);
|
||||
|
||||
private static final Unsafe UNSAFE = Unsafe.getUnsafe();
|
||||
|
||||
// Lookup tables
|
||||
// Lookup table for single byte calculations
|
||||
private static final int[] byteTable;
|
||||
// Lookup tables for bulk operations in 'slicing-by-8' algorithm
|
||||
private static final int[][] byteTables = new int[8][256];
|
||||
private static final int[] byteTable0 = byteTables[0];
|
||||
private static final int[] byteTable1 = byteTables[1];
|
||||
private static final int[] byteTable2 = byteTables[2];
|
||||
private static final int[] byteTable3 = byteTables[3];
|
||||
private static final int[] byteTable4 = byteTables[4];
|
||||
private static final int[] byteTable5 = byteTables[5];
|
||||
private static final int[] byteTable6 = byteTables[6];
|
||||
private static final int[] byteTable7 = byteTables[7];
|
||||
|
||||
static {
|
||||
// Generate lookup tables
|
||||
// High-order polynomial term stored in LSB of r.
|
||||
for (int index = 0; index < byteTables[0].length; index++) {
|
||||
int r = index;
|
||||
for (int i = 0; i < Byte.SIZE; i++) {
|
||||
if ((r & 1) != 0) {
|
||||
r = (r >>> 1) ^ REVERSED_CRC32C_POLY;
|
||||
} else {
|
||||
r >>>= 1;
|
||||
}
|
||||
}
|
||||
byteTables[0][index] = r;
|
||||
}
|
||||
|
||||
for (int index = 0; index < byteTables[0].length; index++) {
|
||||
int r = byteTables[0][index];
|
||||
|
||||
for (int k = 1; k < byteTables.length; k++) {
|
||||
r = byteTables[0][r & 0xFF] ^ (r >>> 8);
|
||||
byteTables[k][index] = r;
|
||||
}
|
||||
}
|
||||
|
||||
if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
|
||||
byteTable = byteTables[0];
|
||||
} else { // ByteOrder.BIG_ENDIAN
|
||||
byteTable = new int[byteTable0.length];
|
||||
System.arraycopy(byteTable0, 0, byteTable, 0, byteTable0.length);
|
||||
for (int[] table : byteTables) {
|
||||
for (int index = 0; index < table.length; index++) {
|
||||
table[index] = Integer.reverseBytes(table[index]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculated CRC-32C value
|
||||
*/
|
||||
private int crc = 0xFFFFFFFF;
|
||||
|
||||
/**
|
||||
* Creates a new CRC32C object.
|
||||
*/
|
||||
public CRC32C() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the CRC-32C checksum with the specified byte (the low eight bits
|
||||
* of the argument b).
|
||||
*/
|
||||
@Override
|
||||
public void update(int b) {
|
||||
crc = (crc >>> 8) ^ byteTable[(crc ^ (b & 0xFF)) & 0xFF];
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the CRC-32C checksum with the specified array of bytes.
|
||||
*
|
||||
* @throws ArrayIndexOutOfBoundsException
|
||||
* if {@code off} is negative, or {@code len} is negative, or
|
||||
* {@code off+len} is negative or greater than the length of
|
||||
* the array {@code b}.
|
||||
*/
|
||||
@Override
|
||||
public void update(byte[] b, int off, int len) {
|
||||
if (b == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
if (off < 0 || len < 0 || off > b.length - len) {
|
||||
throw new ArrayIndexOutOfBoundsException();
|
||||
}
|
||||
crc = updateBytes(crc, b, off, (off + len));
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the CRC-32C checksum with the bytes from the specified buffer.
|
||||
*
|
||||
* The checksum is updated with the remaining bytes in the buffer, starting
|
||||
* at the buffer's position. Upon return, the buffer's position will be
|
||||
* updated to its limit; its limit will not have been changed.
|
||||
*/
|
||||
@Override
|
||||
public void update(ByteBuffer buffer) {
|
||||
int pos = buffer.position();
|
||||
int limit = buffer.limit();
|
||||
assert (pos <= limit);
|
||||
int rem = limit - pos;
|
||||
if (rem <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (buffer instanceof DirectBuffer) {
|
||||
crc = updateDirectByteBuffer(crc, ((DirectBuffer) buffer).address(),
|
||||
pos, limit);
|
||||
} else if (buffer.hasArray()) {
|
||||
crc = updateBytes(crc, buffer.array(), pos + buffer.arrayOffset(),
|
||||
limit + buffer.arrayOffset());
|
||||
} else {
|
||||
byte[] b = new byte[Math.min(buffer.remaining(), 4096)];
|
||||
while (buffer.hasRemaining()) {
|
||||
int length = Math.min(buffer.remaining(), b.length);
|
||||
buffer.get(b, 0, length);
|
||||
update(b, 0, length);
|
||||
}
|
||||
}
|
||||
buffer.position(limit);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets CRC-32C to initial value.
|
||||
*/
|
||||
@Override
|
||||
public void reset() {
|
||||
crc = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns CRC-32C value.
|
||||
*/
|
||||
@Override
|
||||
public long getValue() {
|
||||
return (~crc) & 0xFFFFFFFFL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the CRC-32C checksum with the specified array of bytes.
|
||||
*/
|
||||
private static int updateBytes(int crc, byte[] b, int off, int end) {
|
||||
|
||||
// Do only byte reads for arrays so short they can't be aligned
|
||||
// or if bytes are stored with a larger witdh than one byte.,%
|
||||
if (end - off >= 8 && Unsafe.ARRAY_BYTE_INDEX_SCALE == 1) {
|
||||
|
||||
// align on 8 bytes
|
||||
int alignLength
|
||||
= (8 - ((Unsafe.ARRAY_BYTE_BASE_OFFSET + off) & 0x7)) & 0x7;
|
||||
for (int alignEnd = off + alignLength; off < alignEnd; off++) {
|
||||
crc = (crc >>> 8) ^ byteTable[(crc ^ b[off]) & 0xFF];
|
||||
}
|
||||
|
||||
if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
|
||||
crc = Integer.reverseBytes(crc);
|
||||
}
|
||||
|
||||
// slicing-by-8
|
||||
for (; off < (end - Long.BYTES); off += Long.BYTES) {
|
||||
int firstHalf;
|
||||
int secondHalf;
|
||||
if (Unsafe.ADDRESS_SIZE == 4) {
|
||||
// On 32 bit platforms read two ints instead of a single 64bit long
|
||||
firstHalf = UNSAFE.getInt(b, Unsafe.ARRAY_BYTE_BASE_OFFSET + off);
|
||||
secondHalf = UNSAFE.getInt(b, Unsafe.ARRAY_BYTE_BASE_OFFSET + off
|
||||
+ Integer.BYTES);
|
||||
} else {
|
||||
long value = UNSAFE.getLong(b, Unsafe.ARRAY_BYTE_BASE_OFFSET + off);
|
||||
if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
|
||||
firstHalf = (int) value;
|
||||
secondHalf = (int) (value >>> 32);
|
||||
} else { // ByteOrder.BIG_ENDIAN
|
||||
firstHalf = (int) (value >>> 32);
|
||||
secondHalf = (int) value;
|
||||
}
|
||||
}
|
||||
crc ^= firstHalf;
|
||||
if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
|
||||
crc = byteTable7[crc & 0xFF]
|
||||
^ byteTable6[(crc >>> 8) & 0xFF]
|
||||
^ byteTable5[(crc >>> 16) & 0xFF]
|
||||
^ byteTable4[crc >>> 24]
|
||||
^ byteTable3[secondHalf & 0xFF]
|
||||
^ byteTable2[(secondHalf >>> 8) & 0xFF]
|
||||
^ byteTable1[(secondHalf >>> 16) & 0xFF]
|
||||
^ byteTable0[secondHalf >>> 24];
|
||||
} else { // ByteOrder.BIG_ENDIAN
|
||||
crc = byteTable0[secondHalf & 0xFF]
|
||||
^ byteTable1[(secondHalf >>> 8) & 0xFF]
|
||||
^ byteTable2[(secondHalf >>> 16) & 0xFF]
|
||||
^ byteTable3[secondHalf >>> 24]
|
||||
^ byteTable4[crc & 0xFF]
|
||||
^ byteTable5[(crc >>> 8) & 0xFF]
|
||||
^ byteTable6[(crc >>> 16) & 0xFF]
|
||||
^ byteTable7[crc >>> 24];
|
||||
}
|
||||
}
|
||||
|
||||
if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
|
||||
crc = Integer.reverseBytes(crc);
|
||||
}
|
||||
}
|
||||
|
||||
// Tail
|
||||
for (; off < end; off++) {
|
||||
crc = (crc >>> 8) ^ byteTable[(crc ^ b[off]) & 0xFF];
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the CRC-32C checksum reading from the specified address.
|
||||
*/
|
||||
private static int updateDirectByteBuffer(int crc, long address,
|
||||
int off, int end) {
|
||||
|
||||
// Do only byte reads for arrays so short they can't be aligned
|
||||
if (end - off >= 8) {
|
||||
|
||||
// align on 8 bytes
|
||||
int alignLength = (8 - (int) ((address + off) & 0x7)) & 0x7;
|
||||
for (int alignEnd = off + alignLength; off < alignEnd; off++) {
|
||||
crc = (crc >>> 8)
|
||||
^ byteTable[(crc ^ UNSAFE.getByte(address + off)) & 0xFF];
|
||||
}
|
||||
|
||||
if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
|
||||
crc = Integer.reverseBytes(crc);
|
||||
}
|
||||
|
||||
// slicing-by-8
|
||||
for (; off <= (end - Long.BYTES); off += Long.BYTES) {
|
||||
// Always reading two ints as reading a long followed by
|
||||
// shifting and casting was slower.
|
||||
int firstHalf = UNSAFE.getInt(address + off);
|
||||
int secondHalf = UNSAFE.getInt(address + off + Integer.BYTES);
|
||||
crc ^= firstHalf;
|
||||
if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
|
||||
crc = byteTable7[crc & 0xFF]
|
||||
^ byteTable6[(crc >>> 8) & 0xFF]
|
||||
^ byteTable5[(crc >>> 16) & 0xFF]
|
||||
^ byteTable4[crc >>> 24]
|
||||
^ byteTable3[secondHalf & 0xFF]
|
||||
^ byteTable2[(secondHalf >>> 8) & 0xFF]
|
||||
^ byteTable1[(secondHalf >>> 16) & 0xFF]
|
||||
^ byteTable0[secondHalf >>> 24];
|
||||
} else { // ByteOrder.BIG_ENDIAN
|
||||
crc = byteTable0[secondHalf & 0xFF]
|
||||
^ byteTable1[(secondHalf >>> 8) & 0xFF]
|
||||
^ byteTable2[(secondHalf >>> 16) & 0xFF]
|
||||
^ byteTable3[secondHalf >>> 24]
|
||||
^ byteTable4[crc & 0xFF]
|
||||
^ byteTable5[(crc >>> 8) & 0xFF]
|
||||
^ byteTable6[(crc >>> 16) & 0xFF]
|
||||
^ byteTable7[crc >>> 24];
|
||||
}
|
||||
}
|
||||
|
||||
if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
|
||||
crc = Integer.reverseBytes(crc);
|
||||
}
|
||||
}
|
||||
|
||||
// Tail
|
||||
for (; off < end; off++) {
|
||||
crc = (crc >>> 8)
|
||||
^ byteTable[(crc ^ UNSAFE.getByte(address + off)) & 0xFF];
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,16 +22,17 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package java.util.zip;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* An interface representing a data checksum.
|
||||
*
|
||||
* @author David Connelly
|
||||
* @author David Connelly
|
||||
*/
|
||||
public
|
||||
interface Checksum {
|
||||
public interface Checksum {
|
||||
|
||||
/**
|
||||
* Updates the current checksum with the specified byte.
|
||||
*
|
||||
@ -41,14 +42,89 @@ interface Checksum {
|
||||
|
||||
/**
|
||||
* Updates the current checksum with the specified array of bytes.
|
||||
*
|
||||
* @implSpec This default implementation is equal to calling
|
||||
* {@code update(b, 0, b.length)}.
|
||||
*
|
||||
* @param b the array of bytes to update the checksum with
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* if {@code b} is {@code null}
|
||||
*
|
||||
* @since 1.9
|
||||
*/
|
||||
default public void update(byte[] b) {
|
||||
update(b, 0, b.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the current checksum with the specified array of bytes.
|
||||
*
|
||||
* @param b the byte array to update the checksum with
|
||||
* @param off the start offset of the data
|
||||
* @param len the number of bytes to use for the update
|
||||
*/
|
||||
public void update(byte[] b, int off, int len);
|
||||
|
||||
/**
|
||||
* Updates the current checksum with the bytes from the specified buffer.
|
||||
*
|
||||
* The checksum is updated with the remaining bytes in the buffer, starting
|
||||
* at the buffer's position. Upon return, the buffer's position will be
|
||||
* updated to its limit; its limit will not have been changed.
|
||||
*
|
||||
* @apiNote For best performance with DirectByteBuffer and other ByteBuffer
|
||||
* implementations without a backing array implementers of this interface
|
||||
* should override this method.
|
||||
*
|
||||
* @implSpec The default implementation has the following behavior.<br>
|
||||
* For ByteBuffers backed by an accessible byte array.
|
||||
* <pre>{@code
|
||||
* update(buffer.array(),
|
||||
* buffer.position() + buffer.arrayOffset(),
|
||||
* buffer.remaining());
|
||||
* }</pre>
|
||||
* For ByteBuffers not backed by an accessible byte array.
|
||||
* <pre>{@code
|
||||
* byte[] b = new byte[Math.min(buffer.remaining(), 4096)];
|
||||
* while (buffer.hasRemaining()) {
|
||||
* int length = Math.min(buffer.remaining(), b.length);
|
||||
* buffer.get(b, 0, length);
|
||||
* update(b, 0, length);
|
||||
* }
|
||||
* }</pre>
|
||||
*
|
||||
* @param buffer the ByteBuffer to update the checksum with
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* if {@code buffer} is {@code null}
|
||||
*
|
||||
* @since 1.9
|
||||
*/
|
||||
default public void update(ByteBuffer buffer) {
|
||||
int pos = buffer.position();
|
||||
int limit = buffer.limit();
|
||||
assert (pos <= limit);
|
||||
int rem = limit - pos;
|
||||
if (rem <= 0) {
|
||||
return;
|
||||
}
|
||||
if (buffer.hasArray()) {
|
||||
update(buffer.array(), pos + buffer.arrayOffset(), rem);
|
||||
} else {
|
||||
byte[] b = new byte[Math.min(buffer.remaining(), 4096)];
|
||||
while (buffer.hasRemaining()) {
|
||||
int length = Math.min(buffer.remaining(), b.length);
|
||||
buffer.get(b, 0, length);
|
||||
update(b, 0, length);
|
||||
}
|
||||
}
|
||||
buffer.position(limit);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current checksum value.
|
||||
*
|
||||
* @return the current checksum value
|
||||
*/
|
||||
public long getValue();
|
||||
|
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2014, 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Provides classes for reading and writing the standard ZIP and GZIP file
|
||||
* formats. Also includes classes for compressing and decompressing data using
|
||||
* the DEFLATE compression algorithm, which is used by the ZIP and GZIP file
|
||||
* formats. Additionally, there are utility classes for computing the CRC-32,
|
||||
* CRC-32C and Adler-32 checksums of arbitrary input streams.
|
||||
*
|
||||
* <h2>Package Specification</h2>
|
||||
*
|
||||
* <ul>
|
||||
* <li><a href="http://www.info-zip.org/doc/appnote-19970311-iz.zip">
|
||||
* Info-ZIP Application Note 970311</a> - a detailed description of
|
||||
* the Info-ZIP format upon which the {@code java.util.zip} classes
|
||||
* are based.
|
||||
* <li><a name="zip64">An implementation may optionally support the
|
||||
* ZIP64(tm) format extensions defined by the</a>
|
||||
* <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">
|
||||
* PKWARE ZIP File Format Specification</a>. The ZIP64(tm) format
|
||||
* extensions are used to overcome the size limitations of the
|
||||
* original ZIP format.
|
||||
* <li><a name="lang_encoding">APPENDIX D of</a>
|
||||
* <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">
|
||||
* PKWARE ZIP File Format Specification</a> - Language Encoding Flag
|
||||
* (EFS) to encode ZIP entry filename and comment fields using UTF-8.
|
||||
* <li><a href="http://www.ietf.org/rfc/rfc1950.txt">
|
||||
* ZLIB Compressed Data Format Specification version 3.3</a>
|
||||
*
|
||||
* <a href="http://www.ietf.org/rfc/rfc1950.txt.pdf">(pdf)</a>
|
||||
* (RFC 1950)
|
||||
* <li><a href="http://www.ietf.org/rfc/rfc1951.txt">
|
||||
* DEFLATE Compressed Data Format Specification version 1.3</a>
|
||||
*
|
||||
* <a href="http://www.ietf.org/rfc/rfc1951.txt.pdf">(pdf)</a>
|
||||
* (RFC 1951)
|
||||
* <li><a href="http://www.ietf.org/rfc/rfc1952.txt">
|
||||
* GZIP file format specification version 4.3</a>
|
||||
*
|
||||
* <a href="http://www.ietf.org/rfc/rfc1952.txt.pdf">(pdf)</a>
|
||||
* (RFC 1952)
|
||||
* <li>CRC-32 checksum is described in RFC 1952 (above)
|
||||
* <li>CRC-32C checksum is described in
|
||||
* <a href="http://www.ietf.org/rfc/rfc3720.txt">Internet Small
|
||||
* Computer Systems Interface (iSCSI)</a>
|
||||
*
|
||||
* <a href="http://www.ietf.org/rfc/rfc3720.txt.pdf">(pdf)</a>
|
||||
* (RFC 3720)
|
||||
* <li>Adler-32 checksum is described in RFC 1950 (above)
|
||||
* </ul>
|
||||
*
|
||||
* @since 1.1
|
||||
*/
|
||||
package java.util.zip;
|
@ -1,88 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<html>
|
||||
<head>
|
||||
<!--
|
||||
Copyright (c) 1998, 2012, 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.
|
||||
-->
|
||||
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
Provides classes for reading and writing the standard ZIP and GZIP
|
||||
file formats. Also includes classes for compressing and decompressing
|
||||
data using the DEFLATE compression algorithm, which is used by the
|
||||
ZIP and GZIP file formats. Additionally, there are utility classes
|
||||
for computing the CRC-32 and Adler-32 checksums of arbitrary
|
||||
input streams.
|
||||
|
||||
|
||||
<h2>Package Specification</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://www.info-zip.org/doc/appnote-19970311-iz.zip">
|
||||
Info-ZIP Application Note 970311
|
||||
</a> - a detailed description of the Info-ZIP format upon which
|
||||
the <code>java.util.zip</code> classes are based.
|
||||
<li><a name="zip64">An implementation may optionally support the ZIP64(tm) format extensions
|
||||
defined by the </a>
|
||||
<a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">
|
||||
PKWARE ZIP File Format Specification</a>. The ZIP64(tm) format extensions
|
||||
are used to overcome the size limitations of the original ZIP format.
|
||||
<li><a name="lang_encoding">APPENDIX D of </a><a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">
|
||||
PKWARE ZIP File Format Specification</a> - Language Encoding Flag (EFS) to
|
||||
encode ZIP entry filename and comment fields using UTF-8.
|
||||
<li><a href="http://www.ietf.org/rfc/rfc1950.txt">
|
||||
ZLIB Compressed Data Format Specification version 3.3</a>
|
||||
|
||||
<a href="http://www.ietf.org/rfc/rfc1950.txt.pdf">(pdf)</a>
|
||||
(RFC 1950)
|
||||
<li><a href="http://www.ietf.org/rfc/rfc1951.txt">
|
||||
DEFLATE Compressed Data Format Specification version 1.3</a>
|
||||
|
||||
<a href="http://www.ietf.org/rfc/rfc1951.txt.pdf">(pdf)</a>
|
||||
(RFC 1951)
|
||||
<li><a href="http://www.ietf.org/rfc/rfc1952.txt">
|
||||
GZIP file format specification version 4.3</a>
|
||||
|
||||
<a href="http://www.ietf.org/rfc/rfc1952.txt.pdf">(pdf)</a>
|
||||
(RFC 1952)
|
||||
<li>CRC-32 checksum is described in RFC 1952 (above)
|
||||
<li>Adler-32 checksum is described in RFC 1950 (above)
|
||||
</ul>
|
||||
|
||||
|
||||
<!--
|
||||
<h2>Related Documentation</h2>
|
||||
|
||||
For overviews, tutorials, examples, guides, and tool documentation, please see:
|
||||
<ul>
|
||||
<li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
|
||||
</ul>
|
||||
-->
|
||||
|
||||
@since 1.1
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2014, 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
|
||||
@ -88,6 +88,8 @@ public class CipherInputStream extends FilterInputStream {
|
||||
private int ofinish = 0;
|
||||
// stream status
|
||||
private boolean closed = false;
|
||||
// The stream has been read from. False if the stream has never been read.
|
||||
private boolean read = false;
|
||||
|
||||
/**
|
||||
* private convenience function.
|
||||
@ -103,6 +105,7 @@ public class CipherInputStream extends FilterInputStream {
|
||||
private int getMoreData() throws IOException {
|
||||
if (done) return -1;
|
||||
int readin = input.read(ibuffer);
|
||||
read = true;
|
||||
if (readin == -1) {
|
||||
done = true;
|
||||
try {
|
||||
@ -306,7 +309,11 @@ public class CipherInputStream extends FilterInputStream {
|
||||
}
|
||||
}
|
||||
catch (BadPaddingException | IllegalBlockSizeException ex) {
|
||||
throw new IOException(ex);
|
||||
/* If no data has been read from the stream to be en/decrypted,
|
||||
we supress any exceptions, and close quietly. */
|
||||
if (read) {
|
||||
throw new IOException(ex);
|
||||
}
|
||||
}
|
||||
ostart = 0;
|
||||
ofinish = 0;
|
||||
|
@ -657,9 +657,10 @@ public class HttpClient extends NetworkClient {
|
||||
cachedHttpClient = false;
|
||||
if (!failedOnce && requests != null) {
|
||||
failedOnce = true;
|
||||
if (getRequestMethod().equals("CONNECT") ||
|
||||
(httpuc.getRequestMethod().equals("POST") &&
|
||||
(!retryPostProp || streaming))) {
|
||||
if (getRequestMethod().equals("CONNECT")
|
||||
|| streaming
|
||||
|| (httpuc.getRequestMethod().equals("POST")
|
||||
&& !retryPostProp)) {
|
||||
// do not retry the request
|
||||
} else {
|
||||
// try once more
|
||||
@ -769,9 +770,10 @@ public class HttpClient extends NetworkClient {
|
||||
} else if (nread != 8) {
|
||||
if (!failedOnce && requests != null) {
|
||||
failedOnce = true;
|
||||
if (getRequestMethod().equals("CONNECT") ||
|
||||
(httpuc.getRequestMethod().equals("POST") &&
|
||||
(!retryPostProp || streaming))) {
|
||||
if (getRequestMethod().equals("CONNECT")
|
||||
|| streaming
|
||||
|| (httpuc.getRequestMethod().equals("POST")
|
||||
&& !retryPostProp)) {
|
||||
// do not retry the request
|
||||
} else {
|
||||
closeServer();
|
||||
|
@ -752,7 +752,7 @@ class DatagramChannelImpl
|
||||
}
|
||||
do {
|
||||
tmpBuf.clear();
|
||||
} while (read(tmpBuf) > 0);
|
||||
} while (receive(tmpBuf) != null);
|
||||
} finally {
|
||||
if (blocking) {
|
||||
configureBlocking(true);
|
||||
|
@ -42,8 +42,11 @@ public class ClassRepository extends GenericDeclRepository<ClassSignature> {
|
||||
|
||||
public static final ClassRepository NONE = ClassRepository.make("Ljava/lang/Object;", null);
|
||||
|
||||
private Type superclass; // caches the generic superclass info
|
||||
private Type[] superInterfaces; // caches the generic superinterface info
|
||||
/** The generic superclass info. Lazily initialized. */
|
||||
private volatile Type superclass;
|
||||
|
||||
/** The generic superinterface info. Lazily initialized. */
|
||||
private volatile Type[] superInterfaces;
|
||||
|
||||
// private, to enforce use of static factory
|
||||
private ClassRepository(String rawSig, GenericsFactory f) {
|
||||
@ -79,31 +82,34 @@ public class ClassRepository extends GenericDeclRepository<ClassSignature> {
|
||||
* with which the repository was created.
|
||||
*/
|
||||
|
||||
public Type getSuperclass(){
|
||||
public Type getSuperclass() {
|
||||
Type superclass = this.superclass;
|
||||
if (superclass == null) { // lazily initialize superclass
|
||||
Reifier r = getReifier(); // obtain visitor
|
||||
// Extract superclass subtree from AST and reify
|
||||
getTree().getSuperclass().accept(r);
|
||||
// extract result from visitor and cache it
|
||||
superclass = r.getResult();
|
||||
}
|
||||
this.superclass = superclass;
|
||||
}
|
||||
return superclass; // return cached result
|
||||
}
|
||||
|
||||
public Type[] getSuperInterfaces(){
|
||||
public Type[] getSuperInterfaces() {
|
||||
Type[] superInterfaces = this.superInterfaces;
|
||||
if (superInterfaces == null) { // lazily initialize super interfaces
|
||||
// first, extract super interface subtree(s) from AST
|
||||
TypeTree[] ts = getTree().getSuperInterfaces();
|
||||
// create array to store reified subtree(s)
|
||||
Type[] sis = new Type[ts.length];
|
||||
superInterfaces = new Type[ts.length];
|
||||
// reify all subtrees
|
||||
for (int i = 0; i < ts.length; i++) {
|
||||
Reifier r = getReifier(); // obtain visitor
|
||||
ts[i].accept(r);// reify subtree
|
||||
// extract result from visitor and store it
|
||||
sis[i] = r.getResult();
|
||||
superInterfaces[i] = r.getResult();
|
||||
}
|
||||
superInterfaces = sis; // cache overall result
|
||||
this.superInterfaces = superInterfaces;
|
||||
}
|
||||
return superInterfaces.clone(); // return cached result
|
||||
}
|
||||
|
@ -42,7 +42,8 @@ import sun.reflect.generics.visitor.Reifier;
|
||||
public abstract class GenericDeclRepository<S extends Signature>
|
||||
extends AbstractRepository<S> {
|
||||
|
||||
private TypeVariable<?>[] typeParams; // caches the formal type parameters
|
||||
/** The formal type parameters. Lazily initialized. */
|
||||
private volatile TypeVariable<?>[] typeParams;
|
||||
|
||||
protected GenericDeclRepository(String rawSig, GenericsFactory f) {
|
||||
super(rawSig, f);
|
||||
@ -55,8 +56,7 @@ public abstract class GenericDeclRepository<S extends Signature>
|
||||
* If the corresponding field is non-null, it is returned.
|
||||
* If not, it is created lazily. This is done by selecting the appropriate
|
||||
* part of the tree and transforming it into a reflective object
|
||||
* using a visitor.
|
||||
* a visitor, which is created by feeding it the factory
|
||||
* using a visitor, which is created by feeding it the factory
|
||||
* with which the repository was created.
|
||||
*/
|
||||
|
||||
@ -64,20 +64,21 @@ public abstract class GenericDeclRepository<S extends Signature>
|
||||
* Return the formal type parameters of this generic declaration.
|
||||
* @return the formal type parameters of this generic declaration
|
||||
*/
|
||||
public TypeVariable<?>[] getTypeParameters(){
|
||||
public TypeVariable<?>[] getTypeParameters() {
|
||||
TypeVariable<?>[] typeParams = this.typeParams;
|
||||
if (typeParams == null) { // lazily initialize type parameters
|
||||
// first, extract type parameter subtree(s) from AST
|
||||
FormalTypeParameter[] ftps = getTree().getFormalTypeParameters();
|
||||
// create array to store reified subtree(s)
|
||||
TypeVariable<?>[] tps = new TypeVariable<?>[ftps.length];
|
||||
typeParams = new TypeVariable<?>[ftps.length];
|
||||
// reify all subtrees
|
||||
for (int i = 0; i < ftps.length; i++) {
|
||||
Reifier r = getReifier(); // obtain visitor
|
||||
ftps[i].accept(r); // reify subtree
|
||||
// extract result from visitor and store it
|
||||
tps[i] = (TypeVariable<?>) r.getResult();
|
||||
typeParams[i] = (TypeVariable<?>) r.getResult();
|
||||
}
|
||||
typeParams = tps; // cache overall result
|
||||
this.typeParams = typeParams; // cache overall result
|
||||
}
|
||||
return typeParams.clone(); // return cached result
|
||||
}
|
||||
|
@ -42,7 +42,9 @@ public abstract class AbstractScope<D extends GenericDeclaration>
|
||||
implements Scope {
|
||||
|
||||
private final D recvr; // the declaration whose scope this instance represents
|
||||
private Scope enclosingScope; // the enclosing scope of this scope
|
||||
|
||||
/** The enclosing scope of this scope. Lazily initialized. */
|
||||
private volatile Scope enclosingScope;
|
||||
|
||||
/**
|
||||
* Constructor. Takes a reflective object whose scope the newly
|
||||
@ -71,7 +73,11 @@ public abstract class AbstractScope<D extends GenericDeclaration>
|
||||
* @return the enclosing scope
|
||||
*/
|
||||
protected Scope getEnclosingScope(){
|
||||
if (enclosingScope == null) {enclosingScope = computeEnclosingScope();}
|
||||
Scope enclosingScope = this.enclosingScope;
|
||||
if (enclosingScope == null) {
|
||||
enclosingScope = computeEnclosingScope();
|
||||
this.enclosingScope = enclosingScope;
|
||||
}
|
||||
return enclosingScope;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2014, 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
|
||||
@ -968,7 +968,7 @@ final class CipherSuite implements Comparable<CipherSuite> {
|
||||
* 1. Prefer Suite B compliant cipher suites, see RFC6460 (To be
|
||||
* changed later, see below).
|
||||
* 2. Prefer the stronger bulk cipher, in the order of AES_256(GCM),
|
||||
* AES_128(GCM), AES_256, AES_128, RC-4, 3DES-EDE.
|
||||
* AES_128(GCM), AES_256, AES_128, 3DES-EDE, RC-4.
|
||||
* 3. Prefer the stronger MAC algorithm, in the order of SHA384,
|
||||
* SHA256, SHA, MD5.
|
||||
* 4. Prefer the better performance of key exchange and digital
|
||||
@ -1087,18 +1087,6 @@ final class CipherSuite implements Comparable<CipherSuite> {
|
||||
add("TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
|
||||
0x0032, --p, K_DHE_DSS, B_AES_128, T);
|
||||
|
||||
// RC-4
|
||||
add("TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
|
||||
0xC007, --p, K_ECDHE_ECDSA, B_RC4_128, N);
|
||||
add("TLS_ECDHE_RSA_WITH_RC4_128_SHA",
|
||||
0xC011, --p, K_ECDHE_RSA, B_RC4_128, N);
|
||||
add("SSL_RSA_WITH_RC4_128_SHA",
|
||||
0x0005, --p, K_RSA, B_RC4_128, N);
|
||||
add("TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
|
||||
0xC002, --p, K_ECDH_ECDSA, B_RC4_128, N);
|
||||
add("TLS_ECDH_RSA_WITH_RC4_128_SHA",
|
||||
0xC00C, --p, K_ECDH_RSA, B_RC4_128, N);
|
||||
|
||||
// 3DES_EDE
|
||||
add("TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
|
||||
0xC008, --p, K_ECDHE_ECDSA, B_3DES, T);
|
||||
@ -1115,6 +1103,17 @@ final class CipherSuite implements Comparable<CipherSuite> {
|
||||
add("SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
|
||||
0x0013, --p, K_DHE_DSS, B_3DES, N);
|
||||
|
||||
// RC-4
|
||||
add("TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
|
||||
0xC007, --p, K_ECDHE_ECDSA, B_RC4_128, N);
|
||||
add("TLS_ECDHE_RSA_WITH_RC4_128_SHA",
|
||||
0xC011, --p, K_ECDHE_RSA, B_RC4_128, N);
|
||||
add("SSL_RSA_WITH_RC4_128_SHA",
|
||||
0x0005, --p, K_RSA, B_RC4_128, N);
|
||||
add("TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
|
||||
0xC002, --p, K_ECDH_ECDSA, B_RC4_128, N);
|
||||
add("TLS_ECDH_RSA_WITH_RC4_128_SHA",
|
||||
0xC00C, --p, K_ECDH_RSA, B_RC4_128, N);
|
||||
add("SSL_RSA_WITH_RC4_128_MD5",
|
||||
0x0004, --p, K_RSA, B_RC4_128, N);
|
||||
|
||||
@ -1134,7 +1133,7 @@ final class CipherSuite implements Comparable<CipherSuite> {
|
||||
* 2. If a cipher suite has been obsoleted, we put it at the end of
|
||||
* the list.
|
||||
* 3. Prefer the stronger bulk cipher, in the order of AES_256,
|
||||
* AES_128, RC-4, 3DES-EDE, DES, RC4_40, DES40, NULL.
|
||||
* AES_128, 3DES-EDE, RC-4, DES, DES40, RC4_40, NULL.
|
||||
* 4. Prefer the stronger MAC algorithm, in the order of SHA384,
|
||||
* SHA256, SHA, MD5.
|
||||
* 5. Prefer the better performance of key exchange and digital
|
||||
@ -1162,15 +1161,40 @@ final class CipherSuite implements Comparable<CipherSuite> {
|
||||
add("TLS_DH_anon_WITH_AES_128_CBC_SHA",
|
||||
0x0034, --p, K_DH_ANON, B_AES_128, N);
|
||||
|
||||
add("TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
|
||||
0xC017, --p, K_ECDH_ANON, B_3DES, N);
|
||||
add("SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
|
||||
0x001b, --p, K_DH_ANON, B_3DES, N);
|
||||
|
||||
add("TLS_ECDH_anon_WITH_RC4_128_SHA",
|
||||
0xC016, --p, K_ECDH_ANON, B_RC4_128, N);
|
||||
add("SSL_DH_anon_WITH_RC4_128_MD5",
|
||||
0x0018, --p, K_DH_ANON, B_RC4_128, N);
|
||||
|
||||
add("TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
|
||||
0xC017, --p, K_ECDH_ANON, B_3DES, N);
|
||||
add("SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
|
||||
0x001b, --p, K_DH_ANON, B_3DES, N);
|
||||
// weak cipher suites obsoleted in TLS 1.2
|
||||
add("SSL_RSA_WITH_DES_CBC_SHA",
|
||||
0x0009, --p, K_RSA, B_DES, N, tls12);
|
||||
add("SSL_DHE_RSA_WITH_DES_CBC_SHA",
|
||||
0x0015, --p, K_DHE_RSA, B_DES, N, tls12);
|
||||
add("SSL_DHE_DSS_WITH_DES_CBC_SHA",
|
||||
0x0012, --p, K_DHE_DSS, B_DES, N, tls12);
|
||||
add("SSL_DH_anon_WITH_DES_CBC_SHA",
|
||||
0x001a, --p, K_DH_ANON, B_DES, N, tls12);
|
||||
|
||||
// weak cipher suites obsoleted in TLS 1.1
|
||||
add("SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
||||
0x0008, --p, K_RSA_EXPORT, B_DES_40, N, tls11);
|
||||
add("SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
||||
0x0014, --p, K_DHE_RSA, B_DES_40, N, tls11);
|
||||
add("SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
|
||||
0x0011, --p, K_DHE_DSS, B_DES_40, N, tls11);
|
||||
add("SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
|
||||
0x0019, --p, K_DH_ANON, B_DES_40, N, tls11);
|
||||
|
||||
add("SSL_RSA_EXPORT_WITH_RC4_40_MD5",
|
||||
0x0003, --p, K_RSA_EXPORT, B_RC4_40, N, tls11);
|
||||
add("SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
|
||||
0x0017, --p, K_DH_ANON, B_RC4_40, N, tls11);
|
||||
|
||||
add("TLS_RSA_WITH_NULL_SHA256",
|
||||
0x003b, --p, K_RSA, B_NULL, N, max, tls12, P_SHA256);
|
||||
@ -1189,52 +1213,27 @@ final class CipherSuite implements Comparable<CipherSuite> {
|
||||
add("SSL_RSA_WITH_NULL_MD5",
|
||||
0x0001, --p, K_RSA, B_NULL, N);
|
||||
|
||||
// weak cipher suites obsoleted in TLS 1.2
|
||||
add("SSL_RSA_WITH_DES_CBC_SHA",
|
||||
0x0009, --p, K_RSA, B_DES, N, tls12);
|
||||
add("SSL_DHE_RSA_WITH_DES_CBC_SHA",
|
||||
0x0015, --p, K_DHE_RSA, B_DES, N, tls12);
|
||||
add("SSL_DHE_DSS_WITH_DES_CBC_SHA",
|
||||
0x0012, --p, K_DHE_DSS, B_DES, N, tls12);
|
||||
add("SSL_DH_anon_WITH_DES_CBC_SHA",
|
||||
0x001a, --p, K_DH_ANON, B_DES, N, tls12);
|
||||
|
||||
// weak cipher suites obsoleted in TLS 1.1
|
||||
add("SSL_RSA_EXPORT_WITH_RC4_40_MD5",
|
||||
0x0003, --p, K_RSA_EXPORT, B_RC4_40, N, tls11);
|
||||
add("SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
|
||||
0x0017, --p, K_DH_ANON, B_RC4_40, N, tls11);
|
||||
|
||||
add("SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
||||
0x0008, --p, K_RSA_EXPORT, B_DES_40, N, tls11);
|
||||
add("SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
||||
0x0014, --p, K_DHE_RSA, B_DES_40, N, tls11);
|
||||
add("SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
|
||||
0x0011, --p, K_DHE_DSS, B_DES_40, N, tls11);
|
||||
add("SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
|
||||
0x0019, --p, K_DH_ANON, B_DES_40, N, tls11);
|
||||
|
||||
// Supported Kerberos ciphersuites from RFC2712
|
||||
add("TLS_KRB5_WITH_RC4_128_SHA",
|
||||
0x0020, --p, K_KRB5, B_RC4_128, N);
|
||||
add("TLS_KRB5_WITH_RC4_128_MD5",
|
||||
0x0024, --p, K_KRB5, B_RC4_128, N);
|
||||
add("TLS_KRB5_WITH_3DES_EDE_CBC_SHA",
|
||||
0x001f, --p, K_KRB5, B_3DES, N);
|
||||
add("TLS_KRB5_WITH_3DES_EDE_CBC_MD5",
|
||||
0x0023, --p, K_KRB5, B_3DES, N);
|
||||
add("TLS_KRB5_WITH_RC4_128_SHA",
|
||||
0x0020, --p, K_KRB5, B_RC4_128, N);
|
||||
add("TLS_KRB5_WITH_RC4_128_MD5",
|
||||
0x0024, --p, K_KRB5, B_RC4_128, N);
|
||||
add("TLS_KRB5_WITH_DES_CBC_SHA",
|
||||
0x001e, --p, K_KRB5, B_DES, N, tls12);
|
||||
add("TLS_KRB5_WITH_DES_CBC_MD5",
|
||||
0x0022, --p, K_KRB5, B_DES, N, tls12);
|
||||
add("TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
|
||||
0x0028, --p, K_KRB5_EXPORT, B_RC4_40, N, tls11);
|
||||
add("TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
|
||||
0x002b, --p, K_KRB5_EXPORT, B_RC4_40, N, tls11);
|
||||
add("TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
|
||||
0x0026, --p, K_KRB5_EXPORT, B_DES_40, N, tls11);
|
||||
add("TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
|
||||
0x0029, --p, K_KRB5_EXPORT, B_DES_40, N, tls11);
|
||||
add("TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
|
||||
0x0028, --p, K_KRB5_EXPORT, B_RC4_40, N, tls11);
|
||||
add("TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
|
||||
0x002b, --p, K_KRB5_EXPORT, B_RC4_40, N, tls11);
|
||||
|
||||
/*
|
||||
* Other values from the TLS Cipher Suite Registry, as of August 2010.
|
||||
|
@ -406,14 +406,17 @@ final class UNIXProcess extends Process {
|
||||
if (hasExited) return true;
|
||||
if (timeout <= 0) return false;
|
||||
|
||||
long timeoutAsNanos = unit.toNanos(timeout);
|
||||
long startTime = System.nanoTime();
|
||||
long rem = timeoutAsNanos;
|
||||
long remainingNanos = unit.toNanos(timeout);
|
||||
long deadline = System.nanoTime() + remainingNanos;
|
||||
|
||||
while (!hasExited && (rem > 0)) {
|
||||
wait(Math.max(TimeUnit.NANOSECONDS.toMillis(rem), 1));
|
||||
rem = timeoutAsNanos - (System.nanoTime() - startTime);
|
||||
}
|
||||
do {
|
||||
// Round up to next millisecond
|
||||
wait(TimeUnit.NANOSECONDS.toMillis(remainingNanos + 999_999L));
|
||||
if (hasExited) {
|
||||
return true;
|
||||
}
|
||||
remainingNanos = deadline - System.nanoTime();
|
||||
} while (remainingNanos > 0);
|
||||
return hasExited;
|
||||
}
|
||||
|
||||
|
@ -461,11 +461,21 @@ final class ProcessImpl extends Process {
|
||||
if (getExitCodeProcess(handle) != STILL_ACTIVE) return true;
|
||||
if (timeout <= 0) return false;
|
||||
|
||||
long msTimeout = unit.toMillis(timeout);
|
||||
long remainingNanos = unit.toNanos(timeout);
|
||||
long deadline = System.nanoTime() + remainingNanos ;
|
||||
|
||||
do {
|
||||
// Round up to next millisecond
|
||||
long msTimeout = TimeUnit.NANOSECONDS.toMillis(remainingNanos + 999_999L);
|
||||
waitForTimeoutInterruptibly(handle, msTimeout);
|
||||
if (Thread.interrupted())
|
||||
throw new InterruptedException();
|
||||
if (getExitCodeProcess(handle) != STILL_ACTIVE) {
|
||||
return true;
|
||||
}
|
||||
remainingNanos = deadline - System.nanoTime();
|
||||
} while (remainingNanos > 0);
|
||||
|
||||
waitForTimeoutInterruptibly(handle, msTimeout);
|
||||
if (Thread.interrupted())
|
||||
throw new InterruptedException();
|
||||
return (getExitCodeProcess(handle) != STILL_ACTIVE);
|
||||
}
|
||||
|
||||
|
@ -32,9 +32,11 @@
|
||||
|
||||
#include "java_net_AbstractPlainDatagramSocketImpl.h"
|
||||
|
||||
static jfieldID IO_fd_fdID;
|
||||
static jfieldID IO_fd_fdID = NULL;
|
||||
static jfieldID apdsi_fdID = NULL;
|
||||
|
||||
static jfieldID apdsi_fdID;
|
||||
static jfieldID apdsi_fd1ID = NULL;
|
||||
static jclass two_stacks_clazz = NULL;
|
||||
|
||||
|
||||
/*
|
||||
@ -48,10 +50,21 @@ Java_java_net_AbstractPlainDatagramSocketImpl_init(JNIEnv *env, jclass cls) {
|
||||
apdsi_fdID = (*env)->GetFieldID(env, cls, "fd",
|
||||
"Ljava/io/FileDescriptor;");
|
||||
CHECK_NULL(apdsi_fdID);
|
||||
|
||||
IO_fd_fdID = NET_GetFileDescriptorID(env);
|
||||
CHECK_NULL(IO_fd_fdID);
|
||||
|
||||
two_stacks_clazz = (*env)->FindClass(env, "java/net/TwoStacksPlainDatagramSocketImpl");
|
||||
CHECK_NULL(two_stacks_clazz);
|
||||
|
||||
/* Handle both TwoStacks and DualStack here */
|
||||
|
||||
if (JNU_Equals(env, cls, two_stacks_clazz)) {
|
||||
/* fd1 present only in TwoStack.. */
|
||||
apdsi_fd1ID = (*env)->GetFieldID(env, cls, "fd1",
|
||||
"Ljava/io/FileDescriptor;");
|
||||
CHECK_NULL(apdsi_fd1ID);
|
||||
}
|
||||
|
||||
JNU_CHECK_EXCEPTION(env);
|
||||
}
|
||||
|
||||
@ -63,20 +76,38 @@ Java_java_net_AbstractPlainDatagramSocketImpl_init(JNIEnv *env, jclass cls) {
|
||||
JNIEXPORT jint JNICALL Java_java_net_AbstractPlainDatagramSocketImpl_dataAvailable
|
||||
(JNIEnv *env, jobject this) {
|
||||
SOCKET fd;
|
||||
int retval;
|
||||
|
||||
SOCKET fd1;
|
||||
int rv = -1, rv1 = -1;
|
||||
jobject fdObj = (*env)->GetObjectField(env, this, apdsi_fdID);
|
||||
|
||||
if (IS_NULL(fdObj)) {
|
||||
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
|
||||
"Socket closed");
|
||||
return -1;
|
||||
if (!IS_NULL(fdObj)) {
|
||||
int retval = 0;
|
||||
fd = (SOCKET)(*env)->GetIntField(env, fdObj, IO_fd_fdID);
|
||||
rv = ioctlsocket(fd, FIONREAD, &retval);
|
||||
if (retval > 0) {
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
fd = (SOCKET)(*env)->GetIntField(env, fdObj, IO_fd_fdID);
|
||||
|
||||
if (ioctlsocket(fd, FIONREAD, &retval) < 0) {
|
||||
if (!IS_NULL(apdsi_fd1ID)) {
|
||||
/* TwoStacks */
|
||||
jobject fd1Obj = (*env)->GetObjectField(env, this, apdsi_fd1ID);
|
||||
if (!IS_NULL(fd1Obj)) {
|
||||
int retval = 0;
|
||||
fd1 = (SOCKET)(*env)->GetIntField(env, fd1Obj, IO_fd_fdID);
|
||||
rv1 = ioctlsocket(fd1, FIONREAD, &retval);
|
||||
if (retval > 0) {
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (rv < 0 && rv1 < 0) {
|
||||
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
|
||||
"Socket closed");
|
||||
return -1;
|
||||
}
|
||||
return retval;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1882,6 +1882,9 @@ public abstract class SunToolkit extends Toolkit
|
||||
|
||||
public synchronized void setWindowDeactivationTime(Window w, long time) {
|
||||
AppContext ctx = getAppContext(w);
|
||||
if (ctx == null) {
|
||||
return;
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
WeakHashMap<Window, Long> map = (WeakHashMap<Window, Long>)ctx.get(DEACTIVATION_TIMES_MAP_KEY);
|
||||
if (map == null) {
|
||||
@ -1893,6 +1896,9 @@ public abstract class SunToolkit extends Toolkit
|
||||
|
||||
public synchronized long getWindowDeactivationTime(Window w) {
|
||||
AppContext ctx = getAppContext(w);
|
||||
if (ctx == null) {
|
||||
return -1;
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
WeakHashMap<Window, Long> map = (WeakHashMap<Window, Long>)ctx.get(DEACTIVATION_TIMES_MAP_KEY);
|
||||
if (map == null) {
|
||||
|
@ -28,6 +28,7 @@ package sun.management;
|
||||
import java.util.*;
|
||||
import com.sun.management.VMOption;
|
||||
import com.sun.management.VMOption.Origin;
|
||||
import java.security.AccessController;
|
||||
|
||||
/**
|
||||
* Flag class is a helper class for constructing a VMOption.
|
||||
@ -115,6 +116,13 @@ class Flag {
|
||||
static synchronized native void setStringValue(String name, String value);
|
||||
|
||||
static {
|
||||
AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction<Void>() {
|
||||
public Void run() {
|
||||
System.loadLibrary("management");
|
||||
return null;
|
||||
}
|
||||
});
|
||||
initialize();
|
||||
}
|
||||
private static native void initialize();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -37,9 +37,10 @@ import java.util.Iterator;
|
||||
*
|
||||
* @author Sean Mullan
|
||||
* @author JSR 105 Expert Group
|
||||
* @param <T> the type of nodes maintained by this set
|
||||
* @since 1.6
|
||||
*/
|
||||
public interface NodeSetData extends Data {
|
||||
public interface NodeSetData<T> extends Data, Iterable<T> {
|
||||
|
||||
/**
|
||||
* Returns a read-only iterator over the nodes contained in this
|
||||
@ -52,6 +53,5 @@ public interface NodeSetData extends Data {
|
||||
* @return an <code>Iterator</code> over the nodes in this
|
||||
* <code>NodeSetData</code> in document order
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
Iterator iterator();
|
||||
Iterator<T> iterator();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -33,6 +33,7 @@ import javax.xml.crypto.XMLCryptoContext;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
@ -219,8 +220,7 @@ public class DOMCryptoContext implements XMLCryptoContext {
|
||||
*
|
||||
* @return a read-only iterator over the set of mappings
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public Iterator iterator() {
|
||||
public Iterator<Map.Entry<String, Element>> iterator() {
|
||||
return Collections.unmodifiableMap(idMap).entrySet().iterator();
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -51,8 +51,8 @@ import java.util.List;
|
||||
*
|
||||
* <pre>
|
||||
* XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
|
||||
* List references = Collections.singletonList(factory.newReference
|
||||
* ("#reference-1", DigestMethod.SHA1));
|
||||
* Reference ref = factory.newReference("#reference-1", DigestMethod.SHA1);
|
||||
* List<Reference> references = Collections.singletonList(ref);
|
||||
* Manifest manifest = factory.newManifest(references, "manifest-1");
|
||||
* </pre>
|
||||
*
|
||||
@ -86,6 +86,5 @@ public interface Manifest extends XMLStructure {
|
||||
*
|
||||
* @return an unmodifiable list of one or more <code>Reference</code>s
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getReferences();
|
||||
List<Reference> getReferences();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -85,8 +85,7 @@ public interface Reference extends URIReference, XMLStructure {
|
||||
* @return an unmodifiable list of <code>Transform</code>s
|
||||
* (may be empty but never <code>null</code>)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getTransforms();
|
||||
List<Transform> getTransforms();
|
||||
|
||||
/**
|
||||
* Returns the digest method of this <code>Reference</code>.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -87,6 +87,5 @@ public interface SignatureProperties extends XMLStructure {
|
||||
* @return an unmodifiable list of one or more
|
||||
* <code>SignatureProperty</code>s
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getProperties();
|
||||
List<SignatureProperty> getProperties();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -91,6 +91,5 @@ public interface SignatureProperty extends XMLStructure {
|
||||
*
|
||||
* @return an unmodifiable list of one or more <code>XMLStructure</code>s
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getContent();
|
||||
List<XMLStructure> getContent();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -80,8 +80,7 @@ public interface SignedInfo extends XMLStructure {
|
||||
*
|
||||
* @return an unmodifiable list of one or more {@link Reference}s
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getReferences();
|
||||
List<Reference> getReferences();
|
||||
|
||||
/**
|
||||
* Returns the optional <code>Id</code> attribute of this
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -64,7 +64,8 @@ import javax.xml.crypto.XMLStructure;
|
||||
*
|
||||
* <pre>
|
||||
* XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM");
|
||||
* List content = Collections.singletonList(fac.newManifest(references)));
|
||||
* Manifest manifest = fac.newManifest(references);
|
||||
* List<XMLStructure> content = Collections.singletonList(manifest);
|
||||
* XMLObject object = factory.newXMLObject(content, "object-1", null, null);
|
||||
* </pre>
|
||||
*
|
||||
@ -100,8 +101,7 @@ public interface XMLObject extends XMLStructure {
|
||||
* @return an unmodifiable list of <code>XMLStructure</code>s (may be empty
|
||||
* but never <code>null</code>)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getContent();
|
||||
List<XMLStructure> getContent();
|
||||
|
||||
/**
|
||||
* Returns the Id of this <code>XMLObject</code>.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -136,8 +136,7 @@ public interface XMLSignature extends XMLStructure {
|
||||
* @return an unmodifiable list of <code>XMLObject</code>s (may be empty
|
||||
* but never <code>null</code>)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getObjects();
|
||||
List<XMLObject> getObjects();
|
||||
|
||||
/**
|
||||
* Returns the optional Id of this <code>XMLSignature</code>.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -365,9 +365,8 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws ClassCastException if any of the <code>objects</code> are not of
|
||||
* type <code>XMLObject</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki,
|
||||
List objects, String id, String signatureValueId);
|
||||
List<? extends XMLObject> objects, String id, String signatureValueId);
|
||||
|
||||
/**
|
||||
* Creates a <code>Reference</code> with the specified URI and digest
|
||||
@ -399,9 +398,8 @@ public abstract class XMLSignatureFactory {
|
||||
* compliant
|
||||
* @throws NullPointerException if <code>dm</code> is <code>null</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract Reference newReference(String uri, DigestMethod dm,
|
||||
List transforms, String type, String id);
|
||||
List<? extends Transform> transforms, String type, String id);
|
||||
|
||||
/**
|
||||
* Creates a <code>Reference</code> with the specified parameters and
|
||||
@ -430,9 +428,9 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws NullPointerException if <code>dm</code> or
|
||||
* <code>digestValue</code> is <code>null</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract Reference newReference(String uri, DigestMethod dm,
|
||||
List transforms, String type, String id, byte[] digestValue);
|
||||
List<? extends Transform> transforms, String type, String id,
|
||||
byte[] digestValue);
|
||||
|
||||
/**
|
||||
* Creates a <code>Reference</code> with the specified parameters.
|
||||
@ -473,10 +471,9 @@ public abstract class XMLSignatureFactory {
|
||||
* <code>appliedTransforms</code> or <code>result</code> is
|
||||
* <code>null</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract Reference newReference(String uri, DigestMethod dm,
|
||||
List appliedTransforms, Data result, List transforms, String type,
|
||||
String id);
|
||||
List<? extends Transform> appliedTransforms, Data result,
|
||||
List<? extends Transform> transforms, String type, String id);
|
||||
|
||||
/**
|
||||
* Creates a <code>SignedInfo</code> with the specified canonicalization
|
||||
@ -493,9 +490,8 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws NullPointerException if any of the parameters
|
||||
* are <code>null</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm,
|
||||
SignatureMethod sm, List references);
|
||||
SignatureMethod sm, List<? extends Reference> references);
|
||||
|
||||
/**
|
||||
* Creates a <code>SignedInfo</code> with the specified parameters.
|
||||
@ -512,9 +508,8 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws NullPointerException if <code>cm</code>, <code>sm</code>, or
|
||||
* <code>references</code> are <code>null</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm,
|
||||
SignatureMethod sm, List references, String id);
|
||||
SignatureMethod sm, List<? extends Reference> references, String id);
|
||||
|
||||
// Object factory methods
|
||||
/**
|
||||
@ -530,9 +525,8 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws ClassCastException if <code>content</code> contains any
|
||||
* entries that are not of type {@link XMLStructure}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract XMLObject newXMLObject(List content, String id,
|
||||
String mimeType, String encoding);
|
||||
public abstract XMLObject newXMLObject(List<? extends XMLStructure> content,
|
||||
String id, String mimeType, String encoding);
|
||||
|
||||
/**
|
||||
* Creates a <code>Manifest</code> containing the specified
|
||||
@ -547,8 +541,7 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws ClassCastException if <code>references</code> contains any
|
||||
* entries that are not of type {@link Reference}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract Manifest newManifest(List references);
|
||||
public abstract Manifest newManifest(List<? extends Reference> references);
|
||||
|
||||
/**
|
||||
* Creates a <code>Manifest</code> containing the specified
|
||||
@ -564,8 +557,8 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws ClassCastException if <code>references</code> contains any
|
||||
* entries that are not of type {@link Reference}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract Manifest newManifest(List references, String id);
|
||||
public abstract Manifest newManifest(List<? extends Reference> references,
|
||||
String id);
|
||||
|
||||
/**
|
||||
* Creates a <code>SignatureProperty</code> containing the specified
|
||||
@ -583,9 +576,8 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws ClassCastException if <code>content</code> contains any
|
||||
* entries that are not of type {@link XMLStructure}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract SignatureProperty newSignatureProperty
|
||||
(List content, String target, String id);
|
||||
(List<? extends XMLStructure> content, String target, String id);
|
||||
|
||||
/**
|
||||
* Creates a <code>SignatureProperties</code> containing the specified
|
||||
@ -602,9 +594,8 @@ public abstract class XMLSignatureFactory {
|
||||
* @throws ClassCastException if <code>properties</code> contains any
|
||||
* entries that are not of type {@link SignatureProperty}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract SignatureProperties newSignatureProperties
|
||||
(List properties, String id);
|
||||
(List<? extends SignatureProperty> properties, String id);
|
||||
|
||||
// Algorithm factory methods
|
||||
/**
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -94,8 +94,7 @@ public interface KeyInfo extends XMLStructure {
|
||||
* in this <code>KeyInfo</code>. Never returns <code>null</code> or an
|
||||
* empty list.
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getContent();
|
||||
List<XMLStructure> getContent();
|
||||
|
||||
/**
|
||||
* Return the optional Id attribute of this <code>KeyInfo</code>, which
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -305,8 +305,7 @@ public abstract class KeyInfoFactory {
|
||||
* @throws ClassCastException if <code>content</code> contains any entries
|
||||
* that are not of type {@link XMLStructure}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract KeyInfo newKeyInfo(List content);
|
||||
public abstract KeyInfo newKeyInfo(List<? extends XMLStructure> content);
|
||||
|
||||
/**
|
||||
* Creates a <code>KeyInfo</code> containing the specified list of key
|
||||
@ -325,8 +324,8 @@ public abstract class KeyInfoFactory {
|
||||
* @throws ClassCastException if <code>content</code> contains any entries
|
||||
* that are not of type {@link XMLStructure}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract KeyInfo newKeyInfo(List content, String id);
|
||||
public abstract KeyInfo newKeyInfo(List<? extends XMLStructure> content,
|
||||
String id);
|
||||
|
||||
/**
|
||||
* Creates a <code>KeyName</code> from the specified name.
|
||||
@ -387,9 +386,8 @@ public abstract class KeyInfoFactory {
|
||||
* @throws ClassCastException if <code>other</code> contains any
|
||||
* entries that are not of type {@link XMLStructure}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract PGPData newPGPData(byte[] keyId, byte[] keyPacket,
|
||||
List other);
|
||||
List<? extends XMLStructure> other);
|
||||
|
||||
/**
|
||||
* Creates a <code>PGPData</code> from the specified PGP key material
|
||||
@ -411,8 +409,8 @@ public abstract class KeyInfoFactory {
|
||||
* @throws ClassCastException if <code>other</code> contains any
|
||||
* entries that are not of type {@link XMLStructure}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract PGPData newPGPData(byte[] keyPacket, List other);
|
||||
public abstract PGPData newPGPData(byte[] keyPacket,
|
||||
List<? extends XMLStructure> other);
|
||||
|
||||
/**
|
||||
* Creates a <code>RetrievalMethod</code> from the specified URI.
|
||||
@ -443,9 +441,8 @@ public abstract class KeyInfoFactory {
|
||||
* @throws ClassCastException if <code>transforms</code> contains any
|
||||
* entries that are not of type {@link Transform}
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract RetrievalMethod newRetrievalMethod(String uri, String type,
|
||||
List transforms);
|
||||
List<? extends Transform> transforms);
|
||||
|
||||
/**
|
||||
* Creates a <code>X509Data</code> containing the specified list of
|
||||
@ -469,8 +466,7 @@ public abstract class KeyInfoFactory {
|
||||
* @throws ClassCastException if <code>content</code> contains any entries
|
||||
* that are not of one of the valid types mentioned above
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public abstract X509Data newX509Data(List content);
|
||||
public abstract X509Data newX509Data(List<?> content);
|
||||
|
||||
/**
|
||||
* Creates an <code>X509IssuerSerial</code> from the specified X.500 issuer
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -112,6 +112,5 @@ public interface PGPData extends XMLStructure {
|
||||
* @return an unmodifiable list of <code>XMLStructure</code>s (may be
|
||||
* empty, but never <code>null</code>)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getExternalElements();
|
||||
List<XMLStructure> getExternalElements();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -80,8 +80,7 @@ public interface RetrievalMethod extends URIReference, XMLStructure {
|
||||
* @return an unmodifiable list of <code>Transform</code> objects (may be
|
||||
* empty but never <code>null</code>).
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getTransforms();
|
||||
List<Transform> getTransforms();
|
||||
|
||||
/**
|
||||
* Returns the URI of the referenced <code>KeyInfo</code> information.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -109,6 +109,5 @@ public interface X509Data extends XMLStructure {
|
||||
* @return an unmodifiable list of the content in this <code>X509Data</code>
|
||||
* (never <code>null</code> or empty)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
List getContent();
|
||||
List<?> getContent();
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ import java.util.List;
|
||||
*/
|
||||
public final class ExcC14NParameterSpec implements C14NMethodParameterSpec {
|
||||
|
||||
private List<String> preList;
|
||||
private final List<String> prefixList;
|
||||
|
||||
/**
|
||||
* Indicates the default namespace ("#default").
|
||||
@ -71,7 +71,7 @@ public final class ExcC14NParameterSpec implements C14NMethodParameterSpec {
|
||||
* list.
|
||||
*/
|
||||
public ExcC14NParameterSpec() {
|
||||
preList = Collections.emptyList();
|
||||
prefixList = Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -86,22 +86,14 @@ public final class ExcC14NParameterSpec implements C14NMethodParameterSpec {
|
||||
* @throws ClassCastException if any of the entries in the list are not
|
||||
* of type <code>String</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public ExcC14NParameterSpec(List prefixList) {
|
||||
public ExcC14NParameterSpec(List<String> prefixList) {
|
||||
if (prefixList == null) {
|
||||
throw new NullPointerException("prefixList cannot be null");
|
||||
}
|
||||
List<?> copy = new ArrayList<>((List<?>)prefixList);
|
||||
for (int i = 0, size = copy.size(); i < size; i++) {
|
||||
if (!(copy.get(i) instanceof String)) {
|
||||
throw new ClassCastException("not a String");
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<String> temp = (List<String>)copy;
|
||||
|
||||
preList = Collections.unmodifiableList(temp);
|
||||
List<String> tempList = Collections.checkedList(new ArrayList<>(),
|
||||
String.class);
|
||||
tempList.addAll(prefixList);
|
||||
this.prefixList = Collections.unmodifiableList(tempList);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -114,8 +106,7 @@ public final class ExcC14NParameterSpec implements C14NMethodParameterSpec {
|
||||
* @return the inclusive namespace prefix list (may be empty but never
|
||||
* <code>null</code>)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public List getPrefixList() {
|
||||
return preList;
|
||||
public List<String> getPrefixList() {
|
||||
return prefixList;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -59,27 +59,18 @@ public final class XPathFilter2ParameterSpec implements TransformParameterSpec {
|
||||
* @throws NullPointerException if <code>xPathList</code> is
|
||||
* <code>null</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public XPathFilter2ParameterSpec(List xPathList) {
|
||||
public XPathFilter2ParameterSpec(List<XPathType> xPathList) {
|
||||
if (xPathList == null) {
|
||||
throw new NullPointerException("xPathList cannot be null");
|
||||
}
|
||||
List<?> xPathListCopy = new ArrayList<>((List<?>)xPathList);
|
||||
if (xPathListCopy.isEmpty()) {
|
||||
List<XPathType> tempList =
|
||||
Collections.checkedList(new ArrayList<XPathType>(),
|
||||
XPathType.class);
|
||||
tempList.addAll(xPathList);
|
||||
if (tempList.isEmpty()) {
|
||||
throw new IllegalArgumentException("xPathList cannot be empty");
|
||||
}
|
||||
int size = xPathListCopy.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
if (!(xPathListCopy.get(i) instanceof XPathType)) {
|
||||
throw new ClassCastException
|
||||
("xPathList["+i+"] is not a valid type");
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<XPathType> temp = (List<XPathType>)xPathListCopy;
|
||||
|
||||
this.xPathList = Collections.unmodifiableList(temp);
|
||||
this.xPathList = Collections.unmodifiableList(tempList);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,8 +82,7 @@ public final class XPathFilter2ParameterSpec implements TransformParameterSpec {
|
||||
* @return a <code>List</code> of <code>XPathType</code> objects
|
||||
* (never <code>null</code> or empty)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public List getXPathList() {
|
||||
public List<XPathType> getXPathList() {
|
||||
return xPathList;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, 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
|
||||
@ -32,7 +32,6 @@ import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
/**
|
||||
* Parameters for the <a href="http://www.w3.org/TR/xmldsig-core/#sec-XPath">
|
||||
@ -51,8 +50,8 @@ import java.util.Map.Entry;
|
||||
*/
|
||||
public final class XPathFilterParameterSpec implements TransformParameterSpec {
|
||||
|
||||
private String xPath;
|
||||
private Map<String,String> nsMap;
|
||||
private final String xPath;
|
||||
private final Map<String,String> nsMap;
|
||||
|
||||
/**
|
||||
* Creates an <code>XPathFilterParameterSpec</code> with the specified
|
||||
@ -83,26 +82,16 @@ public final class XPathFilterParameterSpec implements TransformParameterSpec {
|
||||
* @throws ClassCastException if any of the map's keys or entries are not
|
||||
* of type <code>String</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public XPathFilterParameterSpec(String xPath, Map namespaceMap) {
|
||||
public XPathFilterParameterSpec(String xPath, Map<String,String> namespaceMap) {
|
||||
if (xPath == null || namespaceMap == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
this.xPath = xPath;
|
||||
Map<?,?> copy = new HashMap<>((Map<?,?>)namespaceMap);
|
||||
Iterator<? extends Map.Entry<?,?>> entries = copy.entrySet().iterator();
|
||||
while (entries.hasNext()) {
|
||||
Map.Entry<?,?> me = entries.next();
|
||||
if (!(me.getKey() instanceof String) ||
|
||||
!(me.getValue() instanceof String)) {
|
||||
throw new ClassCastException("not a String");
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String,String> temp = (Map<String,String>)copy;
|
||||
|
||||
nsMap = Collections.unmodifiableMap(temp);
|
||||
Map<String,String> tempMap = Collections.checkedMap(new HashMap<>(),
|
||||
String.class,
|
||||
String.class);
|
||||
tempMap.putAll(namespaceMap);
|
||||
this.nsMap = Collections.unmodifiableMap(tempMap);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -125,8 +114,7 @@ public final class XPathFilterParameterSpec implements TransformParameterSpec {
|
||||
* @return a <code>Map</code> of namespace prefixes to namespace URIs (may
|
||||
* be empty, but never <code>null</code>)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public Map getNamespaceMap() {
|
||||
public Map<String,String> getNamespaceMap() {
|
||||
return nsMap;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -28,7 +28,6 @@
|
||||
package javax.xml.crypto.dsig.spec;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@ -106,7 +105,7 @@ public class XPathType {
|
||||
|
||||
private final String expression;
|
||||
private final Filter filter;
|
||||
private Map<String,String> nsMap;
|
||||
private final Map<String,String> nsMap;
|
||||
|
||||
/**
|
||||
* Creates an <code>XPathType</code> instance with the specified XPath
|
||||
@ -147,26 +146,24 @@ public class XPathType {
|
||||
* @throws ClassCastException if any of the map's keys or entries are
|
||||
* not of type <code>String</code>
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public XPathType(String expression, Filter filter, Map namespaceMap) {
|
||||
this(expression, filter);
|
||||
public XPathType(String expression, Filter filter,
|
||||
Map<String,String> namespaceMap) {
|
||||
if (expression == null) {
|
||||
throw new NullPointerException("expression cannot be null");
|
||||
}
|
||||
if (filter == null) {
|
||||
throw new NullPointerException("filter cannot be null");
|
||||
}
|
||||
if (namespaceMap == null) {
|
||||
throw new NullPointerException("namespaceMap cannot be null");
|
||||
}
|
||||
Map<?,?> copy = new HashMap<>((Map<?,?>)namespaceMap);
|
||||
Iterator<? extends Map.Entry<?,?>> entries = copy.entrySet().iterator();
|
||||
while (entries.hasNext()) {
|
||||
Map.Entry<?,?> me = entries.next();
|
||||
if (!(me.getKey() instanceof String) ||
|
||||
!(me.getValue() instanceof String)) {
|
||||
throw new ClassCastException("not a String");
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String,String> temp = (Map<String,String>)copy;
|
||||
|
||||
nsMap = Collections.unmodifiableMap(temp);
|
||||
this.expression = expression;
|
||||
this.filter = filter;
|
||||
Map<String,String> tempMap = Collections.checkedMap(new HashMap<>(),
|
||||
String.class,
|
||||
String.class);
|
||||
tempMap.putAll(namespaceMap);
|
||||
this.nsMap = Collections.unmodifiableMap(tempMap);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -198,8 +195,7 @@ public class XPathType {
|
||||
* @return a <code>Map</code> of namespace prefixes to namespace URIs
|
||||
* (may be empty, but never <code>null</code>)
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public Map getNamespaceMap() {
|
||||
public Map<String,String> getNamespaceMap() {
|
||||
return nsMap;
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
*/
|
||||
/*
|
||||
* $Id: ApacheCanonicalizer.java 1333869 2012-05-04 10:42:44Z coheigea $
|
||||
@ -166,11 +166,9 @@ public abstract class ApacheCanonicalizer extends TransformService {
|
||||
(subTree.getRoot())));
|
||||
}
|
||||
} else if (data instanceof NodeSetData) {
|
||||
NodeSetData nsd = (NodeSetData)data;
|
||||
// convert Iterator to Set
|
||||
@SuppressWarnings("unchecked")
|
||||
Set<Node> ns = Utils.toNodeSet(nsd.iterator());
|
||||
nodeSet = ns;
|
||||
NodeSetData<?> nsd = (NodeSetData<?>)data;
|
||||
// convert Iterator to Set<Node>
|
||||
nodeSet = Utils.toNodeSet(nsd.iterator());
|
||||
if (log.isLoggable(java.util.logging.Level.FINE)) {
|
||||
log.log(java.util.logging.Level.FINE, "Canonicalizing " + nodeSet.size() + " nodes");
|
||||
}
|
||||
@ -236,7 +234,6 @@ public abstract class ApacheCanonicalizer extends TransformService {
|
||||
in = new XMLSignatureInput(subTree.getRoot());
|
||||
in.setExcludeComments(subTree.excludeComments());
|
||||
} else {
|
||||
@SuppressWarnings("unchecked")
|
||||
Set<Node> nodeSet =
|
||||
Utils.toNodeSet(((NodeSetData)data).iterator());
|
||||
in = new XMLSignatureInput(nodeSet);
|
||||
|
@ -39,7 +39,7 @@ import com.sun.org.apache.xml.internal.security.signature.NodeFilter;
|
||||
import com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput;
|
||||
import com.sun.org.apache.xml.internal.security.utils.XMLUtils;
|
||||
|
||||
public class ApacheNodeSetData implements ApacheData, NodeSetData {
|
||||
public class ApacheNodeSetData implements ApacheData, NodeSetData<Node> {
|
||||
|
||||
private XMLSignatureInput xi;
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
*/
|
||||
/*
|
||||
* $Id: ApacheTransform.java 1333869 2012-05-04 10:42:44Z coheigea $
|
||||
@ -175,7 +175,6 @@ public abstract class ApacheTransform extends TransformService {
|
||||
in = new XMLSignatureInput(subTree.getRoot());
|
||||
in.setExcludeComments(subTree.excludeComments());
|
||||
} else {
|
||||
@SuppressWarnings("unchecked")
|
||||
Set<Node> nodeSet =
|
||||
Utils.toNodeSet(((NodeSetData)data).iterator());
|
||||
in = new XMLSignatureInput(nodeSet);
|
||||
|
@ -21,7 +21,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
*/
|
||||
/*
|
||||
* $Id: DOMExcC14NMethod.java 1197150 2011-11-03 14:34:57Z coheigea $
|
||||
@ -119,7 +119,6 @@ public final class DOMExcC14NMethod extends ApacheCanonicalizer {
|
||||
|
||||
ExcC14NParameterSpec params = (ExcC14NParameterSpec)spec;
|
||||
StringBuilder prefixListAttr = new StringBuilder("");
|
||||
@SuppressWarnings("unchecked")
|
||||
List<String> prefixList = params.getPrefixList();
|
||||
for (int i = 0, size = prefixList.size(); i < size; i++) {
|
||||
prefixListAttr.append(prefixList.get(i));
|
||||
|
@ -68,17 +68,14 @@ public final class DOMKeyInfo extends DOMStructure implements KeyInfo {
|
||||
if (content == null) {
|
||||
throw new NullPointerException("content cannot be null");
|
||||
}
|
||||
this.keyInfoTypes =
|
||||
Collections.unmodifiableList(new ArrayList<XMLStructure>(content));
|
||||
List<XMLStructure> tempList =
|
||||
Collections.checkedList(new ArrayList<XMLStructure>(),
|
||||
XMLStructure.class);
|
||||
tempList.addAll(content);
|
||||
this.keyInfoTypes = Collections.unmodifiableList(tempList);
|
||||
if (this.keyInfoTypes.isEmpty()) {
|
||||
throw new IllegalArgumentException("content cannot be empty");
|
||||
}
|
||||
for (int i = 0, size = this.keyInfoTypes.size(); i < size; i++) {
|
||||
if (!(this.keyInfoTypes.get(i) instanceof XMLStructure)) {
|
||||
throw new ClassCastException
|
||||
("content["+i+"] is not a valid KeyInfo type");
|
||||
}
|
||||
}
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
@ -34,6 +34,7 @@ import java.security.PublicKey;
|
||||
import java.util.List;
|
||||
import javax.xml.crypto.*;
|
||||
import javax.xml.crypto.dom.DOMCryptoContext;
|
||||
import javax.xml.crypto.dsig.Transform;
|
||||
import javax.xml.crypto.dsig.keyinfo.*;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
@ -48,13 +49,11 @@ public final class DOMKeyInfoFactory extends KeyInfoFactory {
|
||||
|
||||
public DOMKeyInfoFactory() { }
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public KeyInfo newKeyInfo(List content) {
|
||||
public KeyInfo newKeyInfo(List<? extends XMLStructure> content) {
|
||||
return newKeyInfo(content, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public KeyInfo newKeyInfo(List content, String id) {
|
||||
public KeyInfo newKeyInfo(List<? extends XMLStructure> content, String id) {
|
||||
return new DOMKeyInfo(content, id);
|
||||
}
|
||||
|
||||
@ -79,13 +78,13 @@ public final class DOMKeyInfoFactory extends KeyInfoFactory {
|
||||
return newPGPData(keyId, null, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public PGPData newPGPData(byte[] keyId, byte[] keyPacket, List other) {
|
||||
public PGPData newPGPData(byte[] keyId, byte[] keyPacket,
|
||||
List<? extends XMLStructure> other) {
|
||||
return new DOMPGPData(keyId, keyPacket, other);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public PGPData newPGPData(byte[] keyPacket, List other) {
|
||||
public PGPData newPGPData(byte[] keyPacket,
|
||||
List<? extends XMLStructure> other) {
|
||||
return new DOMPGPData(keyPacket, other);
|
||||
}
|
||||
|
||||
@ -93,17 +92,15 @@ public final class DOMKeyInfoFactory extends KeyInfoFactory {
|
||||
return newRetrievalMethod(uri, null, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public RetrievalMethod newRetrievalMethod(String uri, String type,
|
||||
List transforms) {
|
||||
List<? extends Transform> transforms) {
|
||||
if (uri == null) {
|
||||
throw new NullPointerException("uri must not be null");
|
||||
}
|
||||
return new DOMRetrievalMethod(uri, type, transforms);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public X509Data newX509Data(List content) {
|
||||
public X509Data newX509Data(List<?> content) {
|
||||
return new DOMX509Data(content);
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,6 @@ import javax.xml.crypto.dom.DOMCryptoContext;
|
||||
import javax.xml.crypto.dsig.*;
|
||||
import javax.xml.crypto.dsig.keyinfo.KeyValue;
|
||||
|
||||
// import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.security.AccessController;
|
||||
|
@ -67,18 +67,15 @@ public final class DOMManifest extends DOMStructure implements Manifest {
|
||||
if (references == null) {
|
||||
throw new NullPointerException("references cannot be null");
|
||||
}
|
||||
this.references =
|
||||
Collections.unmodifiableList(new ArrayList<Reference>(references));
|
||||
List<Reference> tempList =
|
||||
Collections.checkedList(new ArrayList<Reference>(),
|
||||
Reference.class);
|
||||
tempList.addAll(references);
|
||||
this.references = Collections.unmodifiableList(tempList);
|
||||
if (this.references.isEmpty()) {
|
||||
throw new IllegalArgumentException("list of references must " +
|
||||
"contain at least one entry");
|
||||
}
|
||||
for (int i = 0, size = this.references.size(); i < size; i++) {
|
||||
if (!(this.references.get(i) instanceof Reference)) {
|
||||
throw new ClassCastException
|
||||
("references["+i+"] is not a valid type");
|
||||
}
|
||||
}
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@ -127,7 +124,6 @@ public final class DOMManifest extends DOMStructure implements Manifest {
|
||||
return id;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
static List<Reference> getManifestReferences(Manifest mf) {
|
||||
return mf.getReferences();
|
||||
}
|
||||
|
@ -73,18 +73,13 @@ public final class DOMPGPData extends DOMStructure implements PGPData {
|
||||
if (keyPacket == null) {
|
||||
throw new NullPointerException("keyPacket cannot be null");
|
||||
}
|
||||
if (other == null || other.isEmpty()) {
|
||||
this.externalElements = Collections.emptyList();
|
||||
} else {
|
||||
this.externalElements =
|
||||
Collections.unmodifiableList(new ArrayList<XMLStructure>(other));
|
||||
for (int i = 0, size = this.externalElements.size(); i < size; i++) {
|
||||
if (!(this.externalElements.get(i) instanceof XMLStructure)) {
|
||||
throw new ClassCastException
|
||||
("other["+i+"] is not a valid PGPData type");
|
||||
}
|
||||
}
|
||||
List<XMLStructure> tempList =
|
||||
Collections.checkedList(new ArrayList<XMLStructure>(),
|
||||
XMLStructure.class);
|
||||
if (other != null) {
|
||||
tempList.addAll(other);
|
||||
}
|
||||
this.externalElements = Collections.unmodifiableList(tempList);
|
||||
this.keyPacket = keyPacket.clone();
|
||||
checkKeyPacket(keyPacket);
|
||||
this.keyId = null;
|
||||
@ -120,18 +115,13 @@ public final class DOMPGPData extends DOMStructure implements PGPData {
|
||||
if (keyId.length != 8) {
|
||||
throw new IllegalArgumentException("keyId must be 8 bytes long");
|
||||
}
|
||||
if (other == null || other.isEmpty()) {
|
||||
this.externalElements = Collections.emptyList();
|
||||
} else {
|
||||
this.externalElements =
|
||||
Collections.unmodifiableList(new ArrayList<XMLStructure>(other));
|
||||
for (int i = 0, size = this.externalElements.size(); i < size; i++) {
|
||||
if (!(this.externalElements.get(i) instanceof XMLStructure)) {
|
||||
throw new ClassCastException
|
||||
("other["+i+"] is not a valid PGPData type");
|
||||
}
|
||||
}
|
||||
List<XMLStructure> tempList =
|
||||
Collections.checkedList(new ArrayList<XMLStructure>(),
|
||||
XMLStructure.class);
|
||||
if (other != null) {
|
||||
tempList.addAll(other);
|
||||
}
|
||||
this.externalElements = Collections.unmodifiableList(tempList);
|
||||
this.keyId = keyId.clone();
|
||||
this.keyPacket = keyPacket == null ? null
|
||||
: keyPacket.clone();
|
||||
|
@ -147,29 +147,21 @@ public final class DOMReference extends DOMStructure
|
||||
if (dm == null) {
|
||||
throw new NullPointerException("DigestMethod must be non-null");
|
||||
}
|
||||
if (appliedTransforms == null) {
|
||||
this.allTransforms = new ArrayList<Transform>();
|
||||
} else {
|
||||
this.allTransforms = new ArrayList<Transform>(appliedTransforms);
|
||||
for (int i = 0, size = this.allTransforms.size(); i < size; i++) {
|
||||
if (!(this.allTransforms.get(i) instanceof Transform)) {
|
||||
throw new ClassCastException
|
||||
("appliedTransforms["+i+"] is not a valid type");
|
||||
}
|
||||
}
|
||||
List<Transform> tempList =
|
||||
Collections.checkedList(new ArrayList<Transform>(),
|
||||
Transform.class);
|
||||
if (appliedTransforms != null) {
|
||||
tempList.addAll(appliedTransforms);
|
||||
}
|
||||
if (transforms == null) {
|
||||
this.transforms = Collections.emptyList();
|
||||
} else {
|
||||
this.transforms = new ArrayList<Transform>(transforms);
|
||||
for (int i = 0, size = this.transforms.size(); i < size; i++) {
|
||||
if (!(this.transforms.get(i) instanceof Transform)) {
|
||||
throw new ClassCastException
|
||||
("transforms["+i+"] is not a valid type");
|
||||
}
|
||||
}
|
||||
this.allTransforms.addAll(this.transforms);
|
||||
List<Transform> tempList2 =
|
||||
Collections.checkedList(new ArrayList<Transform>(),
|
||||
Transform.class);
|
||||
if (transforms != null) {
|
||||
tempList.addAll(transforms);
|
||||
tempList2.addAll(transforms);
|
||||
}
|
||||
this.allTransforms = Collections.unmodifiableList(tempList);
|
||||
this.transforms = tempList2;
|
||||
this.digestMethod = dm;
|
||||
this.uri = uri;
|
||||
if ((uri != null) && (!uri.equals(""))) {
|
||||
@ -642,7 +634,7 @@ public final class DOMReference extends DOMStructure
|
||||
if (xsi.isNodeSet()) {
|
||||
try {
|
||||
final Set<Node> s = xsi.getNodeSet();
|
||||
return new NodeSetData() {
|
||||
return new NodeSetData<Node>() {
|
||||
public Iterator<Node> iterator() { return s.iterator(); }
|
||||
};
|
||||
} catch (Exception e) {
|
||||
|
@ -90,18 +90,13 @@ public final class DOMRetrievalMethod extends DOMStructure
|
||||
if (uri == null) {
|
||||
throw new NullPointerException("uri cannot be null");
|
||||
}
|
||||
if (transforms == null || transforms.isEmpty()) {
|
||||
this.transforms = Collections.emptyList();
|
||||
} else {
|
||||
this.transforms = Collections.unmodifiableList(
|
||||
new ArrayList<Transform>(transforms));
|
||||
for (int i = 0, size = this.transforms.size(); i < size; i++) {
|
||||
if (!(this.transforms.get(i) instanceof Transform)) {
|
||||
throw new ClassCastException
|
||||
("transforms["+i+"] is not a valid type");
|
||||
}
|
||||
}
|
||||
List<Transform> tempList =
|
||||
Collections.checkedList(new ArrayList<Transform>(),
|
||||
Transform.class);
|
||||
if (transforms != null) {
|
||||
tempList.addAll(transforms);
|
||||
}
|
||||
this.transforms = Collections.unmodifiableList(tempList);
|
||||
this.uri = uri;
|
||||
if (!uri.equals("")) {
|
||||
try {
|
||||
@ -244,7 +239,7 @@ public final class DOMRetrievalMethod extends DOMStructure
|
||||
|
||||
// guard against RetrievalMethod loops
|
||||
if ((data instanceof NodeSetData) && Utils.secureValidation(context)) {
|
||||
NodeSetData nsd = (NodeSetData)data;
|
||||
NodeSetData<?> nsd = (NodeSetData<?>)data;
|
||||
Iterator<?> i = nsd.iterator();
|
||||
if (i.hasNext()) {
|
||||
Node root = (Node)i.next();
|
||||
|
@ -69,18 +69,15 @@ public final class DOMSignatureProperties extends DOMStructure
|
||||
{
|
||||
if (properties == null) {
|
||||
throw new NullPointerException("properties cannot be null");
|
||||
} else if (properties.isEmpty()) {
|
||||
throw new IllegalArgumentException("properties cannot be empty");
|
||||
} else {
|
||||
this.properties = Collections.unmodifiableList(
|
||||
new ArrayList<SignatureProperty>(properties));
|
||||
for (int i = 0, size = this.properties.size(); i < size; i++) {
|
||||
if (!(this.properties.get(i) instanceof SignatureProperty)) {
|
||||
throw new ClassCastException
|
||||
("properties["+i+"] is not a valid type");
|
||||
}
|
||||
}
|
||||
}
|
||||
List<SignatureProperty> tempList =
|
||||
Collections.checkedList(new ArrayList<SignatureProperty>(),
|
||||
SignatureProperty.class);
|
||||
tempList.addAll(properties);
|
||||
if (tempList.isEmpty()) {
|
||||
throw new IllegalArgumentException("properties cannot be empty");
|
||||
}
|
||||
this.properties = Collections.unmodifiableList(tempList);
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
@ -71,20 +71,18 @@ public final class DOMSignatureProperty extends DOMStructure
|
||||
{
|
||||
if (target == null) {
|
||||
throw new NullPointerException("target cannot be null");
|
||||
} else if (content == null) {
|
||||
throw new NullPointerException("content cannot be null");
|
||||
} else if (content.isEmpty()) {
|
||||
throw new IllegalArgumentException("content cannot be empty");
|
||||
} else {
|
||||
this.content = Collections.unmodifiableList(
|
||||
new ArrayList<XMLStructure>(content));
|
||||
for (int i = 0, size = this.content.size(); i < size; i++) {
|
||||
if (!(this.content.get(i) instanceof XMLStructure)) {
|
||||
throw new ClassCastException
|
||||
("content["+i+"] is not a valid type");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (content == null) {
|
||||
throw new NullPointerException("content cannot be null");
|
||||
}
|
||||
List<XMLStructure> tempList =
|
||||
Collections.checkedList(new ArrayList<XMLStructure>(),
|
||||
XMLStructure.class);
|
||||
tempList.addAll(content);
|
||||
if (tempList.isEmpty()) {
|
||||
throw new IllegalArgumentException("content cannot be empty");
|
||||
}
|
||||
this.content = Collections.unmodifiableList(tempList);
|
||||
this.target = target;
|
||||
this.id = id;
|
||||
}
|
||||
@ -169,7 +167,6 @@ public final class DOMSignatureProperty extends DOMStructure
|
||||
boolean idsEqual = (id == null ? osp.getId() == null
|
||||
: id.equals(osp.getId()));
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<XMLStructure> ospContent = osp.getContent();
|
||||
return (equalsContent(ospContent) &&
|
||||
target.equals(osp.getTarget()) && idsEqual);
|
||||
|
@ -100,19 +100,14 @@ public final class DOMSignedInfo extends DOMStructure implements SignedInfo {
|
||||
}
|
||||
this.canonicalizationMethod = cm;
|
||||
this.signatureMethod = sm;
|
||||
this.references = Collections.unmodifiableList(
|
||||
new ArrayList<Reference>(references));
|
||||
if (this.references.isEmpty()) {
|
||||
throw new IllegalArgumentException("list of references must " +
|
||||
"contain at least one entry");
|
||||
}
|
||||
for (int i = 0, size = this.references.size(); i < size; i++) {
|
||||
Object obj = this.references.get(i);
|
||||
if (!(obj instanceof Reference)) {
|
||||
throw new ClassCastException("list of references contains " +
|
||||
"an illegal type");
|
||||
}
|
||||
List<Reference> tempList =
|
||||
Collections.checkedList(new ArrayList<Reference>(),
|
||||
Reference.class);
|
||||
tempList.addAll(references);
|
||||
if (tempList.isEmpty()) {
|
||||
throw new IllegalArgumentException("references cannot be empty");
|
||||
}
|
||||
this.references = Collections.unmodifiableList(tempList);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -44,7 +44,7 @@ import org.w3c.dom.Node;
|
||||
* directly on the subdocument and there is no need to convert it
|
||||
* first to an XPath node-set.
|
||||
*/
|
||||
public class DOMSubTreeData implements NodeSetData {
|
||||
public class DOMSubTreeData implements NodeSetData<Node> {
|
||||
|
||||
private boolean excludeComments;
|
||||
private Node root;
|
||||
|
@ -367,9 +367,7 @@ public class DOMUtils {
|
||||
private static boolean paramsEqual(XPathFilter2ParameterSpec spec1,
|
||||
XPathFilter2ParameterSpec spec2)
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
List<XPathType> types = spec1.getXPathList();
|
||||
@SuppressWarnings("unchecked")
|
||||
List<XPathType> otypes = spec2.getXPathList();
|
||||
int size = types.size();
|
||||
if (size != otypes.size()) {
|
||||
|
@ -135,7 +135,7 @@ public final class DOMX509Data extends DOMStructure implements X509Data {
|
||||
this.content = Collections.unmodifiableList(content);
|
||||
}
|
||||
|
||||
public List<Object> getContent() {
|
||||
public List<?> getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
@ -265,7 +265,7 @@ public final class DOMX509Data extends DOMStructure implements X509Data {
|
||||
}
|
||||
X509Data oxd = (X509Data)o;
|
||||
|
||||
@SuppressWarnings("unchecked") List<Object> ocontent = oxd.getContent();
|
||||
List<?> ocontent = oxd.getContent();
|
||||
int size = content.size();
|
||||
if (size != ocontent.size()) {
|
||||
return false;
|
||||
|
@ -70,18 +70,13 @@ public final class DOMXMLObject extends DOMStructure implements XMLObject {
|
||||
public DOMXMLObject(List<? extends XMLStructure> content, String id,
|
||||
String mimeType, String encoding)
|
||||
{
|
||||
if (content == null || content.isEmpty()) {
|
||||
this.content = Collections.emptyList();
|
||||
} else {
|
||||
this.content = Collections.unmodifiableList(
|
||||
new ArrayList<XMLStructure>(content));
|
||||
for (int i = 0, size = this.content.size(); i < size; i++) {
|
||||
if (!(this.content.get(i) instanceof XMLStructure)) {
|
||||
throw new ClassCastException
|
||||
("content["+i+"] is not a valid type");
|
||||
}
|
||||
}
|
||||
List<XMLStructure> tempList =
|
||||
Collections.checkedList(new ArrayList<XMLStructure>(),
|
||||
XMLStructure.class);
|
||||
if (content != null) {
|
||||
tempList.addAll(content);
|
||||
}
|
||||
this.content = Collections.unmodifiableList(tempList);
|
||||
this.id = id;
|
||||
this.mimeType = mimeType;
|
||||
this.encoding = encoding;
|
||||
@ -204,7 +199,6 @@ public final class DOMXMLObject extends DOMStructure implements XMLObject {
|
||||
(mimeType == null ? oxo.getMimeType() == null
|
||||
: mimeType.equals(oxo.getMimeType()));
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<XMLStructure> oxoContent = oxo.getContent();
|
||||
return (idsEqual && encodingsEqual && mimeTypesEqual &&
|
||||
equalsContent(oxoContent));
|
||||
|
@ -109,18 +109,13 @@ public final class DOMXMLSignature extends DOMStructure
|
||||
this.si = si;
|
||||
this.id = id;
|
||||
this.sv = new DOMSignatureValue(signatureValueId);
|
||||
if (objs == null) {
|
||||
this.objects = Collections.emptyList();
|
||||
} else {
|
||||
this.objects =
|
||||
Collections.unmodifiableList(new ArrayList<XMLObject>(objs));
|
||||
for (int i = 0, size = this.objects.size(); i < size; i++) {
|
||||
if (!(this.objects.get(i) instanceof XMLObject)) {
|
||||
throw new ClassCastException
|
||||
("objs["+i+"] is not an XMLObject");
|
||||
}
|
||||
}
|
||||
List<XMLObject> tempList =
|
||||
Collections.checkedList(new ArrayList<XMLObject>(),
|
||||
XMLObject.class);
|
||||
if (objs != null) {
|
||||
tempList.addAll(objs);
|
||||
}
|
||||
this.objects = Collections.unmodifiableList(tempList);
|
||||
this.ki = ki;
|
||||
}
|
||||
|
||||
@ -270,7 +265,6 @@ public final class DOMXMLSignature extends DOMStructure
|
||||
}
|
||||
|
||||
// validate all References
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Reference> refs = this.si.getReferences();
|
||||
boolean validateRefs = true;
|
||||
for (int i = 0, size = refs.size(); validateRefs && i < size; i++) {
|
||||
@ -297,7 +291,6 @@ public final class DOMXMLSignature extends DOMStructure
|
||||
{
|
||||
for (int i=0, size=objects.size(); validateMans && i < size; i++) {
|
||||
XMLObject xo = objects.get(i);
|
||||
@SuppressWarnings("unchecked")
|
||||
List<XMLStructure> content = xo.getContent();
|
||||
int csize = content.size();
|
||||
for (int j = 0; validateMans && j < csize; j++) {
|
||||
@ -307,7 +300,6 @@ public final class DOMXMLSignature extends DOMStructure
|
||||
log.log(java.util.logging.Level.FINE, "validating manifest");
|
||||
}
|
||||
Manifest man = (Manifest)xs;
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Reference> manRefs = man.getReferences();
|
||||
int rsize = manRefs.size();
|
||||
for (int k = 0; validateMans && k < rsize; k++) {
|
||||
@ -348,20 +340,17 @@ public final class DOMXMLSignature extends DOMStructure
|
||||
signatureIdMap = new HashMap<String, XMLStructure>();
|
||||
signatureIdMap.put(id, this);
|
||||
signatureIdMap.put(si.getId(), si);
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Reference> refs = si.getReferences();
|
||||
for (Reference ref : refs) {
|
||||
signatureIdMap.put(ref.getId(), ref);
|
||||
}
|
||||
for (XMLObject obj : objects) {
|
||||
signatureIdMap.put(obj.getId(), obj);
|
||||
@SuppressWarnings("unchecked")
|
||||
List<XMLStructure> content = obj.getContent();
|
||||
for (XMLStructure xs : content) {
|
||||
if (xs instanceof Manifest) {
|
||||
Manifest man = (Manifest)xs;
|
||||
signatureIdMap.put(man.getId(), man);
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Reference> manRefs = man.getReferences();
|
||||
for (Reference ref : manRefs) {
|
||||
allReferences.add(ref);
|
||||
@ -483,7 +472,6 @@ public final class DOMXMLSignature extends DOMStructure
|
||||
// reference dependencies in the XPath Transform - so be on
|
||||
// the safe side, and skip and do at end in the final sweep
|
||||
if (uri.length() == 0) {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Transform> transforms = ref.getTransforms();
|
||||
for (Transform transform : transforms) {
|
||||
String transformAlg = transform.getAlgorithm();
|
||||
|
@ -58,9 +58,8 @@ public final class DOMXMLSignatureFactory extends XMLSignatureFactory {
|
||||
return new DOMXMLSignature(si, ki, null, null, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki,
|
||||
List objects, String id, String signatureValueId) {
|
||||
List<? extends XMLObject> objects, String id, String signatureValueId) {
|
||||
return new DOMXMLSignature(si, ki, objects, id, signatureValueId);
|
||||
}
|
||||
|
||||
@ -68,16 +67,14 @@ public final class DOMXMLSignatureFactory extends XMLSignatureFactory {
|
||||
return newReference(uri, dm, null, null, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public Reference newReference(String uri, DigestMethod dm, List transforms,
|
||||
String type, String id) {
|
||||
public Reference newReference(String uri, DigestMethod dm,
|
||||
List<? extends Transform> transforms, String type, String id) {
|
||||
return new DOMReference(uri, type, dm, transforms, id, getProvider());
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public Reference newReference(String uri, DigestMethod dm,
|
||||
List appliedTransforms, Data result, List transforms, String type,
|
||||
String id) {
|
||||
List<? extends Transform> appliedTransforms, Data result,
|
||||
List<? extends Transform> transforms, String type, String id) {
|
||||
if (appliedTransforms == null) {
|
||||
throw new NullPointerException("appliedTransforms cannot be null");
|
||||
}
|
||||
@ -91,9 +88,9 @@ public final class DOMXMLSignatureFactory extends XMLSignatureFactory {
|
||||
(uri, type, dm, appliedTransforms, result, transforms, id, getProvider());
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public Reference newReference(String uri, DigestMethod dm, List transforms,
|
||||
String type, String id, byte[] digestValue) {
|
||||
public Reference newReference(String uri, DigestMethod dm,
|
||||
List<? extends Transform> transforms, String type, String id,
|
||||
byte[] digestValue) {
|
||||
if (digestValue == null) {
|
||||
throw new NullPointerException("digestValue cannot be null");
|
||||
}
|
||||
@ -101,43 +98,38 @@ public final class DOMXMLSignatureFactory extends XMLSignatureFactory {
|
||||
(uri, type, dm, null, null, transforms, id, digestValue, getProvider());
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public SignedInfo newSignedInfo(CanonicalizationMethod cm,
|
||||
SignatureMethod sm, List references) {
|
||||
SignatureMethod sm, List<? extends Reference> references) {
|
||||
return newSignedInfo(cm, sm, references, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public SignedInfo newSignedInfo(CanonicalizationMethod cm,
|
||||
SignatureMethod sm, List references, String id) {
|
||||
SignatureMethod sm, List<? extends Reference> references, String id) {
|
||||
return new DOMSignedInfo(cm, sm, references, id);
|
||||
}
|
||||
|
||||
// Object factory methods
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public XMLObject newXMLObject(List content, String id, String mimeType,
|
||||
String encoding) {
|
||||
public XMLObject newXMLObject(List<? extends XMLStructure> content,
|
||||
String id, String mimeType, String encoding) {
|
||||
return new DOMXMLObject(content, id, mimeType, encoding);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public Manifest newManifest(List references) {
|
||||
public Manifest newManifest(List<? extends Reference> references) {
|
||||
return newManifest(references, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public Manifest newManifest(List references, String id) {
|
||||
public Manifest newManifest(List<? extends Reference> references,
|
||||
String id) {
|
||||
return new DOMManifest(references, id);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public SignatureProperties newSignatureProperties(List props, String id) {
|
||||
public SignatureProperties newSignatureProperties(
|
||||
List<? extends SignatureProperty> props, String id) {
|
||||
return new DOMSignatureProperties(props, id);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public SignatureProperty newSignatureProperty
|
||||
(List info, String target, String id) {
|
||||
(List<? extends XMLStructure> info, String target, String id) {
|
||||
return new DOMSignatureProperty(info, target, id);
|
||||
}
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user