Merge
This commit is contained in:
commit
8401a88197
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@ -26,6 +26,8 @@
|
|||||||
BUILDDIR = ../../../..
|
BUILDDIR = ../../../..
|
||||||
PACKAGE = com.sun.net.httpserver
|
PACKAGE = com.sun.net.httpserver
|
||||||
PRODUCT = sun
|
PRODUCT = sun
|
||||||
|
JAVAC_MAX_WARNINGS = true
|
||||||
|
JAVAC_WARNINGS_FATAL = true
|
||||||
include $(BUILDDIR)/common/Defs.gmk
|
include $(BUILDDIR)/common/Defs.gmk
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -26,6 +26,9 @@
|
|||||||
BUILDDIR = ../../../..
|
BUILDDIR = ../../../..
|
||||||
PACKAGE = com.sun.net.ssl
|
PACKAGE = com.sun.net.ssl
|
||||||
PRODUCT = sun
|
PRODUCT = sun
|
||||||
|
JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
|
||||||
|
JAVAC_MAX_WARNINGS = true
|
||||||
|
JAVAC_WARNINGS_FATAL = true
|
||||||
include $(BUILDDIR)/common/Defs.gmk
|
include $(BUILDDIR)/common/Defs.gmk
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -74,6 +74,57 @@ SCRIPT_SUFFIX =
|
|||||||
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
||||||
CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
|
CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
|
||||||
|
|
||||||
|
# Default OBJCOPY comes from GNU Binutils on Linux:
|
||||||
|
DEF_OBJCOPY=/usr/bin/objcopy
|
||||||
|
ifdef CROSS_COMPILE_ARCH
|
||||||
|
# don't try to generate .debuginfo files when cross compiling
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
|
||||||
|
"skipping .debuginfo generation.")
|
||||||
|
OBJCOPY=
|
||||||
|
else
|
||||||
|
OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
|
||||||
|
ifneq ($(ALT_OBJCOPY),)
|
||||||
|
_JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
|
||||||
|
# disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
|
||||||
|
OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
|
||||||
|
# The setting of OBJCOPY above enables the JDK build to import
|
||||||
|
# .debuginfo files from the HotSpot build. However, adding FDS
|
||||||
|
# support to the JDK build will occur in phases so a different
|
||||||
|
# make variable is used to indicate that a particular library
|
||||||
|
# supports FDS.
|
||||||
|
|
||||||
|
ifeq ($(OBJCOPY),)
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
|
||||||
|
else
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
|
||||||
|
|
||||||
|
# Library stripping policies for .debuginfo configs:
|
||||||
|
# all_strip - strips everything from the library
|
||||||
|
# min_strip - strips most stuff from the library; leaves minimum symbols
|
||||||
|
# no_strip - does not strip the library at all
|
||||||
|
#
|
||||||
|
# Oracle security policy requires "all_strip". A waiver was granted on
|
||||||
|
# 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
|
||||||
|
#
|
||||||
|
DEF_STRIP_POLICY="min_strip"
|
||||||
|
ifeq ($(ALT_STRIP_POLICY),)
|
||||||
|
STRIP_POLICY=$(DEF_STRIP_POLICY)
|
||||||
|
else
|
||||||
|
STRIP_POLICY=$(ALT_STRIP_POLICY)
|
||||||
|
endif
|
||||||
|
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Default optimization
|
# Default optimization
|
||||||
#
|
#
|
||||||
@ -359,6 +410,7 @@ JA_TARGET_ENCODINGS = UTF-8
|
|||||||
# Settings for the JDI - Serviceability Agent binding.
|
# Settings for the JDI - Serviceability Agent binding.
|
||||||
HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
|
HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
|
||||||
SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
|
SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
|
||||||
|
SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
|
||||||
|
|
||||||
# The JDI - Serviceability Agent binding is not currently supported
|
# The JDI - Serviceability Agent binding is not currently supported
|
||||||
# on Linux-ia64.
|
# on Linux-ia64.
|
||||||
|
@ -74,6 +74,69 @@ SCRIPT_SUFFIX =
|
|||||||
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
||||||
CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
|
CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
|
||||||
|
|
||||||
|
ifdef ENABLE_FULL_DEBUG_SYMBOLS
|
||||||
|
# Only check for Full Debug Symbols support on Solaris if it is
|
||||||
|
# specifically enabled. Hopefully, it can be enabled by default
|
||||||
|
# once the .debuginfo size issues are worked out.
|
||||||
|
|
||||||
|
# Default OBJCOPY comes from the SUNWbinutils package:
|
||||||
|
DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
|
||||||
|
ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
|
||||||
|
# On Solaris AMD64/X64, gobjcopy is not happy and fails:
|
||||||
|
#
|
||||||
|
# usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
|
||||||
|
# BFD: stKPaiop: Not enough room for program headers, try linking with -N
|
||||||
|
# /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
|
||||||
|
# BFD: stKPaiop: Not enough room for program headers, try linking with -N
|
||||||
|
# /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
|
||||||
|
# BFD: stKPaiop: Not enough room for program headers, try linking with -N
|
||||||
|
# /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
|
||||||
|
OBJCOPY=
|
||||||
|
else
|
||||||
|
OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
|
||||||
|
ifneq ($(ALT_OBJCOPY),)
|
||||||
|
_JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
|
||||||
|
# disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
|
||||||
|
OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
|
||||||
|
# The setting of OBJCOPY above enables the JDK build to import
|
||||||
|
# .debuginfo files from the HotSpot build. However, adding FDS
|
||||||
|
# support to the JDK build will occur in phases so a different
|
||||||
|
# make variable is used to indicate that a particular library
|
||||||
|
# supports FDS.
|
||||||
|
|
||||||
|
ifeq ($(OBJCOPY),)
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
|
||||||
|
else
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
|
||||||
|
|
||||||
|
# Library stripping policies for .debuginfo configs:
|
||||||
|
# all_strip - strips everything from the library
|
||||||
|
# min_strip - strips most stuff from the library; leaves minimum symbols
|
||||||
|
# no_strip - does not strip the library at all
|
||||||
|
#
|
||||||
|
# Oracle security policy requires "all_strip". A waiver was granted on
|
||||||
|
# 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
|
||||||
|
#
|
||||||
|
DEF_STRIP_POLICY="min_strip"
|
||||||
|
ifeq ($(ALT_STRIP_POLICY),)
|
||||||
|
STRIP_POLICY=$(DEF_STRIP_POLICY)
|
||||||
|
else
|
||||||
|
STRIP_POLICY=$(ALT_STRIP_POLICY)
|
||||||
|
endif
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Java default optimization (-x04/-O2) etc. Applies to the VM.
|
# Java default optimization (-x04/-O2) etc. Applies to the VM.
|
||||||
#
|
#
|
||||||
@ -684,5 +747,6 @@ JA_TARGET_ENCODINGS = eucJP UTF-8 PCK
|
|||||||
# Settings for the JDI - Serviceability Agent binding.
|
# Settings for the JDI - Serviceability Agent binding.
|
||||||
HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
|
HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
|
||||||
SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
|
SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
|
||||||
|
SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
|
||||||
INCLUDE_SA=true
|
INCLUDE_SA=true
|
||||||
|
|
||||||
|
@ -208,7 +208,6 @@ JAVA_JAVA_java = \
|
|||||||
java/util/Observable.java \
|
java/util/Observable.java \
|
||||||
java/util/Observer.java \
|
java/util/Observer.java \
|
||||||
java/util/Properties.java \
|
java/util/Properties.java \
|
||||||
java/util/XMLUtils.java \
|
|
||||||
java/util/InvalidPropertiesFormatException.java \
|
java/util/InvalidPropertiesFormatException.java \
|
||||||
java/util/PropertyPermission.java \
|
java/util/PropertyPermission.java \
|
||||||
java/util/PropertyResourceBundle.java \
|
java/util/PropertyResourceBundle.java \
|
||||||
|
@ -27,6 +27,9 @@ BUILDDIR = ../..
|
|||||||
PACKAGE = java.net
|
PACKAGE = java.net
|
||||||
LIBRARY = net
|
LIBRARY = net
|
||||||
PRODUCT = sun
|
PRODUCT = sun
|
||||||
|
JAVAC_MAX_WARNINGS = true
|
||||||
|
JAVAC_WARNINGS_FATAL = true
|
||||||
|
JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
|
||||||
include $(BUILDDIR)/common/Defs.gmk
|
include $(BUILDDIR)/common/Defs.gmk
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -206,7 +206,6 @@ FILES_java += \
|
|||||||
sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
|
sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
|
||||||
sun/nio/fs/LinuxNativeDispatcher.java \
|
sun/nio/fs/LinuxNativeDispatcher.java \
|
||||||
sun/nio/fs/LinuxWatchService.java \
|
sun/nio/fs/LinuxWatchService.java \
|
||||||
sun/nio/fs/PollingWatchService.java \
|
|
||||||
sun/nio/fs/UnixChannelFactory.java \
|
sun/nio/fs/UnixChannelFactory.java \
|
||||||
sun/nio/fs/UnixCopyFile.java \
|
sun/nio/fs/UnixCopyFile.java \
|
||||||
sun/nio/fs/UnixDirectoryStream.java \
|
sun/nio/fs/UnixDirectoryStream.java \
|
||||||
|
@ -58,6 +58,11 @@ LIBJSIG_NAME = $(LIB_PREFIX)jsig.$(LIBRARY_SUFFIX)
|
|||||||
JVMDB_NAME = $(LIB_PREFIX)jvm$(DB_SUFFIX).$(LIBRARY_SUFFIX)
|
JVMDB_NAME = $(LIB_PREFIX)jvm$(DB_SUFFIX).$(LIBRARY_SUFFIX)
|
||||||
JVMDTRACE_NAME = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).$(LIBRARY_SUFFIX)
|
JVMDTRACE_NAME = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).$(LIBRARY_SUFFIX)
|
||||||
|
|
||||||
|
JVM_DEBUGINFO_NAME = $(LIB_PREFIX)jvm.debuginfo
|
||||||
|
LIBJSIG_DEBUGINFO_NAME = $(LIB_PREFIX)jsig.debuginfo
|
||||||
|
JVMDB_DEBUGINFO_NAME = $(LIB_PREFIX)jvm$(DB_SUFFIX).debuginfo
|
||||||
|
JVMDTRACE_DEBUGINFO_NAME = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).debuginfo
|
||||||
|
|
||||||
CLASSSHARINGDATA_DIR = $(BUILDDIR)/tools/sharing
|
CLASSSHARINGDATA_DIR = $(BUILDDIR)/tools/sharing
|
||||||
|
|
||||||
# Needed to do file copy
|
# Needed to do file copy
|
||||||
@ -79,6 +84,12 @@ INTERNAL_IMPORT_LIST = $(LIBDIR)/classlist
|
|||||||
ifndef BUILD_CLIENT_ONLY
|
ifndef BUILD_CLIENT_ONLY
|
||||||
IMPORT_LIST = $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME) \
|
IMPORT_LIST = $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME) \
|
||||||
$(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
IMPORT_LIST =
|
IMPORT_LIST =
|
||||||
endif
|
endif
|
||||||
@ -88,6 +99,12 @@ ifneq ($(ZERO_BUILD), true)
|
|||||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME) \
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME) \
|
||||||
$(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -157,16 +174,40 @@ else # PLATFORM
|
|||||||
# NOT Windows vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv NOT Windows
|
# NOT Windows vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv NOT Windows
|
||||||
|
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
ifndef BUILD_CLIENT_ONLY
|
ifndef BUILD_CLIENT_ONLY
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain the target of the symlink
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PLATFORM), solaris)
|
ifeq ($(PLATFORM), solaris)
|
||||||
ifndef BUILD_CLIENT_ONLY
|
ifndef BUILD_CLIENT_ONLY
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
# The conditional can be removed when import JDKs contain these files.
|
# The conditional can be removed when import JDKs contain these files.
|
||||||
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)),)
|
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)),)
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
$(warning WARNING: $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME) not found!)
|
$(warning WARNING: $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME) not found!)
|
||||||
endif
|
endif
|
||||||
@ -177,17 +218,37 @@ ifneq ($(ZERO_BUILD), true)
|
|||||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||||
|
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain the target of the symlink
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(PLATFORM), solaris)
|
ifeq ($(PLATFORM), solaris)
|
||||||
# solaris vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv solaris
|
# solaris vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv solaris
|
||||||
|
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# The conditional can be removed when import JDKs contain these files.
|
# The conditional can be removed when import JDKs contain these files.
|
||||||
ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)),)
|
ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)),)
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME)
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME)
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
$(warning WARNING: $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME) not found!)
|
$(warning WARNING: $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME) not found!)
|
||||||
endif
|
endif
|
||||||
@ -196,6 +257,12 @@ ifndef BUILD_CLIENT_ONLY
|
|||||||
# The conditional can be removed when import JDKs contain these files.
|
# The conditional can be removed when import JDKs contain these files.
|
||||||
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)),)
|
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)),)
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
$(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME) not found!)
|
$(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME) not found!)
|
||||||
endif
|
endif
|
||||||
@ -203,6 +270,12 @@ ifndef BUILD_CLIENT_ONLY
|
|||||||
# The conditional can be removed when import JDKs contain these files.
|
# The conditional can be removed when import JDKs contain these files.
|
||||||
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME)),)
|
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME)),)
|
||||||
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_NAME)
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_NAME)
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
$(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME) not found!)
|
$(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME) not found!)
|
||||||
endif
|
endif
|
||||||
@ -229,6 +302,11 @@ $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_NAM
|
|||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
@$(call binary_file_verification,$@)
|
@$(call binary_file_verification,$@)
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
endif
|
||||||
|
|
||||||
$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_NAME): $(HOTSPOT_KERNEL_PATH)/$(JVM_NAME)
|
$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_NAME): $(HOTSPOT_KERNEL_PATH)/$(JVM_NAME)
|
||||||
$(install-file)
|
$(install-file)
|
||||||
@$(call binary_file_verification,$@)
|
@$(call binary_file_verification,$@)
|
||||||
@ -237,15 +315,33 @@ $(LIB_LOCATION)/$(LIBJSIG_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJ
|
|||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
@$(call binary_file_verification,$@)
|
@$(call binary_file_verification,$@)
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef BUILD_CLIENT_ONLY
|
ifndef BUILD_CLIENT_ONLY
|
||||||
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME) \
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME) \
|
||||||
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME):
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME):
|
||||||
@$(prep-target)
|
@$(prep-target)
|
||||||
$(call install-sym-link, ../$(LIBJSIG_NAME))
|
$(call install-sym-link, ../$(LIBJSIG_NAME))
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME) \
|
||||||
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME):
|
||||||
|
@$(prep-target)
|
||||||
|
$(call install-sym-link, ../$(LIBJSIG_DEBUGINFO_NAME))
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME):
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME):
|
||||||
@$(prep-target)
|
@$(prep-target)
|
||||||
$(call install-sym-link, ../$(LIBJSIG_NAME))
|
$(call install-sym-link, ../$(LIBJSIG_NAME))
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME):
|
||||||
|
@$(prep-target)
|
||||||
|
$(call install-sym-link, ../$(LIBJSIG_DEBUGINFO_NAME))
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_NAME)
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_NAME)
|
||||||
@ -256,6 +352,14 @@ $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/64/$
|
|||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
@$(call binary_file_verification,$@)
|
@$(call binary_file_verification,$@)
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
|
||||||
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDB_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef BUILD_CLIENT_ONLY
|
ifndef BUILD_CLIENT_ONLY
|
||||||
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME)
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME)
|
||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
@ -264,6 +368,14 @@ $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB
|
|||||||
$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)
|
||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
@$(call binary_file_verification,$@)
|
@$(call binary_file_verification,$@)
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
|
||||||
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)
|
||||||
@ -274,6 +386,14 @@ $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/
|
|||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
@$(call binary_file_verification,$@)
|
@$(call binary_file_verification,$@)
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
|
||||||
|
$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef BUILD_CLIENT_ONLY
|
ifndef BUILD_CLIENT_ONLY
|
||||||
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)
|
||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
@ -287,6 +407,17 @@ $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_NAM
|
|||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
@$(call binary_file_verification,$@)
|
@$(call binary_file_verification,$@)
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
|
||||||
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
|
||||||
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
endif
|
||||||
|
|
||||||
$(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt : $(HOTSPOT_SERVER_PATH)/Xusage.txt
|
$(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt : $(HOTSPOT_SERVER_PATH)/Xusage.txt
|
||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
endif
|
endif
|
||||||
|
@ -56,6 +56,12 @@ ifeq ($(INCLUDE_SA), true)
|
|||||||
IMPORT_LIST += $(LIB_LOCATION)/$(SAMAP_NAME) \
|
IMPORT_LIST += $(LIB_LOCATION)/$(SAMAP_NAME) \
|
||||||
$(LIB_LOCATION)/$(SAPDB_NAME)
|
$(LIB_LOCATION)/$(SAPDB_NAME)
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
# the import JDK may not contain .debuginfo files
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(SA_DEBUGINFO_NAME)),)
|
||||||
|
IMPORT_LIST += $(LIB_LOCATION)/$(SA_DEBUGINFO_NAME)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
endif # INCLUDE_SA
|
endif # INCLUDE_SA
|
||||||
|
|
||||||
|
|
||||||
@ -79,6 +85,11 @@ $(LIB_LOCATION)/$(SAPDB_NAME): $(HOTSPOT_SALIB_PATH)/$(SAPDB_NAME)
|
|||||||
$(LIB_LOCATION)/$(SAMAP_NAME): $(HOTSPOT_SALIB_PATH)/$(SAMAP_NAME)
|
$(LIB_LOCATION)/$(SAMAP_NAME): $(HOTSPOT_SALIB_PATH)/$(SAMAP_NAME)
|
||||||
$(install-import-file)
|
$(install-import-file)
|
||||||
endif # windows
|
endif # windows
|
||||||
|
|
||||||
|
ifneq ($(OBJCOPY),)
|
||||||
|
$(LIB_LOCATION)/$(SA_DEBUGINFO_NAME): $(HOTSPOT_SALIB_PATH)/$(SA_DEBUGINFO_NAME)
|
||||||
|
$(install-import-file)
|
||||||
|
endif
|
||||||
endif # INCLUDE_SA
|
endif # INCLUDE_SA
|
||||||
|
|
||||||
all: $(IMPORT_LIST)
|
all: $(IMPORT_LIST)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
BUILDDIR = ../..
|
BUILDDIR = ../..
|
||||||
JAVAC_MAX_WARNINGS = true
|
|
||||||
include $(BUILDDIR)/common/Defs.gmk
|
include $(BUILDDIR)/common/Defs.gmk
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -5,7 +5,7 @@ Working on OpenJDK using NetBeans
|
|||||||
|
|
||||||
Getting Started
|
Getting Started
|
||||||
In addition to the source bundle for Open JDK, you'll need to download
|
In addition to the source bundle for Open JDK, you'll need to download
|
||||||
and install copies of the JDK and of NetBeans 6. And if you want to run
|
and install copies of the JDK and of NetBeans. And if you want to run
|
||||||
tests on the JDK (you do want to run tests, right?), you'll need to
|
tests on the JDK (you do want to run tests, right?), you'll need to
|
||||||
install the jtreg test harness.
|
install the jtreg test harness.
|
||||||
|
|
||||||
@ -20,30 +20,28 @@ Getting Started
|
|||||||
|
|
||||||
Downloading the JDK
|
Downloading the JDK
|
||||||
You've probably done this a million times. Download and install it
|
You've probably done this a million times. Download and install it
|
||||||
from http://java.sun.com/javase
|
from http://www.oracle.com/technetwork/java/javase/overview/index.html
|
||||||
|
|
||||||
Downloading the OpenJDK sources
|
Downloading the OpenJDK sources
|
||||||
Since you're reading this, d you've already downloaded the OpenJDK
|
Since you're reading this, d you've already downloaded the OpenJDK
|
||||||
source bundle. Later in this document we'll refer to the location
|
source bundle. Later in this document we'll refer to the location
|
||||||
where you installed the Open JDK sources as *install-dir*.
|
where you installed the Open JDK sources as *install-dir*.
|
||||||
|
|
||||||
Downloading a pre-built, JDK 7
|
Downloading a pre-built, JDK 8
|
||||||
This will be necessary to do builds of some of the projects. In
|
This will be necessary to do builds of some of the projects. In
|
||||||
general, you want to download and install a pre-built JDK that
|
general, you want to download and install a pre-built JDK that
|
||||||
corresponds to the OpenJDK sources you download. Building the entire
|
corresponds to the OpenJDK sources you download. Building the entire
|
||||||
OpenJDK depends on a few parts of the pre-built JDK. Get this from
|
OpenJDK depends on a few parts of the pre-built JDK. Get this from
|
||||||
http://download.java.net/jdk7/binaries
|
http://download.java.net/jdk8/binaries
|
||||||
|
|
||||||
Note: For working on certain projects, like JMX and JConsole, you
|
Note: For working on certain projects, like JMX and JConsole, you
|
||||||
may find convenient to use a pre-built version of JDK 7 (or
|
may find convenient to use a pre-built version of JDK 8 (or
|
||||||
OpenJDK) rather than building your own. This will allow you
|
OpenJDK) rather than building your own. This will allow you
|
||||||
to build only that part of the OpenJDK sources which correspond
|
to build only that part of the OpenJDK sources which correspond
|
||||||
to that project.
|
to that project.
|
||||||
|
|
||||||
NetBeans 6
|
NetBeans 7.0 or later
|
||||||
Yep, NetBeans *6*. Nope, not FCS'd yet. We're on the edge here,
|
Older versions may also work but are unsupported.
|
||||||
enjoy it! Get the latest working development build of NetBeans 6
|
|
||||||
from http://netbeans.org
|
|
||||||
|
|
||||||
jtreg
|
jtreg
|
||||||
"jtreg" is the test harness for running OpenJDK's regression tests.
|
"jtreg" is the test harness for running OpenJDK's regression tests.
|
||||||
@ -51,7 +49,7 @@ Getting Started
|
|||||||
|
|
||||||
Ant
|
Ant
|
||||||
NetBeans comes with ant, but if you use a separately-installed copy
|
NetBeans comes with ant, but if you use a separately-installed copy
|
||||||
please make sure that it is at least version 1.7.0.
|
please make sure that it is at least version 1.8.1.
|
||||||
|
|
||||||
Configuring
|
Configuring
|
||||||
Building OpenJDK is hard and complex. No, strike that. While it's not
|
Building OpenJDK is hard and complex. No, strike that. While it's not
|
||||||
@ -92,8 +90,8 @@ Configuring
|
|||||||
situation:
|
situation:
|
||||||
|
|
||||||
make.options=\
|
make.options=\
|
||||||
ALT_BOOTDIR=/home/me/bin/jdk1.6.0 \
|
ALT_BOOTDIR=/home/me/bin/jdk1.7.0 \
|
||||||
ALT_JDK_IMPORT_PATH=/home/me/bin/jdk1.7.0 \
|
ALT_JDK_IMPORT_PATH=/home/me/bin/jdk1.8.0 \
|
||||||
OPENJDK=true
|
OPENJDK=true
|
||||||
|
|
||||||
The trailing '\' are important, so that make gets the above as a
|
The trailing '\' are important, so that make gets the above as a
|
||||||
@ -107,7 +105,7 @@ Configuring
|
|||||||
Windows-specific configuration
|
Windows-specific configuration
|
||||||
First, please note that the entire JDK cannot currently be built on
|
First, please note that the entire JDK cannot currently be built on
|
||||||
Windows platforms. This will likely limit your ability to build
|
Windows platforms. This will likely limit your ability to build
|
||||||
make-based projects. See
|
make-based projects. See
|
||||||
*install-dir*/jdk/make/README-builds.html
|
*install-dir*/jdk/make/README-builds.html
|
||||||
for full information on issues with building on the Windows platform.
|
for full information on issues with building on the Windows platform.
|
||||||
|
|
||||||
@ -141,7 +139,7 @@ Configuring
|
|||||||
editor.
|
editor.
|
||||||
|
|
||||||
Locale Requirements
|
Locale Requirements
|
||||||
To build the Open JDK sources, be certain that you are using the "C"
|
To build the OpenJDK sources, be certain that you are using the "C"
|
||||||
locale on Unix (R) platforms, or "English (United States)" locale on
|
locale on Unix (R) platforms, or "English (United States)" locale on
|
||||||
Windows.
|
Windows.
|
||||||
|
|
||||||
@ -220,13 +218,13 @@ Provided NetBeans projects
|
|||||||
running and debugging JConsole.
|
running and debugging JConsole.
|
||||||
|
|
||||||
This ant-based project does *not* require that you build the jdk
|
This ant-based project does *not* require that you build the jdk
|
||||||
project first, provided that you use a pre-built version of JDK 7.
|
project first, provided that you use a pre-built version of JDK 7.
|
||||||
|
|
||||||
Java (TM) Management Extensions (JMX(TM)) API (directory "jmx")
|
Java (TM) Management Extensions (JMX(TM)) API (directory "jmx")
|
||||||
For working on JMX source code. Creates ../dist/lib/jmx.jar.
|
For working on JMX source code. Creates ../dist/lib/jmx.jar.
|
||||||
|
|
||||||
This ant-based project does *not* require that you build the jdk
|
This ant-based project does *not* require that you build the jdk
|
||||||
project first, provided that you use a pre-built version of JDK 7.
|
project first, provided that you use a pre-built version of JDK 7.
|
||||||
|
|
||||||
Jar & Zip (directory "jarzip")
|
Jar & Zip (directory "jarzip")
|
||||||
For working on jar & zip. It builds the zip library (including
|
For working on jar & zip. It builds the zip library (including
|
||||||
@ -242,12 +240,12 @@ Provided NetBeans projects
|
|||||||
running and debugging the SampleTree demo.
|
running and debugging the SampleTree demo.
|
||||||
|
|
||||||
This ant-based project does *not* require that you build the jdk
|
This ant-based project does *not* require that you build the jdk
|
||||||
project first, provided that you use a pre-built version of JDK 7.
|
project first, provided that you use a pre-built version of JDK 7.
|
||||||
|
|
||||||
In addition, there are projects for building the compiler, javadoc,
|
In addition, there are projects for building the compiler, javadoc,
|
||||||
and related tools, in the OpenJDK langtools component. These
|
and related tools, in the OpenJDK langtools component. These
|
||||||
projects are separate from those described here, and have their
|
projects are separate from those described here, and have their
|
||||||
own set of guidelines and conventions. For more details, see the
|
own set of guidelines and conventions. For more details, see the
|
||||||
README files in make/netbeans in the OpenJDK langtools component.
|
README files in make/netbeans in the OpenJDK langtools component.
|
||||||
|
|
||||||
Running Tests
|
Running Tests
|
||||||
@ -603,13 +601,6 @@ Appendix 1: Customizations
|
|||||||
* -clean-make
|
* -clean-make
|
||||||
|
|
||||||
Known Issues
|
Known Issues
|
||||||
Tests won't run: waiting for lock
|
|
||||||
Occasionally when running tests, there will be a delay, followed by a
|
|
||||||
message like this:
|
|
||||||
Waiting to lock test result cache for
|
|
||||||
/tmp/jdk/build/linux-i586/jtreg/jconsole/JTwork for 20 seconds
|
|
||||||
The workaround is to stop the tests, rm -rf the offending jtreg/<project>
|
|
||||||
directory by hand, and re-run the tests.
|
|
||||||
|
|
||||||
Can't run nor debug a single test in the JConsole test
|
Can't run nor debug a single test in the JConsole test
|
||||||
In most projects, you can run a single test by opening it in the editor,
|
In most projects, you can run a single test by opening it in the editor,
|
||||||
|
@ -31,8 +31,8 @@
|
|||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<source-folder style="packages">
|
<source-folder style="tree">
|
||||||
<label>Closed-Source Packages</label>
|
<label>Closed Sources</label>
|
||||||
<location>${root}/src/closed/share/classes</location>
|
<location>${root}/src/closed/share/classes</location>
|
||||||
<includes>${includes}</includes>
|
<includes>${includes}</includes>
|
||||||
<excludes>${excludes}</excludes>
|
<excludes>${excludes}</excludes>
|
||||||
|
@ -38,7 +38,12 @@
|
|||||||
<package-root>${root}/src/solaris/classes</package-root>
|
<package-root>${root}/src/solaris/classes</package-root>
|
||||||
<classpath mode="boot">${bootstrap.jdk}/jre/lib/rt.jar</classpath>
|
<classpath mode="boot">${bootstrap.jdk}/jre/lib/rt.jar</classpath>
|
||||||
<built-to>${root}/build/${platform}-${arch}/classes</built-to>
|
<built-to>${root}/build/${platform}-${arch}/classes</built-to>
|
||||||
<javadoc-built-to>${root}/build/javadoc/${name}</javadoc-built-to>
|
<javadoc-built-to>${root}/build/${platform}-${arch}/docs/api</javadoc-built-to>
|
||||||
|
<source-level>1.7</source-level>
|
||||||
|
</compilation-unit>
|
||||||
|
<compilation-unit>
|
||||||
|
<package-root>${root}/test</package-root>
|
||||||
|
<unit-tests/>
|
||||||
<source-level>1.7</source-level>
|
<source-level>1.7</source-level>
|
||||||
</compilation-unit>
|
</compilation-unit>
|
||||||
</java-data>
|
</java-data>
|
||||||
|
@ -36,7 +36,12 @@
|
|||||||
<package-root>${root}/src/share/classes</package-root>
|
<package-root>${root}/src/share/classes</package-root>
|
||||||
<classpath mode="boot">${bootstrap.jdk}/jre/lib/rt.jar</classpath>
|
<classpath mode="boot">${bootstrap.jdk}/jre/lib/rt.jar</classpath>
|
||||||
<built-to>${root}/build/${platform}-${arch}/classes</built-to>
|
<built-to>${root}/build/${platform}-${arch}/classes</built-to>
|
||||||
<javadoc-built-to>${root}/build/javadoc/${name}</javadoc-built-to>
|
<javadoc-built-to>${root}/build/${platform}-${arch}/docs/api</javadoc-built-to>
|
||||||
|
<source-level>1.7</source-level>
|
||||||
|
</compilation-unit>
|
||||||
|
<compilation-unit>
|
||||||
|
<package-root>${root}/test</package-root>
|
||||||
|
<unit-tests/>
|
||||||
<source-level>1.7</source-level>
|
<source-level>1.7</source-level>
|
||||||
</compilation-unit>
|
</compilation-unit>
|
||||||
</java-data>
|
</java-data>
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<source-folder style="packages">
|
<source-folder style="tree">
|
||||||
<label>Tests</label>
|
<label>Tests</label>
|
||||||
<location>${root}/test</location>
|
<location>${root}/test</location>
|
||||||
<includes>${jtreg.tests}</includes>
|
<includes>${jtreg.tests}</includes>
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<source-folder style="packages">
|
<source-folder style="tree">
|
||||||
<label>Samples</label>
|
<label>Samples</label>
|
||||||
<location>${root}/src/share/sample</location>
|
<location>${root}/src/share/sample</location>
|
||||||
<includes>${samples}</includes>
|
<includes>${samples}</includes>
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<source-folder style="packages">
|
<source-folder style="tree">
|
||||||
<label>Sources for All Platforms</label>
|
<label>Sources for All Platforms</label>
|
||||||
<location>${root}/src/share/classes</location>
|
<location>${root}/src/share/classes</location>
|
||||||
<includes>${includes}</includes>
|
<includes>${includes}</includes>
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
UNIX is a registered trademark in the United States and other countries,
|
UNIX is a registered trademark in the United States and other countries,
|
||||||
exclusively licensed through X/Open Company, Ltd.
|
exclusively licensed through X/Open Company, Ltd.
|
||||||
-->
|
-->
|
||||||
<source-folder style="packages">
|
<source-folder style="tree">
|
||||||
<label>Sources for Unix® Platform</label>
|
<label>Sources for Unix® Platform</label>
|
||||||
<location>${root}/src/solaris/classes</location>
|
<location>${root}/src/solaris/classes</location>
|
||||||
<includes>${includes}</includes>
|
<includes>${includes}</includes>
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<source-folder style="packages">
|
<source-folder style="tree">
|
||||||
<label>Sources for Windows Platform</label>
|
<label>Sources for Windows Platform</label>
|
||||||
<location>${root}/src/windows/classes</location>
|
<location>${root}/src/windows/classes</location>
|
||||||
<includes>${includes}</includes>
|
<includes>${includes}</includes>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -36,11 +36,13 @@
|
|||||||
<!ENTITY share-sources SYSTEM "../../common/share-sources.ent">
|
<!ENTITY share-sources SYSTEM "../../common/share-sources.ent">
|
||||||
<!ENTITY unix-sources SYSTEM "../../common/unix-sources.ent">
|
<!ENTITY unix-sources SYSTEM "../../common/unix-sources.ent">
|
||||||
<!ENTITY windows-sources SYSTEM "../../common/windows-sources.ent">
|
<!ENTITY windows-sources SYSTEM "../../common/windows-sources.ent">
|
||||||
|
<!ENTITY jtreg-sources SYSTEM "../../common/jtreg-sources.ent">
|
||||||
<!ENTITY build-folder SYSTEM "../../common/build-folder.ent">
|
<!ENTITY build-folder SYSTEM "../../common/build-folder.ent">
|
||||||
<!ENTITY standard-bindings SYSTEM "../../common/standard-bindings.ent">
|
<!ENTITY standard-bindings SYSTEM "../../common/standard-bindings.ent">
|
||||||
<!ENTITY share-view SYSTEM "../../common/share-view.ent">
|
<!ENTITY share-view SYSTEM "../../common/share-view.ent">
|
||||||
<!ENTITY unix-view SYSTEM "../../common/unix-view.ent">
|
<!ENTITY unix-view SYSTEM "../../common/unix-view.ent">
|
||||||
<!ENTITY windows-view SYSTEM "../../common/windows-view.ent">
|
<!ENTITY windows-view SYSTEM "../../common/windows-view.ent">
|
||||||
|
<!ENTITY jtreg-view SYSTEM "../../common/jtreg-view.ent">
|
||||||
<!ENTITY file-view SYSTEM "../../common/file-view.ent">
|
<!ENTITY file-view SYSTEM "../../common/file-view.ent">
|
||||||
<!ENTITY standard-actions SYSTEM "../../common/standard-actions.ent">
|
<!ENTITY standard-actions SYSTEM "../../common/standard-actions.ent">
|
||||||
<!ENTITY java-data-native SYSTEM "../../common/java-data-native.ent">
|
<!ENTITY java-data-native SYSTEM "../../common/java-data-native.ent">
|
||||||
@ -59,6 +61,7 @@
|
|||||||
&unix-sources;
|
&unix-sources;
|
||||||
&windows-sources;
|
&windows-sources;
|
||||||
&build-folder;
|
&build-folder;
|
||||||
|
&jtreg-sources;
|
||||||
</folders>
|
</folders>
|
||||||
<ide-actions>
|
<ide-actions>
|
||||||
<action name="build">
|
<action name="build">
|
||||||
@ -82,6 +85,7 @@
|
|||||||
&share-view;
|
&share-view;
|
||||||
&unix-view;
|
&unix-view;
|
||||||
&windows-view;
|
&windows-view;
|
||||||
|
&jtreg-view;
|
||||||
&file-view;
|
&file-view;
|
||||||
</items>
|
</items>
|
||||||
<context-menu>
|
<context-menu>
|
||||||
|
@ -68,7 +68,7 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# nio need to be compiled before awt to have all charsets ready
|
# nio need to be compiled before awt to have all charsets ready
|
||||||
SUBDIRS = jar security javazic misc net nio text launcher
|
SUBDIRS = jar security javazic misc net nio text util launcher
|
||||||
|
|
||||||
ifdef BUILD_HEADLESS_ONLY
|
ifdef BUILD_HEADLESS_ONLY
|
||||||
DISPLAY_LIBS = awt $(HEADLESS_SUBDIR)
|
DISPLAY_LIBS = awt $(HEADLESS_SUBDIR)
|
||||||
|
@ -21,4 +21,4 @@
|
|||||||
# or visit www.oracle.com if you need additional information or have any
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
# questions.
|
# questions.
|
||||||
#
|
#
|
||||||
tzdata2011g
|
tzdata2011j
|
||||||
|
@ -80,7 +80,7 @@
|
|||||||
# I invented the following abbreviations; corrections are welcome!
|
# I invented the following abbreviations; corrections are welcome!
|
||||||
# 2:00 WAST West Africa Summer Time
|
# 2:00 WAST West Africa Summer Time
|
||||||
# 2:30 BEAT British East Africa Time (no longer used)
|
# 2:30 BEAT British East Africa Time (no longer used)
|
||||||
# 2:44:45 BEAUT British East Africa Unified Time (no longer used)
|
# 2:45 BEAUT British East Africa Unified Time (no longer used)
|
||||||
# 3:00 CAST Central Africa Summer Time (no longer used)
|
# 3:00 CAST Central Africa Summer Time (no longer used)
|
||||||
# 3:00 SAST South Africa Summer Time (no longer used)
|
# 3:00 SAST South Africa Summer Time (no longer used)
|
||||||
# 3:00 EAT East Africa Time
|
# 3:00 EAT East Africa Time
|
||||||
@ -418,7 +418,7 @@ Zone Africa/Bissau -1:02:20 - LMT 1911 May 26
|
|||||||
Zone Africa/Nairobi 2:27:16 - LMT 1928 Jul
|
Zone Africa/Nairobi 2:27:16 - LMT 1928 Jul
|
||||||
3:00 - EAT 1930
|
3:00 - EAT 1930
|
||||||
2:30 - BEAT 1940
|
2:30 - BEAT 1940
|
||||||
2:44:45 - BEAUT 1960
|
2:45 - BEAUT 1960
|
||||||
3:00 - EAT
|
3:00 - EAT
|
||||||
|
|
||||||
# Lesotho
|
# Lesotho
|
||||||
@ -979,6 +979,11 @@ Zone Africa/Khartoum 2:10:08 - LMT 1931
|
|||||||
2:00 Sudan CA%sT 2000 Jan 15 12:00
|
2:00 Sudan CA%sT 2000 Jan 15 12:00
|
||||||
3:00 - EAT
|
3:00 - EAT
|
||||||
|
|
||||||
|
# South Sudan
|
||||||
|
Zone Africa/Juba 2:06:24 - LMT 1931
|
||||||
|
2:00 Sudan CA%sT 2000 Jan 15 12:00
|
||||||
|
3:00 - EAT
|
||||||
|
|
||||||
# Swaziland
|
# Swaziland
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
Zone Africa/Mbabane 2:04:24 - LMT 1903 Mar
|
Zone Africa/Mbabane 2:04:24 - LMT 1903 Mar
|
||||||
@ -988,7 +993,7 @@ Zone Africa/Mbabane 2:04:24 - LMT 1903 Mar
|
|||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
Zone Africa/Dar_es_Salaam 2:37:08 - LMT 1931
|
Zone Africa/Dar_es_Salaam 2:37:08 - LMT 1931
|
||||||
3:00 - EAT 1948
|
3:00 - EAT 1948
|
||||||
2:44:45 - BEAUT 1961
|
2:45 - BEAUT 1961
|
||||||
3:00 - EAT
|
3:00 - EAT
|
||||||
|
|
||||||
# Togo
|
# Togo
|
||||||
@ -1114,7 +1119,7 @@ Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
|
|||||||
Zone Africa/Kampala 2:09:40 - LMT 1928 Jul
|
Zone Africa/Kampala 2:09:40 - LMT 1928 Jul
|
||||||
3:00 - EAT 1930
|
3:00 - EAT 1930
|
||||||
2:30 - BEAT 1948
|
2:30 - BEAT 1948
|
||||||
2:44:45 - BEAUT 1957
|
2:45 - BEAUT 1957
|
||||||
3:00 - EAT
|
3:00 - EAT
|
||||||
|
|
||||||
# Zambia
|
# Zambia
|
||||||
|
@ -41,18 +41,6 @@
|
|||||||
# I made up all time zone abbreviations mentioned here; corrections welcome!
|
# I made up all time zone abbreviations mentioned here; corrections welcome!
|
||||||
# FORMAT is `zzz' and GMTOFF is 0 for locations while uninhabited.
|
# FORMAT is `zzz' and GMTOFF is 0 for locations while uninhabited.
|
||||||
|
|
||||||
# These rules are stolen from the `europe' file.
|
|
||||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
|
||||||
Rule RussAQ 1981 1984 - Apr 1 0:00 1:00 S
|
|
||||||
Rule RussAQ 1981 1983 - Oct 1 0:00 0 -
|
|
||||||
Rule RussAQ 1984 1991 - Sep lastSun 2:00s 0 -
|
|
||||||
Rule RussAQ 1985 1991 - Mar lastSun 2:00s 1:00 S
|
|
||||||
Rule RussAQ 1992 only - Mar lastSat 23:00 1:00 S
|
|
||||||
Rule RussAQ 1992 only - Sep lastSat 23:00 0 -
|
|
||||||
Rule RussAQ 1993 max - Mar lastSun 2:00s 1:00 S
|
|
||||||
Rule RussAQ 1993 1995 - Sep lastSun 2:00s 0 -
|
|
||||||
Rule RussAQ 1996 max - Oct lastSun 2:00s 0 -
|
|
||||||
|
|
||||||
# These rules are stolen from the `southamerica' file.
|
# These rules are stolen from the `southamerica' file.
|
||||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||||
Rule ArgAQ 1964 1966 - Mar 1 0:00 0 -
|
Rule ArgAQ 1964 1966 - Mar 1 0:00 0 -
|
||||||
|
@ -99,6 +99,10 @@ Rule RussiaAsia 1993 max - Mar lastSun 2:00s 1:00 S
|
|||||||
Rule RussiaAsia 1993 1995 - Sep lastSun 2:00s 0 -
|
Rule RussiaAsia 1993 1995 - Sep lastSun 2:00s 0 -
|
||||||
Rule RussiaAsia 1996 max - Oct lastSun 2:00s 0 -
|
Rule RussiaAsia 1996 max - Oct lastSun 2:00s 0 -
|
||||||
|
|
||||||
|
# From Arthur David Olson (2011-06-15):
|
||||||
|
# While Russia abandoned DST in 2011, Armenia may choose to
|
||||||
|
# follow Russia's "old" rules.
|
||||||
|
|
||||||
# Afghanistan
|
# Afghanistan
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
Zone Asia/Kabul 4:36:48 - LMT 1890
|
Zone Asia/Kabul 4:36:48 - LMT 1890
|
||||||
|
@ -521,7 +521,7 @@ Zone Pacific/Pago_Pago 12:37:12 - LMT 1879 Jul 5
|
|||||||
# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf
|
# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf
|
||||||
# </a>
|
# </a>
|
||||||
|
|
||||||
# From Raymond Hughes (2010-10-07):
|
# From Laupue Raymond Hughes (2010-10-07):
|
||||||
# Please see
|
# Please see
|
||||||
# <a href="http://www.mcil.gov.ws">
|
# <a href="http://www.mcil.gov.ws">
|
||||||
# http://www.mcil.gov.ws
|
# http://www.mcil.gov.ws
|
||||||
@ -531,7 +531,7 @@ Zone Pacific/Pago_Pago 12:37:12 - LMT 1879 Jul 5
|
|||||||
# to 01:00am and First Sunday April 2011 (03/04/11) - adjust clocks
|
# to 01:00am and First Sunday April 2011 (03/04/11) - adjust clocks
|
||||||
# backwards from 1:00am to 12:00am"
|
# backwards from 1:00am to 12:00am"
|
||||||
|
|
||||||
# From Raymond Hughes (2011-03-07)
|
# From Laupue Raymond Hughes (2011-03-07):
|
||||||
# I believe this will be posted shortly on the website
|
# I believe this will be posted shortly on the website
|
||||||
# <a href="http://www.mcil.gov.ws">
|
# <a href="http://www.mcil.gov.ws">
|
||||||
# www.mcil.gov.ws
|
# www.mcil.gov.ws
|
||||||
@ -551,12 +551,74 @@ Zone Pacific/Pago_Pago 12:37:12 - LMT 1879 Jul 5
|
|||||||
# Margaret Fruean ACTING CHIEF EXECUTIVE OFFICER MINISTRY OF COMMERCE,
|
# Margaret Fruean ACTING CHIEF EXECUTIVE OFFICER MINISTRY OF COMMERCE,
|
||||||
# INDUSTRY AND LABOUR 28th February 2011
|
# INDUSTRY AND LABOUR 28th February 2011
|
||||||
|
|
||||||
|
# From David Zuelke (2011-05-09):
|
||||||
|
# Subject: Samoa to move timezone from east to west of international date line
|
||||||
|
#
|
||||||
|
# <a href="http://www.morningstar.co.uk/uk/markets/newsfeeditem.aspx?id=138501958347963">
|
||||||
|
# http://www.morningstar.co.uk/uk/markets/newsfeeditem.aspx?id=138501958347963
|
||||||
|
# </a>
|
||||||
|
|
||||||
|
# From Mark Sim-Smith (2011-08-17):
|
||||||
|
# I have been in contact with Leilani Tuala Warren from the Samoa Law
|
||||||
|
# Reform Commission, and she has sent me a copy of the Bill that she
|
||||||
|
# confirmed has been passed...Most of the sections are about maps rather
|
||||||
|
# than the time zone change, but I'll paste the relevant bits below. But
|
||||||
|
# the essence is that at midnight 29 Dec (UTC-11 I suppose), Samoa
|
||||||
|
# changes from UTC-11 to UTC+13:
|
||||||
|
#
|
||||||
|
# International Date Line Bill 2011
|
||||||
|
#
|
||||||
|
# AN ACT to provide for the change to standard time in Samoa and to make
|
||||||
|
# consequential amendments to the position of the International Date
|
||||||
|
# Line, and for related purposes.
|
||||||
|
#
|
||||||
|
# BE IT ENACTED by the Legislative Assembly of Samoa in Parliament
|
||||||
|
# assembled as follows:
|
||||||
|
#
|
||||||
|
# 1. Short title and commencement-(1) This Act may be cited as the
|
||||||
|
# International Date Line Act 2011. (2) Except for section 5(3) this Act
|
||||||
|
# commences at 12 o'clock midnight, on Thursday 29th December 2011. (3)
|
||||||
|
# Section 5(3) commences on the date of assent by the Head of State.
|
||||||
|
#
|
||||||
|
# [snip]
|
||||||
|
#
|
||||||
|
# 3. Interpretation - [snip] "Samoa standard time" in this Act and any
|
||||||
|
# other statute of Samoa which refers to 'Samoa standard time' means the
|
||||||
|
# time 13 hours in advance of Co-ordinated Universal Time.
|
||||||
|
#
|
||||||
|
# 4. Samoa standard time - (1) Upon the commencement of this Act, Samoa
|
||||||
|
# standard time shall be set at 13 hours in advance of Co-ordinated
|
||||||
|
# Universal Time for the whole of Samoa. (2) All references to Samoa's
|
||||||
|
# time zone and to Samoa standard time in Samoa in all legislation and
|
||||||
|
# instruments after the commencement of this Act shall be references to
|
||||||
|
# Samoa standard time as provided for in this Act. (3) Nothing in this
|
||||||
|
# Act affects the provisions of the Daylight Saving Act 2009, except that
|
||||||
|
# it defines Samoa standard time....
|
||||||
|
|
||||||
|
# From Laupue Raymond Hughes (2011-09-02):
|
||||||
|
# <a href="http://www.mcil.gov.ws/mcil_publications.html">
|
||||||
|
# http://www.mcil.gov.ws/mcil_publications.html
|
||||||
|
# </a>
|
||||||
|
#
|
||||||
|
# here is the official website publication for Samoa DST and dateline change
|
||||||
|
#
|
||||||
|
# DST
|
||||||
|
# Year End Time Start Time
|
||||||
|
# 2011 - - - - - - 24 September 3:00am to 4:00am
|
||||||
|
# 2012 01 April 4:00am to 3:00am - - - - - -
|
||||||
|
#
|
||||||
|
# Dateline Change skip Friday 30th Dec 2011
|
||||||
|
# Thursday 29th December 2011 23:59:59 Hours
|
||||||
|
# Saturday 31st December 2011 00:00:00 Hours
|
||||||
Zone Pacific/Apia 12:33:04 - LMT 1879 Jul 5
|
Zone Pacific/Apia 12:33:04 - LMT 1879 Jul 5
|
||||||
-11:26:56 - LMT 1911
|
-11:26:56 - LMT 1911
|
||||||
-11:30 - SAMT 1950 # Samoa Time
|
-11:30 - SAMT 1950 # Samoa Time
|
||||||
-11:00 - WST 2010 Sep 26
|
-11:00 - WST 2010 Sep 26
|
||||||
-11:00 1:00 WSDT 2011 Apr 2 4:00
|
-11:00 1:00 WSDT 2011 Apr 2 4:00
|
||||||
-11:00 - WST
|
-11:00 - WST 2011 Sep 24 3:00
|
||||||
|
-11:00 1:00 WSDT 2011 Dec 30
|
||||||
|
13:00 1:00 WSDT 2012 Apr 1 4:00
|
||||||
|
13:00 - WST
|
||||||
|
|
||||||
# Solomon Is
|
# Solomon Is
|
||||||
# excludes Bougainville, for which see Papua New Guinea
|
# excludes Bougainville, for which see Papua New Guinea
|
||||||
@ -1228,7 +1290,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
|
|||||||
# Lord Howe Island Board (controlling authority for the Island) is
|
# Lord Howe Island Board (controlling authority for the Island) is
|
||||||
# seeking the community's views on various options for summer time
|
# seeking the community's views on various options for summer time
|
||||||
# arrangements on the Island, e.g. advance clocks by 1 full hour
|
# arrangements on the Island, e.g. advance clocks by 1 full hour
|
||||||
# instead of only 30 minutes. Dependant on the wishes of residents
|
# instead of only 30 minutes. [Dependent] on the wishes of residents
|
||||||
# the Board may approach the NSW government to change the existing
|
# the Board may approach the NSW government to change the existing
|
||||||
# arrangements. The starting date for summer time on the Island will
|
# arrangements. The starting date for summer time on the Island will
|
||||||
# however always coincide with the rest of NSW.
|
# however always coincide with the rest of NSW.
|
||||||
@ -1354,7 +1416,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
|
|||||||
|
|
||||||
# From Paul Eggert (1996-01-22):
|
# From Paul Eggert (1996-01-22):
|
||||||
# Today's _Wall Street Journal_ (page 1) reports that Kiribati
|
# Today's _Wall Street Journal_ (page 1) reports that Kiribati
|
||||||
# ``declared it the same day throught the country as of Jan. 1, 1995''
|
# ``declared it the same day [throughout] the country as of Jan. 1, 1995''
|
||||||
# as part of the competition to be first into the 21st century.
|
# as part of the competition to be first into the 21st century.
|
||||||
|
|
||||||
|
|
||||||
|
@ -587,6 +587,26 @@ Rule Russia 1993 max - Mar lastSun 2:00s 1:00 S
|
|||||||
Rule Russia 1993 1995 - Sep lastSun 2:00s 0 -
|
Rule Russia 1993 1995 - Sep lastSun 2:00s 0 -
|
||||||
Rule Russia 1996 max - Oct lastSun 2:00s 0 -
|
Rule Russia 1996 max - Oct lastSun 2:00s 0 -
|
||||||
|
|
||||||
|
# From Alexander Krivenyshev (2011-06-14):
|
||||||
|
# According to Kremlin press service, Russian President Dmitry Medvedev
|
||||||
|
# signed a federal law "On calculation of time" on June 9, 2011.
|
||||||
|
# According to the law Russia is abolishing daylight saving time.
|
||||||
|
#
|
||||||
|
# Medvedev signed a law "On the Calculation of Time" (in russian):
|
||||||
|
# <a href="http://bmockbe.ru/events/?ID=7583">
|
||||||
|
# http://bmockbe.ru/events/?ID=7583
|
||||||
|
# </a>
|
||||||
|
#
|
||||||
|
# Medvedev signed a law on the calculation of the time (in russian):
|
||||||
|
# <a href="http://www.regnum.ru/news/polit/1413906.html">
|
||||||
|
# http://www.regnum.ru/news/polit/1413906.html
|
||||||
|
# </a>
|
||||||
|
|
||||||
|
# From Arthur David Olson (2011-06-15):
|
||||||
|
# Take "abolishing daylight saving time" to mean that time is now considered
|
||||||
|
# to be standard.
|
||||||
|
# At least for now, keep the "old" Russia rules for the benefit of Belarus.
|
||||||
|
|
||||||
# These are for backward compatibility with older versions.
|
# These are for backward compatibility with older versions.
|
||||||
|
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
@ -2035,7 +2055,8 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
|
|||||||
1:00 C-Eur CE%sT 1945
|
1:00 C-Eur CE%sT 1945
|
||||||
2:00 Poland CE%sT 1946
|
2:00 Poland CE%sT 1946
|
||||||
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
|
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
|
||||||
2:00 Russia EE%sT
|
2:00 Russia EE%sT 2011 Mar 27 2:00s
|
||||||
|
3:00 - KALT
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
||||||
# Respublika Adygeya, Arkhangel'skaya oblast',
|
# Respublika Adygeya, Arkhangel'skaya oblast',
|
||||||
@ -2064,7 +2085,8 @@ Zone Europe/Moscow 2:30:20 - LMT 1880
|
|||||||
2:00 - EET 1930 Jun 21
|
2:00 - EET 1930 Jun 21
|
||||||
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
|
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
|
||||||
2:00 Russia EE%sT 1992 Jan 19 2:00s
|
2:00 Russia EE%sT 1992 Jan 19 2:00s
|
||||||
3:00 Russia MSK/MSD
|
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
|
||||||
|
4:00 - MSK
|
||||||
#
|
#
|
||||||
# Astrakhanskaya oblast', Kirovskaya oblast', Saratovskaya oblast',
|
# Astrakhanskaya oblast', Kirovskaya oblast', Saratovskaya oblast',
|
||||||
# Volgogradskaya oblast'. Shanks & Pottenger say Kirov is still at +0400
|
# Volgogradskaya oblast'. Shanks & Pottenger say Kirov is still at +0400
|
||||||
@ -2077,7 +2099,8 @@ Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3
|
|||||||
4:00 Russia VOL%sT 1989 Mar 26 2:00s # Volgograd T
|
4:00 Russia VOL%sT 1989 Mar 26 2:00s # Volgograd T
|
||||||
3:00 Russia VOL%sT 1991 Mar 31 2:00s
|
3:00 Russia VOL%sT 1991 Mar 31 2:00s
|
||||||
4:00 - VOLT 1992 Mar 29 2:00s
|
4:00 - VOLT 1992 Mar 29 2:00s
|
||||||
3:00 Russia VOL%sT
|
3:00 Russia VOL%sT 2011 Mar 27 2:00s
|
||||||
|
4:00 - VOLT
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
||||||
# Samarskaya oblast', Udmyrtskaya respublika
|
# Samarskaya oblast', Udmyrtskaya respublika
|
||||||
@ -2089,7 +2112,8 @@ Zone Europe/Samara 3:20:36 - LMT 1919 Jul 1 2:00
|
|||||||
2:00 Russia KUY%sT 1991 Sep 29 2:00s
|
2:00 Russia KUY%sT 1991 Sep 29 2:00s
|
||||||
3:00 - KUYT 1991 Oct 20 3:00
|
3:00 - KUYT 1991 Oct 20 3:00
|
||||||
4:00 Russia SAM%sT 2010 Mar 28 2:00s # Samara Time
|
4:00 Russia SAM%sT 2010 Mar 28 2:00s # Samara Time
|
||||||
3:00 Russia SAM%sT
|
3:00 Russia SAM%sT 2011 Mar 27 2:00s
|
||||||
|
4:00 - SAMT
|
||||||
|
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
||||||
@ -2102,7 +2126,8 @@ Zone Asia/Yekaterinburg 4:02:24 - LMT 1919 Jul 15 4:00
|
|||||||
4:00 - SVET 1930 Jun 21 # Sverdlovsk Time
|
4:00 - SVET 1930 Jun 21 # Sverdlovsk Time
|
||||||
5:00 Russia SVE%sT 1991 Mar 31 2:00s
|
5:00 Russia SVE%sT 1991 Mar 31 2:00s
|
||||||
4:00 Russia SVE%sT 1992 Jan 19 2:00s
|
4:00 Russia SVE%sT 1992 Jan 19 2:00s
|
||||||
5:00 Russia YEK%sT # Yekaterinburg Time
|
5:00 Russia YEK%sT 2011 Mar 27 2:00s
|
||||||
|
6:00 - YEKT # Yekaterinburg Time
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
||||||
# Respublika Altaj, Altajskij kraj, Omskaya oblast'.
|
# Respublika Altaj, Altajskij kraj, Omskaya oblast'.
|
||||||
@ -2110,7 +2135,8 @@ Zone Asia/Omsk 4:53:36 - LMT 1919 Nov 14
|
|||||||
5:00 - OMST 1930 Jun 21 # Omsk TIme
|
5:00 - OMST 1930 Jun 21 # Omsk TIme
|
||||||
6:00 Russia OMS%sT 1991 Mar 31 2:00s
|
6:00 Russia OMS%sT 1991 Mar 31 2:00s
|
||||||
5:00 Russia OMS%sT 1992 Jan 19 2:00s
|
5:00 Russia OMS%sT 1992 Jan 19 2:00s
|
||||||
6:00 Russia OMS%sT
|
6:00 Russia OMS%sT 2011 Mar 27 2:00s
|
||||||
|
7:00 - OMST
|
||||||
#
|
#
|
||||||
# From Paul Eggert (2006-08-19): I'm guessing about Tomsk here; it's
|
# From Paul Eggert (2006-08-19): I'm guessing about Tomsk here; it's
|
||||||
# not clear when it switched from +7 to +6.
|
# not clear when it switched from +7 to +6.
|
||||||
@ -2120,7 +2146,8 @@ Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00
|
|||||||
7:00 Russia NOV%sT 1991 Mar 31 2:00s
|
7:00 Russia NOV%sT 1991 Mar 31 2:00s
|
||||||
6:00 Russia NOV%sT 1992 Jan 19 2:00s
|
6:00 Russia NOV%sT 1992 Jan 19 2:00s
|
||||||
7:00 Russia NOV%sT 1993 May 23 # say Shanks & P.
|
7:00 Russia NOV%sT 1993 May 23 # say Shanks & P.
|
||||||
6:00 Russia NOV%sT
|
6:00 Russia NOV%sT 2011 Mar 27 2:00s
|
||||||
|
7:00 - NOVT
|
||||||
|
|
||||||
# From Alexander Krivenyshev (2009-10-13):
|
# From Alexander Krivenyshev (2009-10-13):
|
||||||
# Kemerovo oblast' (Kemerovo region) in Russia will change current time zone on
|
# Kemerovo oblast' (Kemerovo region) in Russia will change current time zone on
|
||||||
@ -2153,7 +2180,8 @@ Zone Asia/Novokuznetsk 5:48:48 - NMT 1920 Jan 6
|
|||||||
7:00 Russia KRA%sT 1991 Mar 31 2:00s
|
7:00 Russia KRA%sT 1991 Mar 31 2:00s
|
||||||
6:00 Russia KRA%sT 1992 Jan 19 2:00s
|
6:00 Russia KRA%sT 1992 Jan 19 2:00s
|
||||||
7:00 Russia KRA%sT 2010 Mar 28 2:00s
|
7:00 Russia KRA%sT 2010 Mar 28 2:00s
|
||||||
6:00 Russia NOV%sT # Novosibirsk/Novokuznetsk Time
|
6:00 Russia NOV%sT 2011 Mar 27 2:00s
|
||||||
|
7:00 - NOVT # Novosibirsk/Novokuznetsk Time
|
||||||
|
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
||||||
@ -2164,7 +2192,8 @@ Zone Asia/Krasnoyarsk 6:11:20 - LMT 1920 Jan 6
|
|||||||
6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time
|
6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time
|
||||||
7:00 Russia KRA%sT 1991 Mar 31 2:00s
|
7:00 Russia KRA%sT 1991 Mar 31 2:00s
|
||||||
6:00 Russia KRA%sT 1992 Jan 19 2:00s
|
6:00 Russia KRA%sT 1992 Jan 19 2:00s
|
||||||
7:00 Russia KRA%sT
|
7:00 Russia KRA%sT 2011 Mar 27 2:00s
|
||||||
|
8:00 - KRAT
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
||||||
# Respublika Buryatiya, Irkutskaya oblast',
|
# Respublika Buryatiya, Irkutskaya oblast',
|
||||||
@ -2174,7 +2203,8 @@ Zone Asia/Irkutsk 6:57:20 - LMT 1880
|
|||||||
7:00 - IRKT 1930 Jun 21 # Irkutsk Time
|
7:00 - IRKT 1930 Jun 21 # Irkutsk Time
|
||||||
8:00 Russia IRK%sT 1991 Mar 31 2:00s
|
8:00 Russia IRK%sT 1991 Mar 31 2:00s
|
||||||
7:00 Russia IRK%sT 1992 Jan 19 2:00s
|
7:00 Russia IRK%sT 1992 Jan 19 2:00s
|
||||||
8:00 Russia IRK%sT
|
8:00 Russia IRK%sT 2011 Mar 27 2:00s
|
||||||
|
9:00 - IRKT
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
|
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
|
||||||
# Aginskij Buryatskij avtonomnyj okrug, Amurskaya oblast',
|
# Aginskij Buryatskij avtonomnyj okrug, Amurskaya oblast',
|
||||||
@ -2197,7 +2227,8 @@ Zone Asia/Yakutsk 8:38:40 - LMT 1919 Dec 15
|
|||||||
8:00 - YAKT 1930 Jun 21 # Yakutsk Time
|
8:00 - YAKT 1930 Jun 21 # Yakutsk Time
|
||||||
9:00 Russia YAK%sT 1991 Mar 31 2:00s
|
9:00 Russia YAK%sT 1991 Mar 31 2:00s
|
||||||
8:00 Russia YAK%sT 1992 Jan 19 2:00s
|
8:00 Russia YAK%sT 1992 Jan 19 2:00s
|
||||||
9:00 Russia YAK%sT
|
9:00 Russia YAK%sT 2011 Mar 27 2:00s
|
||||||
|
10:00 - YAKT
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
|
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
|
||||||
# Evrejskaya avtonomnaya oblast', Khabarovskij kraj, Primorskij kraj,
|
# Evrejskaya avtonomnaya oblast', Khabarovskij kraj, Primorskij kraj,
|
||||||
@ -2210,7 +2241,8 @@ Zone Asia/Vladivostok 8:47:44 - LMT 1922 Nov 15
|
|||||||
9:00 - VLAT 1930 Jun 21 # Vladivostok Time
|
9:00 - VLAT 1930 Jun 21 # Vladivostok Time
|
||||||
10:00 Russia VLA%sT 1991 Mar 31 2:00s
|
10:00 Russia VLA%sT 1991 Mar 31 2:00s
|
||||||
9:00 Russia VLA%sST 1992 Jan 19 2:00s
|
9:00 Russia VLA%sST 1992 Jan 19 2:00s
|
||||||
10:00 Russia VLA%sT
|
10:00 Russia VLA%sT 2011 Mar 27 2:00s
|
||||||
|
11:00 - VLAT
|
||||||
#
|
#
|
||||||
# Sakhalinskaya oblast'.
|
# Sakhalinskaya oblast'.
|
||||||
# The Zone name should be Yuzhno-Sakhalinsk, but that's too long.
|
# The Zone name should be Yuzhno-Sakhalinsk, but that's too long.
|
||||||
@ -2220,7 +2252,8 @@ Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23
|
|||||||
11:00 Russia SAK%sT 1991 Mar 31 2:00s # Sakhalin T.
|
11:00 Russia SAK%sT 1991 Mar 31 2:00s # Sakhalin T.
|
||||||
10:00 Russia SAK%sT 1992 Jan 19 2:00s
|
10:00 Russia SAK%sT 1992 Jan 19 2:00s
|
||||||
11:00 Russia SAK%sT 1997 Mar lastSun 2:00s
|
11:00 Russia SAK%sT 1997 Mar lastSun 2:00s
|
||||||
10:00 Russia SAK%sT
|
10:00 Russia SAK%sT 2011 Mar 27 2:00s
|
||||||
|
11:00 - SAKT
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
|
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
|
||||||
# Magadanskaya oblast', Respublika Sakha (Yakutiya).
|
# Magadanskaya oblast', Respublika Sakha (Yakutiya).
|
||||||
@ -2233,7 +2266,8 @@ Zone Asia/Magadan 10:03:12 - LMT 1924 May 2
|
|||||||
10:00 - MAGT 1930 Jun 21 # Magadan Time
|
10:00 - MAGT 1930 Jun 21 # Magadan Time
|
||||||
11:00 Russia MAG%sT 1991 Mar 31 2:00s
|
11:00 Russia MAG%sT 1991 Mar 31 2:00s
|
||||||
10:00 Russia MAG%sT 1992 Jan 19 2:00s
|
10:00 Russia MAG%sT 1992 Jan 19 2:00s
|
||||||
11:00 Russia MAG%sT
|
11:00 Russia MAG%sT 2011 Mar 27 2:00s
|
||||||
|
12:00 - MAGT
|
||||||
#
|
#
|
||||||
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
|
||||||
# Kamchatskaya oblast', Koryakskij avtonomnyj okrug.
|
# Kamchatskaya oblast', Koryakskij avtonomnyj okrug.
|
||||||
@ -2244,7 +2278,8 @@ Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10
|
|||||||
12:00 Russia PET%sT 1991 Mar 31 2:00s
|
12:00 Russia PET%sT 1991 Mar 31 2:00s
|
||||||
11:00 Russia PET%sT 1992 Jan 19 2:00s
|
11:00 Russia PET%sT 1992 Jan 19 2:00s
|
||||||
12:00 Russia PET%sT 2010 Mar 28 2:00s
|
12:00 Russia PET%sT 2010 Mar 28 2:00s
|
||||||
11:00 Russia PET%sT
|
11:00 Russia PET%sT 2011 Mar 27 2:00s
|
||||||
|
12:00 - PETT
|
||||||
#
|
#
|
||||||
# Chukotskij avtonomnyj okrug
|
# Chukotskij avtonomnyj okrug
|
||||||
Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
|
Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
|
||||||
@ -2253,7 +2288,8 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
|
|||||||
12:00 Russia ANA%sT 1991 Mar 31 2:00s
|
12:00 Russia ANA%sT 1991 Mar 31 2:00s
|
||||||
11:00 Russia ANA%sT 1992 Jan 19 2:00s
|
11:00 Russia ANA%sT 1992 Jan 19 2:00s
|
||||||
12:00 Russia ANA%sT 2010 Mar 28 2:00s
|
12:00 Russia ANA%sT 2010 Mar 28 2:00s
|
||||||
11:00 Russia ANA%sT
|
11:00 Russia ANA%sT 2011 Mar 27 2:00s
|
||||||
|
12:00 - ANAT
|
||||||
|
|
||||||
# Serbia
|
# Serbia
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
|
@ -43,6 +43,9 @@
|
|||||||
#
|
#
|
||||||
# Lines beginning with `#' are comments.
|
# Lines beginning with `#' are comments.
|
||||||
#
|
#
|
||||||
|
# From Arthur David Olson (2011-08-17):
|
||||||
|
# Resynchronized today with the ISO 3166 site (adding SS for South Sudan).
|
||||||
|
#
|
||||||
#country-
|
#country-
|
||||||
#code country name
|
#code country name
|
||||||
AD Andorra
|
AD Andorra
|
||||||
@ -52,7 +55,6 @@ AG Antigua & Barbuda
|
|||||||
AI Anguilla
|
AI Anguilla
|
||||||
AL Albania
|
AL Albania
|
||||||
AM Armenia
|
AM Armenia
|
||||||
AN Netherlands Antilles
|
|
||||||
AO Angola
|
AO Angola
|
||||||
AQ Antarctica
|
AQ Antarctica
|
||||||
AR Argentina
|
AR Argentina
|
||||||
@ -75,6 +77,7 @@ BL St Barthelemy
|
|||||||
BM Bermuda
|
BM Bermuda
|
||||||
BN Brunei
|
BN Brunei
|
||||||
BO Bolivia
|
BO Bolivia
|
||||||
|
BQ Bonaire Sint Eustatius & Saba
|
||||||
BR Brazil
|
BR Brazil
|
||||||
BS Bahamas
|
BS Bahamas
|
||||||
BT Bhutan
|
BT Bhutan
|
||||||
@ -97,6 +100,7 @@ CO Colombia
|
|||||||
CR Costa Rica
|
CR Costa Rica
|
||||||
CU Cuba
|
CU Cuba
|
||||||
CV Cape Verde
|
CV Cape Verde
|
||||||
|
CW Curacao
|
||||||
CX Christmas Island
|
CX Christmas Island
|
||||||
CY Cyprus
|
CY Cyprus
|
||||||
CZ Czech Republic
|
CZ Czech Republic
|
||||||
@ -251,8 +255,10 @@ SM San Marino
|
|||||||
SN Senegal
|
SN Senegal
|
||||||
SO Somalia
|
SO Somalia
|
||||||
SR Suriname
|
SR Suriname
|
||||||
|
SS South Sudan
|
||||||
ST Sao Tome & Principe
|
ST Sao Tome & Principe
|
||||||
SV El Salvador
|
SV El Salvador
|
||||||
|
SX Sint Maarten
|
||||||
SY Syria
|
SY Syria
|
||||||
SZ Swaziland
|
SZ Swaziland
|
||||||
TC Turks & Caicos Is
|
TC Turks & Caicos Is
|
||||||
|
@ -490,6 +490,10 @@ Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02
|
|||||||
# own time. I asked about daylight saving; they said it wasn't used. I
|
# own time. I asked about daylight saving; they said it wasn't used. I
|
||||||
# did not inquire about practices in the past.
|
# did not inquire about practices in the past.
|
||||||
|
|
||||||
|
# From Arthur David Olson (2011-08-17):
|
||||||
|
# For lack of better information, assume that Metlakatla's
|
||||||
|
# abandonment of use of daylight saving resulted from the 1983 vote.
|
||||||
|
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
Zone America/Juneau 15:02:19 - LMT 1867 Oct 18
|
Zone America/Juneau 15:02:19 - LMT 1867 Oct 18
|
||||||
-8:57:41 - LMT 1900 Aug 20 12:00
|
-8:57:41 - LMT 1900 Aug 20 12:00
|
||||||
@ -515,7 +519,7 @@ Zone America/Metlakatla 15:13:42 - LMT 1867 Oct 18
|
|||||||
-8:00 US P%sT 1946
|
-8:00 US P%sT 1946
|
||||||
-8:00 - PST 1969
|
-8:00 - PST 1969
|
||||||
-8:00 US P%sT 1983 Oct 30 2:00
|
-8:00 US P%sT 1983 Oct 30 2:00
|
||||||
-8:00 US MeST
|
-8:00 - MeST
|
||||||
Zone America/Yakutat 14:41:05 - LMT 1867 Oct 18
|
Zone America/Yakutat 14:41:05 - LMT 1867 Oct 18
|
||||||
-9:18:55 - LMT 1900 Aug 20 12:00
|
-9:18:55 - LMT 1900 Aug 20 12:00
|
||||||
-9:00 - YST 1942
|
-9:00 - YST 1942
|
||||||
@ -615,8 +619,8 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 #Schmitt&Cox
|
|||||||
-10:30 - HST 1933 Apr 30 2:00 #Laws 1933
|
-10:30 - HST 1933 Apr 30 2:00 #Laws 1933
|
||||||
-10:30 1:00 HDT 1933 May 21 12:00 #Laws 1933+12
|
-10:30 1:00 HDT 1933 May 21 12:00 #Laws 1933+12
|
||||||
-10:30 - HST 1942 Feb 09 2:00 #Schmitt&Cox+2
|
-10:30 - HST 1942 Feb 09 2:00 #Schmitt&Cox+2
|
||||||
-10:30 1:00 HDT 1945 Sep 30 2:00 #Schmitt&Fox+2
|
-10:30 1:00 HDT 1945 Sep 30 2:00 #Schmitt&Cox+2
|
||||||
-10:30 US H%sT 1947 Jun 8 2:00 #Schmitt&Fox+2
|
-10:30 - HST 1947 Jun 8 2:00 #Schmitt&Cox+2
|
||||||
-10:00 - HST
|
-10:00 - HST
|
||||||
|
|
||||||
# Now we turn to US areas that have diverged from the consensus since 1970.
|
# Now we turn to US areas that have diverged from the consensus since 1970.
|
||||||
@ -1185,12 +1189,39 @@ Rule StJohns 1960 1986 - Oct lastSun 2:00 0 S
|
|||||||
# From Paul Eggert (2000-10-02):
|
# From Paul Eggert (2000-10-02):
|
||||||
# INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches
|
# INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches
|
||||||
# at 00:01 local time. For now, assume it started in 1987.
|
# at 00:01 local time. For now, assume it started in 1987.
|
||||||
|
|
||||||
|
# From Michael Pelley (2011-08-05):
|
||||||
|
# The Government of Newfoundland and Labrador has pending changes to
|
||||||
|
# modify the hour for daylight savings time to come into effect in
|
||||||
|
# November 2011. This modification would change the time from 12:01AM to
|
||||||
|
# 2:00AM on the dates of the switches of Daylight Savings Time to/from
|
||||||
|
# Standard Time.
|
||||||
|
#
|
||||||
|
# As a matter of reference, in Canada provinces have the authority of
|
||||||
|
# setting time zone information. The legislation has passed our
|
||||||
|
# legislative body (The House of Assembly) and is awaiting the
|
||||||
|
# proclamation to come into effect. You may find this information at:
|
||||||
|
# <a href="http://www.assembly.nl.ca/legislation/sr/lists/Proclamation.htm">
|
||||||
|
# http://www.assembly.nl.ca/legislation/sr/lists/Proclamation.htm
|
||||||
|
# </a>
|
||||||
|
# and
|
||||||
|
# search within that web page for Standard Time (Amendment) Act. The Act
|
||||||
|
# may be found at:
|
||||||
|
# <a href="http://www.assembly.nl.ca/business/bills/Bill1106.htm">
|
||||||
|
# http://www.assembly.nl.ca/business/bills/Bill1106.htm
|
||||||
|
# </a>
|
||||||
|
# ...
|
||||||
|
# MICHAEL PELLEY | Manager of Enterprise Architecture - Solution Delivery
|
||||||
|
# Office of the Chief Information Officer Executive Council Government of
|
||||||
|
# Newfoundland & Labrador P.O. Box 8700, 40 Higgins Line, St. John's NL
|
||||||
|
# A1B 4J6
|
||||||
|
|
||||||
Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D
|
Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D
|
||||||
Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
|
Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
|
||||||
Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD
|
Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD
|
||||||
Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D
|
Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D
|
||||||
Rule StJohns 2007 max - Mar Sun>=8 0:01 1:00 D
|
Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D
|
||||||
Rule StJohns 2007 max - Nov Sun>=1 0:01 0 S
|
Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S
|
||||||
#
|
#
|
||||||
# St John's has an apostrophe, but Posix file names can't have apostrophes.
|
# St John's has an apostrophe, but Posix file names can't have apostrophes.
|
||||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||||
@ -1200,7 +1231,8 @@ Zone America/St_Johns -3:30:52 - LMT 1884
|
|||||||
-3:30:52 StJohns N%sT 1935 Mar 30
|
-3:30:52 StJohns N%sT 1935 Mar 30
|
||||||
-3:30 StJohns N%sT 1942 May 11
|
-3:30 StJohns N%sT 1942 May 11
|
||||||
-3:30 Canada N%sT 1946
|
-3:30 Canada N%sT 1946
|
||||||
-3:30 StJohns N%sT
|
-3:30 StJohns N%sT 2011 Nov
|
||||||
|
-3:30 Canada N%sT
|
||||||
|
|
||||||
# most of east Labrador
|
# most of east Labrador
|
||||||
|
|
||||||
@ -1214,7 +1246,8 @@ Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Valley-Goose Bay
|
|||||||
-3:30 StJohns N%sT 1942 May 11
|
-3:30 StJohns N%sT 1942 May 11
|
||||||
-3:30 Canada N%sT 1946
|
-3:30 Canada N%sT 1946
|
||||||
-3:30 StJohns N%sT 1966 Mar 15 2:00
|
-3:30 StJohns N%sT 1966 Mar 15 2:00
|
||||||
-4:00 StJohns A%sT
|
-4:00 StJohns A%sT 2011 Nov
|
||||||
|
-4:00 Canada A%sT
|
||||||
|
|
||||||
|
|
||||||
# west Labrador, Nova Scotia, Prince Edward I
|
# west Labrador, Nova Scotia, Prince Edward I
|
||||||
@ -1946,20 +1979,69 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884
|
|||||||
# daylight saving....
|
# daylight saving....
|
||||||
# http://www.nnsl.com/frames/newspapers/2006-11/nov13_06none.html
|
# http://www.nnsl.com/frames/newspapers/2006-11/nov13_06none.html
|
||||||
|
|
||||||
# From Chris Walton (2007-03-14):
|
# From Chris Walton (2011-03-21):
|
||||||
# Today I phoned the "hamlet office" to find out what Resolute was doing with
|
# Back in 2007 I initiated the creation of a new "zone file" for Resolute
|
||||||
# its clocks.
|
# Bay. Resolute Bay is a small community located about 900km north of
|
||||||
|
# the Arctic Circle. The zone file was required because Resolute Bay had
|
||||||
|
# decided to use UTC-5 instead of UTC-6 for the winter of 2006-2007.
|
||||||
#
|
#
|
||||||
# The individual that answered the phone confirmed that the clocks did not
|
# According to new information which I received last week, Resolute Bay
|
||||||
# move at the end of daylight saving on October 29/2006. He also told me that
|
# went back to using UTC-6 in the winter of 2007-2008...
|
||||||
# the clocks did not move this past weekend (March 11/2007)....
|
#
|
||||||
|
# On March 11/2007 most of Canada went onto daylight saving. On March
|
||||||
# From Chris Walton (2008-11-13):
|
# 14/2007 I phoned the Resolute Bay hamlet office to do a "time check." I
|
||||||
# ...the residents of Resolute believe that they are changing "time zones"
|
# talked to somebody that was both knowledgeable and helpful. I was able
|
||||||
# twice a year. In winter months, local time is qualified with "Eastern
|
# to confirm that Resolute Bay was still operating on UTC-5. It was
|
||||||
# Time" which is really "Eastern Standard Time (UTC-5)". In summer
|
# explained to me that Resolute Bay had been on the Eastern Time zone
|
||||||
# months, local time is qualified with "Central Time" which is really
|
# (EST) in the winter, and was now back on the Central Time zone (CDT).
|
||||||
# "Central Daylight Time (UTC-5)"...
|
# i.e. the time zone had changed twice in the last year but the clocks
|
||||||
|
# had not moved. The residents had to know which time zone they were in
|
||||||
|
# so they could follow the correct TV schedule...
|
||||||
|
#
|
||||||
|
# On Nov 02/2008 most of Canada went onto standard time. On Nov 03/2008 I
|
||||||
|
# phoned the Resolute Bay hamlet office...[D]ue to the challenging nature
|
||||||
|
# of the phone call, I decided to seek out an alternate source of
|
||||||
|
# information. I found an e-mail address for somebody by the name of
|
||||||
|
# Stephanie Adams whose job was listed as "Inns North Support Officer for
|
||||||
|
# Arctic Co-operatives." I was under the impression that Stephanie lived
|
||||||
|
# and worked in Resolute Bay...
|
||||||
|
#
|
||||||
|
# On March 14/2011 I phoned the hamlet office again. I was told that
|
||||||
|
# Resolute Bay had been using Central Standard Time over the winter of
|
||||||
|
# 2010-2011 and that the clocks had therefore been moved one hour ahead
|
||||||
|
# on March 13/2011. The person I talked to was aware that Resolute Bay
|
||||||
|
# had previously experimented with Eastern Standard Time but he could not
|
||||||
|
# tell me when the practice had stopped.
|
||||||
|
#
|
||||||
|
# On March 17/2011 I searched the Web to find an e-mail address of
|
||||||
|
# somebody that might be able to tell me exactly when Resolute Bay went
|
||||||
|
# off Eastern Standard Time. I stumbled on the name "Aziz Kheraj." Aziz
|
||||||
|
# used to be the mayor of Resolute Bay and he apparently owns half the
|
||||||
|
# businesses including "South Camp Inn." This website has some info on
|
||||||
|
# Aziz:
|
||||||
|
# <a href="http://www.uphere.ca/node/493">
|
||||||
|
# http://www.uphere.ca/node/493
|
||||||
|
# </a>
|
||||||
|
#
|
||||||
|
# I sent Aziz an e-mail asking when Resolute Bay had stopped using
|
||||||
|
# Eastern Standard Time.
|
||||||
|
#
|
||||||
|
# Aziz responded quickly with this: "hi, The time was not changed for the
|
||||||
|
# 1 year only, the following year, the community went back to the old way
|
||||||
|
# of "spring ahead-fall behind" currently we are zulu plus 5 hrs and in
|
||||||
|
# the winter Zulu plus 6 hrs"
|
||||||
|
#
|
||||||
|
# This of course conflicted with everything I had ascertained in November 2008.
|
||||||
|
#
|
||||||
|
# I sent Aziz a copy of my 2008 e-mail exchange with Stephanie. Aziz
|
||||||
|
# responded with this: "Hi, Stephanie lives in Winnipeg. I live here, You
|
||||||
|
# may want to check with the weather office in Resolute Bay or do a
|
||||||
|
# search on the weather through Env. Canada. web site"
|
||||||
|
#
|
||||||
|
# If I had realized the Stephanie did not live in Resolute Bay I would
|
||||||
|
# never have contacted her. I now believe that all the information I
|
||||||
|
# obtained in November 2008 should be ignored...
|
||||||
|
# I apologize for reporting incorrect information in 2008.
|
||||||
|
|
||||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||||
Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
|
Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
|
||||||
@ -1987,14 +2069,12 @@ Zone America/Iqaluit 0 - zzz 1942 Aug # Frobisher Bay est.
|
|||||||
-6:00 Canada C%sT 2000 Oct 29 2:00
|
-6:00 Canada C%sT 2000 Oct 29 2:00
|
||||||
-5:00 Canada E%sT
|
-5:00 Canada E%sT
|
||||||
# aka Qausuittuq
|
# aka Qausuittuq
|
||||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
|
||||||
Rule Resolute 2006 max - Nov Sun>=1 2:00 0 ES
|
|
||||||
Rule Resolute 2007 max - Mar Sun>=8 2:00 0 CD
|
|
||||||
Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded
|
Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded
|
||||||
-6:00 NT_YK C%sT 2000 Oct 29 2:00
|
-6:00 NT_YK C%sT 2000 Oct 29 2:00
|
||||||
-5:00 - EST 2001 Apr 1 3:00
|
-5:00 - EST 2001 Apr 1 3:00
|
||||||
-6:00 Canada C%sT 2006 Oct 29 2:00
|
-6:00 Canada C%sT 2006 Oct 29 2:00
|
||||||
-5:00 Resolute %sT
|
-5:00 - EST 2007 Mar 11 3:00
|
||||||
|
-6:00 Canada C%sT
|
||||||
# aka Kangiqiniq
|
# aka Kangiqiniq
|
||||||
Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded
|
Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded
|
||||||
-6:00 NT_YK C%sT 2000 Oct 29 2:00
|
-6:00 NT_YK C%sT 2000 Oct 29 2:00
|
||||||
|
@ -1298,6 +1298,14 @@ Zone America/Curacao -4:35:44 - LMT 1912 Feb 12 # Willemstad
|
|||||||
-4:30 - ANT 1965 # Netherlands Antilles Time
|
-4:30 - ANT 1965 # Netherlands Antilles Time
|
||||||
-4:00 - AST
|
-4:00 - AST
|
||||||
|
|
||||||
|
# From Arthur David Olson (2011-06-15):
|
||||||
|
# At least for now, use links for places with new iso3166 codes.
|
||||||
|
# The name "Lower Prince's Quarter" is both longer than fourteen charaters
|
||||||
|
# and contains an apostrophe; use "Lower_Princes" below.
|
||||||
|
|
||||||
|
Link America/Curacao America/Lower_Princes # Sint Maarten
|
||||||
|
Link America/Curacao America/Kralendijk # Bonaire, Sint Estatius and Saba
|
||||||
|
|
||||||
# Ecuador
|
# Ecuador
|
||||||
#
|
#
|
||||||
# From Paul Eggert (2007-03-04):
|
# From Paul Eggert (2007-03-04):
|
||||||
|
@ -54,7 +54,6 @@ AG +1703-06148 America/Antigua
|
|||||||
AI +1812-06304 America/Anguilla
|
AI +1812-06304 America/Anguilla
|
||||||
AL +4120+01950 Europe/Tirane
|
AL +4120+01950 Europe/Tirane
|
||||||
AM +4011+04430 Asia/Yerevan
|
AM +4011+04430 Asia/Yerevan
|
||||||
AN +1211-06900 America/Curacao
|
|
||||||
AO -0848+01314 Africa/Luanda
|
AO -0848+01314 Africa/Luanda
|
||||||
AQ -7750+16636 Antarctica/McMurdo McMurdo Station, Ross Island
|
AQ -7750+16636 Antarctica/McMurdo McMurdo Station, Ross Island
|
||||||
AQ -9000+00000 Antarctica/South_Pole Amundsen-Scott Station, South Pole
|
AQ -9000+00000 Antarctica/South_Pole Amundsen-Scott Station, South Pole
|
||||||
@ -109,6 +108,7 @@ BL +1753-06251 America/St_Barthelemy
|
|||||||
BM +3217-06446 Atlantic/Bermuda
|
BM +3217-06446 Atlantic/Bermuda
|
||||||
BN +0456+11455 Asia/Brunei
|
BN +0456+11455 Asia/Brunei
|
||||||
BO -1630-06809 America/La_Paz
|
BO -1630-06809 America/La_Paz
|
||||||
|
BQ +120903-0681636 America/Kralendijk
|
||||||
BR -0351-03225 America/Noronha Atlantic islands
|
BR -0351-03225 America/Noronha Atlantic islands
|
||||||
BR -0127-04829 America/Belem Amapa, E Para
|
BR -0127-04829 America/Belem Amapa, E Para
|
||||||
BR -0343-03830 America/Fortaleza NE Brazil (MA, PI, CE, RN, PB)
|
BR -0343-03830 America/Fortaleza NE Brazil (MA, PI, CE, RN, PB)
|
||||||
@ -142,7 +142,7 @@ CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did
|
|||||||
CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario
|
CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario
|
||||||
CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations
|
CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations
|
||||||
CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut
|
CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut
|
||||||
CA +744144-0944945 America/Resolute Eastern Standard Time - Resolute, Nunavut
|
CA +744144-0944945 America/Resolute Central Standard Time - Resolute, Nunavut
|
||||||
CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
|
CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
|
||||||
CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut
|
CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut
|
||||||
CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario
|
CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario
|
||||||
@ -177,6 +177,7 @@ CO +0436-07405 America/Bogota
|
|||||||
CR +0956-08405 America/Costa_Rica
|
CR +0956-08405 America/Costa_Rica
|
||||||
CU +2308-08222 America/Havana
|
CU +2308-08222 America/Havana
|
||||||
CV +1455-02331 Atlantic/Cape_Verde
|
CV +1455-02331 Atlantic/Cape_Verde
|
||||||
|
CW +1211-06900 America/Curacao
|
||||||
CX -1025+10543 Indian/Christmas
|
CX -1025+10543 Indian/Christmas
|
||||||
CY +3510+03322 Asia/Nicosia
|
CY +3510+03322 Asia/Nicosia
|
||||||
CZ +5005+01426 Europe/Prague
|
CZ +5005+01426 Europe/Prague
|
||||||
@ -382,8 +383,10 @@ SM +4355+01228 Europe/San_Marino
|
|||||||
SN +1440-01726 Africa/Dakar
|
SN +1440-01726 Africa/Dakar
|
||||||
SO +0204+04522 Africa/Mogadishu
|
SO +0204+04522 Africa/Mogadishu
|
||||||
SR +0550-05510 America/Paramaribo
|
SR +0550-05510 America/Paramaribo
|
||||||
|
SS +0451+03136 Africa/Juba
|
||||||
ST +0020+00644 Africa/Sao_Tome
|
ST +0020+00644 Africa/Sao_Tome
|
||||||
SV +1342-08912 America/El_Salvador
|
SV +1342-08912 America/El_Salvador
|
||||||
|
SX +180305-0630250 America/Lower_Princes
|
||||||
SY +3330+03618 Asia/Damascus
|
SY +3330+03618 Asia/Damascus
|
||||||
SZ -2618+03106 Africa/Mbabane
|
SZ -2618+03106 Africa/Mbabane
|
||||||
TC +2128-07108 America/Grand_Turk
|
TC +2128-07108 America/Grand_Turk
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@ -26,6 +26,8 @@
|
|||||||
BUILDDIR = ../..
|
BUILDDIR = ../..
|
||||||
PACKAGE = sun.net
|
PACKAGE = sun.net
|
||||||
PRODUCT = sun
|
PRODUCT = sun
|
||||||
|
SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
|
||||||
|
SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
|
||||||
include $(BUILDDIR)/common/Defs.gmk
|
include $(BUILDDIR)/common/Defs.gmk
|
||||||
|
|
||||||
SUBDIRS = others spi
|
SUBDIRS = others spi
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
BUILDDIR = ../../..
|
BUILDDIR = ../../..
|
||||||
|
SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
|
||||||
|
|
||||||
include $(BUILDDIR)/common/Defs.gmk
|
include $(BUILDDIR)/common/Defs.gmk
|
||||||
|
|
||||||
SUBDIRS_misc = nameservice
|
SUBDIRS_misc = nameservice
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
BUILDDIR = ../../../../..
|
BUILDDIR = ../../../../..
|
||||||
|
JAVAC_MAX_WARNINGS = true
|
||||||
|
JAVAC_WARNINGS_FATAL = true
|
||||||
# dns should probably be its own module
|
# dns should probably be its own module
|
||||||
PACKAGE = sun.net.spi.nameservice.dns
|
PACKAGE = sun.net.spi.nameservice.dns
|
||||||
PRODUCT = sun
|
PRODUCT = sun
|
||||||
|
40
jdk/make/sun/util/Makefile
Normal file
40
jdk/make/sun/util/Makefile
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2011, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
BUILDDIR = ../..
|
||||||
|
PACKAGE = sun.util
|
||||||
|
PRODUCT = sun
|
||||||
|
include $(BUILDDIR)/common/Defs.gmk
|
||||||
|
|
||||||
|
#
|
||||||
|
# Files
|
||||||
|
#
|
||||||
|
AUTO_FILES_JAVA_DIRS = sun/util/xml
|
||||||
|
|
||||||
|
#
|
||||||
|
# Rules
|
||||||
|
#
|
||||||
|
include $(BUILDDIR)/common/Classes.gmk
|
||||||
|
|
@ -76,8 +76,8 @@ class Mappings {
|
|||||||
// If the GMT offset of this Zone will change in some
|
// If the GMT offset of this Zone will change in some
|
||||||
// future time, this Zone is added to the exclude list.
|
// future time, this Zone is added to the exclude list.
|
||||||
boolean isExcluded = false;
|
boolean isExcluded = false;
|
||||||
if (zone.size() > 1) {
|
for (int i = 0; i < zone.size(); i++) {
|
||||||
ZoneRec zrec = zone.get(zone.size()-2);
|
ZoneRec zrec = zone.get(i);
|
||||||
if ((zrec.getGmtOffset() != rawOffset)
|
if ((zrec.getGmtOffset() != rawOffset)
|
||||||
&& (zrec.getUntilTime(0) > Time.getCurrentTime())) {
|
&& (zrec.getUntilTime(0) > Time.getCurrentTime())) {
|
||||||
if (excludeList == null) {
|
if (excludeList == null) {
|
||||||
@ -85,6 +85,7 @@ class Mappings {
|
|||||||
}
|
}
|
||||||
excludeList.add(zone.getName());
|
excludeList.add(zone.getName());
|
||||||
isExcluded = true;
|
isExcluded = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -54,13 +54,13 @@ public abstract class BasicAuthenticator extends Authenticator {
|
|||||||
|
|
||||||
public Result authenticate (HttpExchange t)
|
public Result authenticate (HttpExchange t)
|
||||||
{
|
{
|
||||||
Headers rmap = (Headers) t.getRequestHeaders();
|
Headers rmap = t.getRequestHeaders();
|
||||||
/*
|
/*
|
||||||
* look for auth token
|
* look for auth token
|
||||||
*/
|
*/
|
||||||
String auth = rmap.getFirst ("Authorization");
|
String auth = rmap.getFirst ("Authorization");
|
||||||
if (auth == null) {
|
if (auth == null) {
|
||||||
Headers map = (Headers) t.getResponseHeaders();
|
Headers map = t.getResponseHeaders();
|
||||||
map.set ("WWW-Authenticate", "Basic realm=" + "\""+realm+"\"");
|
map.set ("WWW-Authenticate", "Basic realm=" + "\""+realm+"\"");
|
||||||
return new Authenticator.Retry (401);
|
return new Authenticator.Retry (401);
|
||||||
}
|
}
|
||||||
@ -83,7 +83,7 @@ public abstract class BasicAuthenticator extends Authenticator {
|
|||||||
} else {
|
} else {
|
||||||
/* reject the request again with 401 */
|
/* reject the request again with 401 */
|
||||||
|
|
||||||
Headers map = (Headers) t.getResponseHeaders();
|
Headers map = t.getResponseHeaders();
|
||||||
map.set ("WWW-Authenticate", "Basic realm=" + "\""+realm+"\"");
|
map.set ("WWW-Authenticate", "Basic realm=" + "\""+realm+"\"");
|
||||||
return new Authenticator.Failure(401);
|
return new Authenticator.Failure(401);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -117,7 +117,7 @@ public class Headers implements Map<String,List<String>> {
|
|||||||
* @return the first string value associated with the key
|
* @return the first string value associated with the key
|
||||||
*/
|
*/
|
||||||
public String getFirst (String key) {
|
public String getFirst (String key) {
|
||||||
List<String> l = map.get(normalize((String)key));
|
List<String> l = map.get(normalize(key));
|
||||||
if (l == null) {
|
if (l == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -81,29 +81,27 @@ public abstract class HttpServerProvider {
|
|||||||
if (cn == null)
|
if (cn == null)
|
||||||
return false;
|
return false;
|
||||||
try {
|
try {
|
||||||
Class c = Class.forName(cn, true,
|
Class<?> c = Class.forName(cn, true,
|
||||||
ClassLoader.getSystemClassLoader());
|
ClassLoader.getSystemClassLoader());
|
||||||
provider = (HttpServerProvider)c.newInstance();
|
provider = (HttpServerProvider)c.newInstance();
|
||||||
return true;
|
return true;
|
||||||
} catch (ClassNotFoundException x) {
|
} catch (ClassNotFoundException |
|
||||||
throw new ServiceConfigurationError(x);
|
IllegalAccessException |
|
||||||
} catch (IllegalAccessException x) {
|
InstantiationException |
|
||||||
throw new ServiceConfigurationError(x);
|
SecurityException x) {
|
||||||
} catch (InstantiationException x) {
|
|
||||||
throw new ServiceConfigurationError(x);
|
|
||||||
} catch (SecurityException x) {
|
|
||||||
throw new ServiceConfigurationError(x);
|
throw new ServiceConfigurationError(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean loadProviderAsService() {
|
private static boolean loadProviderAsService() {
|
||||||
Iterator i = Service.providers(HttpServerProvider.class,
|
@SuppressWarnings("unchecked")
|
||||||
|
Iterator<HttpServerProvider> i = Service.providers(HttpServerProvider.class,
|
||||||
ClassLoader.getSystemClassLoader());
|
ClassLoader.getSystemClassLoader());
|
||||||
for (;;) {
|
for (;;) {
|
||||||
try {
|
try {
|
||||||
if (!i.hasNext())
|
if (!i.hasNext())
|
||||||
return false;
|
return false;
|
||||||
provider = (HttpServerProvider)i.next();
|
provider = i.next();
|
||||||
return true;
|
return true;
|
||||||
} catch (ServiceConfigurationError sce) {
|
} catch (ServiceConfigurationError sce) {
|
||||||
if (sce.getCause() instanceof SecurityException) {
|
if (sce.getCause() instanceof SecurityException) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -77,7 +77,7 @@ final class SSLSecurity {
|
|||||||
{
|
{
|
||||||
Provider provider = service.getProvider();
|
Provider provider = service.getProvider();
|
||||||
String className = service.getClassName();
|
String className = service.getClassName();
|
||||||
Class implClass;
|
Class<?> implClass;
|
||||||
try {
|
try {
|
||||||
ClassLoader cl = provider.getClass().getClassLoader();
|
ClassLoader cl = provider.getClass().getClassLoader();
|
||||||
if (cl == null) {
|
if (cl == null) {
|
||||||
@ -133,8 +133,8 @@ final class SSLSecurity {
|
|||||||
* or someone has removed classes from the jsse.jar file.
|
* or someone has removed classes from the jsse.jar file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Class typeClassJavax;
|
Class<?> typeClassJavax;
|
||||||
Class typeClassCom;
|
Class<?> typeClassCom;
|
||||||
Object obj = null;
|
Object obj = null;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -237,7 +237,7 @@ final class SSLSecurity {
|
|||||||
/*
|
/*
|
||||||
* Checks whether one class is the superclass of another
|
* Checks whether one class is the superclass of another
|
||||||
*/
|
*/
|
||||||
private static boolean checkSuperclass(Class subclass, Class superclass) {
|
private static boolean checkSuperclass(Class<?> subclass, Class<?> superclass) {
|
||||||
if ((subclass == null) || (superclass == null))
|
if ((subclass == null) || (superclass == null))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -276,7 +276,6 @@ final class SSLSecurity {
|
|||||||
* object. This also mean that anything going down into the SPI
|
* object. This also mean that anything going down into the SPI
|
||||||
* needs to be wrapped, as well as anything coming back up.
|
* needs to be wrapped, as well as anything coming back up.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
final class SSLContextSpiWrapper extends SSLContextSpi {
|
final class SSLContextSpiWrapper extends SSLContextSpi {
|
||||||
|
|
||||||
private javax.net.ssl.SSLContext theSSLContext;
|
private javax.net.ssl.SSLContext theSSLContext;
|
||||||
|
@ -165,10 +165,10 @@ class VerifierWrapper implements javax.net.ssl.HostnameVerifier {
|
|||||||
private static String getServername(X509Certificate peerCert) {
|
private static String getServername(X509Certificate peerCert) {
|
||||||
try {
|
try {
|
||||||
// compare to subjectAltNames if dnsName is present
|
// compare to subjectAltNames if dnsName is present
|
||||||
Collection subjAltNames = peerCert.getSubjectAlternativeNames();
|
Collection<List<?>> subjAltNames = peerCert.getSubjectAlternativeNames();
|
||||||
if (subjAltNames != null) {
|
if (subjAltNames != null) {
|
||||||
for (Iterator itr = subjAltNames.iterator(); itr.hasNext(); ) {
|
for (Iterator<List<?>> itr = subjAltNames.iterator(); itr.hasNext(); ) {
|
||||||
List next = (List)itr.next();
|
List<?> next = itr.next();
|
||||||
if (((Integer)next.get(0)).intValue() == 2) {
|
if (((Integer)next.get(0)).intValue() == 2) {
|
||||||
// compare dNSName with host in url
|
// compare dNSName with host in url
|
||||||
String dnsName = ((String)next.get(1));
|
String dnsName = ((String)next.get(1));
|
||||||
|
@ -91,6 +91,9 @@ FileChooser.updateButtonToolTipText=Update directory listing
|
|||||||
FileChooser.helpButtonToolTipText=FileChooser help
|
FileChooser.helpButtonToolTipText=FileChooser help
|
||||||
FileChooser.directoryOpenButtonToolTipText=Open selected directory
|
FileChooser.directoryOpenButtonToolTipText=Open selected directory
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=Preview
|
ColorChooser.previewText=Preview
|
||||||
ColorChooser.okText=OK
|
ColorChooser.okText=OK
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Verzeichnisliste aktualisieren
|
|||||||
FileChooser.helpButtonToolTipText=FileChooser-Hilfe
|
FileChooser.helpButtonToolTipText=FileChooser-Hilfe
|
||||||
FileChooser.directoryOpenButtonToolTipText=Ausgew\u00E4hltes Verzeichnis \u00F6ffnen
|
FileChooser.directoryOpenButtonToolTipText=Ausgew\u00E4hltes Verzeichnis \u00F6ffnen
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=Vorschau
|
ColorChooser.previewText=Vorschau
|
||||||
ColorChooser.okText=OK
|
ColorChooser.okText=OK
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Actualizar lista de directorios
|
|||||||
FileChooser.helpButtonToolTipText=Ayuda del Selector de Archivos
|
FileChooser.helpButtonToolTipText=Ayuda del Selector de Archivos
|
||||||
FileChooser.directoryOpenButtonToolTipText=Abrir directorio seleccionado
|
FileChooser.directoryOpenButtonToolTipText=Abrir directorio seleccionado
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=Presentaci\u00F3n Preliminar
|
ColorChooser.previewText=Presentaci\u00F3n Preliminar
|
||||||
ColorChooser.okText=Aceptar
|
ColorChooser.okText=Aceptar
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Met \u00E0 jour la liste des r\u00E9pertoire
|
|||||||
FileChooser.helpButtonToolTipText=Aide du s\u00E9lecteur de fichiers
|
FileChooser.helpButtonToolTipText=Aide du s\u00E9lecteur de fichiers
|
||||||
FileChooser.directoryOpenButtonToolTipText=Ouvre le r\u00E9pertoire s\u00E9lectionn\u00E9
|
FileChooser.directoryOpenButtonToolTipText=Ouvre le r\u00E9pertoire s\u00E9lectionn\u00E9
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=Aper\u00E7u
|
ColorChooser.previewText=Aper\u00E7u
|
||||||
ColorChooser.okText=OK
|
ColorChooser.okText=OK
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Aggiorna la lista directory
|
|||||||
FileChooser.helpButtonToolTipText=Guida FileChooser
|
FileChooser.helpButtonToolTipText=Guida FileChooser
|
||||||
FileChooser.directoryOpenButtonToolTipText=Apre la directory selezionata
|
FileChooser.directoryOpenButtonToolTipText=Apre la directory selezionata
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=Anteprima
|
ColorChooser.previewText=Anteprima
|
||||||
ColorChooser.okText=OK
|
ColorChooser.okText=OK
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u
|
|||||||
FileChooser.helpButtonToolTipText=FileChooser\u306E\u30D8\u30EB\u30D7\u3067\u3059
|
FileChooser.helpButtonToolTipText=FileChooser\u306E\u30D8\u30EB\u30D7\u3067\u3059
|
||||||
FileChooser.directoryOpenButtonToolTipText=\u9078\u629E\u3057\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u304D\u307E\u3059
|
FileChooser.directoryOpenButtonToolTipText=\u9078\u629E\u3057\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u304D\u307E\u3059
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=\u30D7\u30EC\u30D3\u30E5\u30FC
|
ColorChooser.previewText=\u30D7\u30EC\u30D3\u30E5\u30FC
|
||||||
ColorChooser.okText=OK
|
ColorChooser.okText=OK
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D \uAC31
|
|||||||
FileChooser.helpButtonToolTipText=FileChooser \uB3C4\uC6C0\uB9D0
|
FileChooser.helpButtonToolTipText=FileChooser \uB3C4\uC6C0\uB9D0
|
||||||
FileChooser.directoryOpenButtonToolTipText=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30
|
FileChooser.directoryOpenButtonToolTipText=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=\uBBF8\uB9AC\uBCF4\uAE30
|
ColorChooser.previewText=\uBBF8\uB9AC\uBCF4\uAE30
|
||||||
ColorChooser.okText=\uD655\uC778
|
ColorChooser.okText=\uD655\uC778
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Atualizar lista de diret\u00F3rios
|
|||||||
FileChooser.helpButtonToolTipText=Ajuda do FileChooser
|
FileChooser.helpButtonToolTipText=Ajuda do FileChooser
|
||||||
FileChooser.directoryOpenButtonToolTipText=Abrir diret\u00F3rio selecionado
|
FileChooser.directoryOpenButtonToolTipText=Abrir diret\u00F3rio selecionado
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=Visualizar
|
ColorChooser.previewText=Visualizar
|
||||||
ColorChooser.okText=OK
|
ColorChooser.okText=OK
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Uppdatera kataloglistan
|
|||||||
FileChooser.helpButtonToolTipText=Hj\u00E4lp - Filv\u00E4ljare
|
FileChooser.helpButtonToolTipText=Hj\u00E4lp - Filv\u00E4ljare
|
||||||
FileChooser.directoryOpenButtonToolTipText=\u00D6ppna vald katalog
|
FileChooser.directoryOpenButtonToolTipText=\u00D6ppna vald katalog
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=Granska
|
ColorChooser.previewText=Granska
|
||||||
ColorChooser.okText=OK
|
ColorChooser.okText=OK
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u66F4\u65B0\u76EE\u5F55\u5217\u8868
|
|||||||
FileChooser.helpButtonToolTipText=FileChooser \u5E2E\u52A9
|
FileChooser.helpButtonToolTipText=FileChooser \u5E2E\u52A9
|
||||||
FileChooser.directoryOpenButtonToolTipText=\u6253\u5F00\u9009\u62E9\u7684\u76EE\u5F55
|
FileChooser.directoryOpenButtonToolTipText=\u6253\u5F00\u9009\u62E9\u7684\u76EE\u5F55
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=\u9884\u89C8
|
ColorChooser.previewText=\u9884\u89C8
|
||||||
ColorChooser.okText=\u786E\u5B9A
|
ColorChooser.okText=\u786E\u5B9A
|
||||||
|
@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u66F4\u65B0\u76EE\u9304\u6E05\u55AE
|
|||||||
FileChooser.helpButtonToolTipText=\u300C\u6A94\u6848\u9078\u64C7\u5668\u300D\u8AAA\u660E
|
FileChooser.helpButtonToolTipText=\u300C\u6A94\u6848\u9078\u64C7\u5668\u300D\u8AAA\u660E
|
||||||
FileChooser.directoryOpenButtonToolTipText=\u958B\u555F\u9078\u53D6\u7684\u76EE\u9304
|
FileChooser.directoryOpenButtonToolTipText=\u958B\u555F\u9078\u53D6\u7684\u76EE\u9304
|
||||||
|
|
||||||
|
FileChooser.filesListAccessibleName=Files List
|
||||||
|
FileChooser.filesDetailsAccessibleName=Files Details
|
||||||
|
|
||||||
############ COLOR CHOOSER STRINGS #############
|
############ COLOR CHOOSER STRINGS #############
|
||||||
ColorChooser.previewText=\u9810\u89BD
|
ColorChooser.previewText=\u9810\u89BD
|
||||||
ColorChooser.okText=\u78BA\u5B9A
|
ColorChooser.okText=\u78BA\u5B9A
|
||||||
|
@ -777,10 +777,6 @@ public class AWTKeyStroke implements Serializable {
|
|||||||
*/
|
*/
|
||||||
protected Object readResolve() throws java.io.ObjectStreamException {
|
protected Object readResolve() throws java.io.ObjectStreamException {
|
||||||
synchronized (AWTKeyStroke.class) {
|
synchronized (AWTKeyStroke.class) {
|
||||||
Class newClass = getClass();
|
|
||||||
if (!newClass.equals(ctor.getDeclaringClass())) {
|
|
||||||
registerSubclass(newClass);
|
|
||||||
}
|
|
||||||
return getCachedStroke(keyChar, keyCode, modifiers, onKeyRelease);
|
return getCachedStroke(keyChar, keyCode, modifiers, onKeyRelease);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,8 +34,10 @@ import java.security.AccessController;
|
|||||||
import sun.security.action.GetPropertyAction;
|
import sun.security.action.GetPropertyAction;
|
||||||
import sun.awt.AWTAutoShutdown;
|
import sun.awt.AWTAutoShutdown;
|
||||||
import sun.awt.SunToolkit;
|
import sun.awt.SunToolkit;
|
||||||
|
import sun.awt.AppContext;
|
||||||
|
|
||||||
import java.util.Vector;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import sun.util.logging.PlatformLogger;
|
import sun.util.logging.PlatformLogger;
|
||||||
|
|
||||||
import sun.awt.dnd.SunDragSourceContextPeer;
|
import sun.awt.dnd.SunDragSourceContextPeer;
|
||||||
@ -66,11 +68,11 @@ class EventDispatchThread extends Thread {
|
|||||||
|
|
||||||
private EventQueue theQueue;
|
private EventQueue theQueue;
|
||||||
private boolean doDispatch = true;
|
private boolean doDispatch = true;
|
||||||
private boolean threadDeathCaught = false;
|
private volatile boolean shutdown = false;
|
||||||
|
|
||||||
private static final int ANY_EVENT = -1;
|
private static final int ANY_EVENT = -1;
|
||||||
|
|
||||||
private Vector<EventFilter> eventFilters = new Vector<EventFilter>();
|
private ArrayList<EventFilter> eventFilters = new ArrayList<EventFilter>();
|
||||||
|
|
||||||
EventDispatchThread(ThreadGroup group, String name, EventQueue queue) {
|
EventDispatchThread(ThreadGroup group, String name, EventQueue queue) {
|
||||||
super(group, name);
|
super(group, name);
|
||||||
@ -84,6 +86,11 @@ class EventDispatchThread extends Thread {
|
|||||||
doDispatch = false;
|
doDispatch = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void interrupt() {
|
||||||
|
shutdown = true;
|
||||||
|
super.interrupt();
|
||||||
|
}
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
@ -93,8 +100,7 @@ class EventDispatchThread extends Thread {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} finally {
|
} finally {
|
||||||
EventQueue eq = getEventQueue();
|
if(getEventQueue().detachDispatchThread(this, shutdown)) {
|
||||||
if (eq.detachDispatchThread(this) || threadDeathCaught) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -124,10 +130,9 @@ class EventDispatchThread extends Thread {
|
|||||||
void pumpEventsForFilter(int id, Conditional cond, EventFilter filter) {
|
void pumpEventsForFilter(int id, Conditional cond, EventFilter filter) {
|
||||||
addEventFilter(filter);
|
addEventFilter(filter);
|
||||||
doDispatch = true;
|
doDispatch = true;
|
||||||
while (doDispatch && cond.evaluate()) {
|
shutdown |= isInterrupted();
|
||||||
if (isInterrupted() || !pumpOneEventForFilters(id)) {
|
while (doDispatch && !shutdown && cond.evaluate()) {
|
||||||
doDispatch = false;
|
pumpOneEventForFilters(id);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
removeEventFilter(filter);
|
removeEventFilter(filter);
|
||||||
}
|
}
|
||||||
@ -163,7 +168,7 @@ class EventDispatchThread extends Thread {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean pumpOneEventForFilters(int id) {
|
void pumpOneEventForFilters(int id) {
|
||||||
AWTEvent event = null;
|
AWTEvent event = null;
|
||||||
boolean eventOK = false;
|
boolean eventOK = false;
|
||||||
try {
|
try {
|
||||||
@ -212,24 +217,18 @@ class EventDispatchThread extends Thread {
|
|||||||
if (delegate != null) {
|
if (delegate != null) {
|
||||||
delegate.afterDispatch(event, handle);
|
delegate.afterDispatch(event, handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
catch (ThreadDeath death) {
|
catch (ThreadDeath death) {
|
||||||
threadDeathCaught = true;
|
shutdown = true;
|
||||||
return false;
|
throw death;
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (InterruptedException interruptedException) {
|
catch (InterruptedException interruptedException) {
|
||||||
return false; // AppContext.dispose() interrupts all
|
shutdown = true; // AppContext.dispose() interrupts all
|
||||||
// Threads in the AppContext
|
// Threads in the AppContext
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Throwable e) {
|
catch (Throwable e) {
|
||||||
processException(e);
|
processException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processException(Throwable e) {
|
private void processException(Throwable e) {
|
||||||
|
@ -47,6 +47,7 @@ import sun.awt.AWTAccessor;
|
|||||||
|
|
||||||
import java.util.concurrent.locks.Condition;
|
import java.util.concurrent.locks.Condition;
|
||||||
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.Lock;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
import java.security.AccessControlContext;
|
import java.security.AccessControlContext;
|
||||||
import java.security.ProtectionDomain;
|
import java.security.ProtectionDomain;
|
||||||
@ -99,12 +100,7 @@ import sun.misc.JavaSecurityAccess;
|
|||||||
* @since 1.1
|
* @since 1.1
|
||||||
*/
|
*/
|
||||||
public class EventQueue {
|
public class EventQueue {
|
||||||
|
private static final AtomicInteger threadInitNumber = new AtomicInteger(0);
|
||||||
// From Thread.java
|
|
||||||
private static int threadInitNumber;
|
|
||||||
private static synchronized int nextThreadNum() {
|
|
||||||
return threadInitNumber++;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final int LOW_PRIORITY = 0;
|
private static final int LOW_PRIORITY = 0;
|
||||||
private static final int NORM_PRIORITY = 1;
|
private static final int NORM_PRIORITY = 1;
|
||||||
@ -175,9 +171,9 @@ public class EventQueue {
|
|||||||
* Non-zero if a thread is waiting in getNextEvent(int) for an event of
|
* Non-zero if a thread is waiting in getNextEvent(int) for an event of
|
||||||
* a particular ID to be posted to the queue.
|
* a particular ID to be posted to the queue.
|
||||||
*/
|
*/
|
||||||
private int waitForID;
|
private volatile int waitForID;
|
||||||
|
|
||||||
private final String name = "AWT-EventQueue-" + nextThreadNum();
|
private final String name = "AWT-EventQueue-" + threadInitNumber.getAndIncrement();
|
||||||
|
|
||||||
private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue");
|
private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue");
|
||||||
|
|
||||||
@ -1030,7 +1026,7 @@ public class EventQueue {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean detachDispatchThread(EventDispatchThread edt) {
|
final boolean detachDispatchThread(EventDispatchThread edt, boolean forceDetach) {
|
||||||
/*
|
/*
|
||||||
* This synchronized block is to secure that the event dispatch
|
* This synchronized block is to secure that the event dispatch
|
||||||
* thread won't die in the middle of posting a new event to the
|
* thread won't die in the middle of posting a new event to the
|
||||||
@ -1049,7 +1045,7 @@ public class EventQueue {
|
|||||||
* Fix for 4648733. Check both the associated java event
|
* Fix for 4648733. Check both the associated java event
|
||||||
* queue and the PostEventQueue.
|
* queue and the PostEventQueue.
|
||||||
*/
|
*/
|
||||||
if ((peekEvent() != null) || !SunToolkit.isPostEventQueueEmpty()) {
|
if (!forceDetach && (peekEvent() != null) || !SunToolkit.isPostEventQueueEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
dispatchThread = null;
|
dispatchThread = null;
|
||||||
|
@ -56,16 +56,6 @@ class FileInputStream extends InputStream
|
|||||||
private final Object closeLock = new Object();
|
private final Object closeLock = new Object();
|
||||||
private volatile boolean closed = false;
|
private volatile boolean closed = false;
|
||||||
|
|
||||||
private static final ThreadLocal<Boolean> runningFinalize =
|
|
||||||
new ThreadLocal<>();
|
|
||||||
|
|
||||||
private static boolean isRunningFinalize() {
|
|
||||||
Boolean val;
|
|
||||||
if ((val = runningFinalize.get()) != null)
|
|
||||||
return val.booleanValue();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a <code>FileInputStream</code> by
|
* Creates a <code>FileInputStream</code> by
|
||||||
* opening a connection to an actual file,
|
* opening a connection to an actual file,
|
||||||
@ -319,10 +309,10 @@ class FileInputStream extends InputStream
|
|||||||
int useCount = fd.decrementAndGetUseCount();
|
int useCount = fd.decrementAndGetUseCount();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If FileDescriptor is still in use by another stream, the finalizer
|
* If FileDescriptor is still in use by another stream, we
|
||||||
* will not close it.
|
* will not close it.
|
||||||
*/
|
*/
|
||||||
if ((useCount <= 0) || !isRunningFinalize()) {
|
if (useCount <= 0) {
|
||||||
close0();
|
close0();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -391,18 +381,7 @@ class FileInputStream extends InputStream
|
|||||||
*/
|
*/
|
||||||
protected void finalize() throws IOException {
|
protected void finalize() throws IOException {
|
||||||
if ((fd != null) && (fd != FileDescriptor.in)) {
|
if ((fd != null) && (fd != FileDescriptor.in)) {
|
||||||
|
|
||||||
/*
|
|
||||||
* Finalizer should not release the FileDescriptor if another
|
|
||||||
* stream is still using it. If the user directly invokes
|
|
||||||
* close() then the FileDescriptor is also released.
|
|
||||||
*/
|
|
||||||
runningFinalize.set(Boolean.TRUE);
|
|
||||||
try {
|
|
||||||
close();
|
close();
|
||||||
} finally {
|
|
||||||
runningFinalize.set(Boolean.FALSE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,21 +63,12 @@ class FileOutputStream extends OutputStream
|
|||||||
private final boolean append;
|
private final boolean append;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The associated channel, initalized lazily.
|
* The associated channel, initialized lazily.
|
||||||
*/
|
*/
|
||||||
private FileChannel channel;
|
private FileChannel channel;
|
||||||
|
|
||||||
private final Object closeLock = new Object();
|
private final Object closeLock = new Object();
|
||||||
private volatile boolean closed = false;
|
private volatile boolean closed = false;
|
||||||
private static final ThreadLocal<Boolean> runningFinalize =
|
|
||||||
new ThreadLocal<>();
|
|
||||||
|
|
||||||
private static boolean isRunningFinalize() {
|
|
||||||
Boolean val;
|
|
||||||
if ((val = runningFinalize.get()) != null)
|
|
||||||
return val.booleanValue();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a file output stream to write to the file with the
|
* Creates a file output stream to write to the file with the
|
||||||
@ -355,10 +346,10 @@ class FileOutputStream extends OutputStream
|
|||||||
int useCount = fd.decrementAndGetUseCount();
|
int useCount = fd.decrementAndGetUseCount();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If FileDescriptor is still in use by another stream, the finalizer
|
* If FileDescriptor is still in use by another stream, we
|
||||||
* will not close it.
|
* will not close it.
|
||||||
*/
|
*/
|
||||||
if ((useCount <= 0) || !isRunningFinalize()) {
|
if (useCount <= 0) {
|
||||||
close0();
|
close0();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -424,18 +415,7 @@ class FileOutputStream extends OutputStream
|
|||||||
if (fd == FileDescriptor.out || fd == FileDescriptor.err) {
|
if (fd == FileDescriptor.out || fd == FileDescriptor.err) {
|
||||||
flush();
|
flush();
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/*
|
|
||||||
* Finalizer should not release the FileDescriptor if another
|
|
||||||
* stream is still using it. If the user directly invokes
|
|
||||||
* close() then the FileDescriptor is also released.
|
|
||||||
*/
|
|
||||||
runningFinalize.set(Boolean.TRUE);
|
|
||||||
try {
|
|
||||||
close();
|
close();
|
||||||
} finally {
|
|
||||||
runningFinalize.set(Boolean.FALSE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1994, 2007, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -590,8 +590,15 @@ public class RandomAccessFile implements DataOutput, DataInput, Closeable {
|
|||||||
* Decrement FD use count associated with this stream.
|
* Decrement FD use count associated with this stream.
|
||||||
* The count got incremented by FileDescriptor during its construction.
|
* The count got incremented by FileDescriptor during its construction.
|
||||||
*/
|
*/
|
||||||
fd.decrementAndGetUseCount();
|
int useCount = fd.decrementAndGetUseCount();
|
||||||
close0();
|
|
||||||
|
/*
|
||||||
|
* If FileDescriptor is still in use by another stream, we
|
||||||
|
* will not close it.
|
||||||
|
*/
|
||||||
|
if (useCount <= 0) {
|
||||||
|
close0();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1994, 2006, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -101,7 +101,7 @@ public final class Boolean implements java.io.Serializable,
|
|||||||
* @param s the string to be converted to a {@code Boolean}.
|
* @param s the string to be converted to a {@code Boolean}.
|
||||||
*/
|
*/
|
||||||
public Boolean(String s) {
|
public Boolean(String s) {
|
||||||
this(toBoolean(s));
|
this(parseBoolean(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -118,7 +118,7 @@ public final class Boolean implements java.io.Serializable,
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static boolean parseBoolean(String s) {
|
public static boolean parseBoolean(String s) {
|
||||||
return toBoolean(s);
|
return ((s != null) && s.equalsIgnoreCase("true"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -159,7 +159,7 @@ public final class Boolean implements java.io.Serializable,
|
|||||||
* @return the {@code Boolean} value represented by the string.
|
* @return the {@code Boolean} value represented by the string.
|
||||||
*/
|
*/
|
||||||
public static Boolean valueOf(String s) {
|
public static Boolean valueOf(String s) {
|
||||||
return toBoolean(s) ? TRUE : FALSE;
|
return parseBoolean(s) ? TRUE : FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -229,15 +229,16 @@ public final class Boolean implements java.io.Serializable,
|
|||||||
*
|
*
|
||||||
* @param name the system property name.
|
* @param name the system property name.
|
||||||
* @return the {@code boolean} value of the system property.
|
* @return the {@code boolean} value of the system property.
|
||||||
|
* @throws SecurityException for the same reasons as
|
||||||
|
* {@link System#getProperty(String) System.getProperty}
|
||||||
* @see java.lang.System#getProperty(java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String)
|
||||||
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
public static boolean getBoolean(String name) {
|
public static boolean getBoolean(String name) {
|
||||||
boolean result = false;
|
boolean result = false;
|
||||||
try {
|
try {
|
||||||
result = toBoolean(System.getProperty(name));
|
result = parseBoolean(System.getProperty(name));
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException | NullPointerException e) {
|
||||||
} catch (NullPointerException e) {
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -275,8 +276,4 @@ public final class Boolean implements java.io.Serializable,
|
|||||||
public static int compare(boolean x, boolean y) {
|
public static int compare(boolean x, boolean y) {
|
||||||
return (x == y) ? 0 : (x ? 1 : -1);
|
return (x == y) ? 0 : (x ? 1 : -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean toBoolean(String name) {
|
|
||||||
return ((name != null) && name.equalsIgnoreCase("true"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -276,14 +276,14 @@ public final class Double extends Number implements Comparable<Double> {
|
|||||||
* 7.19.6.1; however, the output of this method is more
|
* 7.19.6.1; however, the output of this method is more
|
||||||
* tightly specified.
|
* tightly specified.
|
||||||
*/
|
*/
|
||||||
if (!FpUtils.isFinite(d) )
|
if (!isFinite(d) )
|
||||||
// For infinity and NaN, use the decimal output.
|
// For infinity and NaN, use the decimal output.
|
||||||
return Double.toString(d);
|
return Double.toString(d);
|
||||||
else {
|
else {
|
||||||
// Initialized to maximum size of output.
|
// Initialized to maximum size of output.
|
||||||
StringBuffer answer = new StringBuffer(24);
|
StringBuffer answer = new StringBuffer(24);
|
||||||
|
|
||||||
if (FpUtils.rawCopySign(1.0, d) == -1.0) // value is negative,
|
if (Math.copySign(1.0, d) == -1.0) // value is negative,
|
||||||
answer.append("-"); // so append sign info
|
answer.append("-"); // so append sign info
|
||||||
|
|
||||||
answer.append("0x");
|
answer.append("0x");
|
||||||
@ -322,7 +322,7 @@ public final class Double extends Number implements Comparable<Double> {
|
|||||||
// E_min -1).
|
// E_min -1).
|
||||||
answer.append("p" + (subnormal ?
|
answer.append("p" + (subnormal ?
|
||||||
DoubleConsts.MIN_EXPONENT:
|
DoubleConsts.MIN_EXPONENT:
|
||||||
FpUtils.getExponent(d) ));
|
Math.getExponent(d) ));
|
||||||
}
|
}
|
||||||
return answer.toString();
|
return answer.toString();
|
||||||
}
|
}
|
||||||
@ -548,7 +548,7 @@ public final class Double extends Number implements Comparable<Double> {
|
|||||||
* @return {@code true} if the value of the argument is NaN;
|
* @return {@code true} if the value of the argument is NaN;
|
||||||
* {@code false} otherwise.
|
* {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
static public boolean isNaN(double v) {
|
public static boolean isNaN(double v) {
|
||||||
return (v != v);
|
return (v != v);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -560,10 +560,24 @@ public final class Double extends Number implements Comparable<Double> {
|
|||||||
* @return {@code true} if the value of the argument is positive
|
* @return {@code true} if the value of the argument is positive
|
||||||
* infinity or negative infinity; {@code false} otherwise.
|
* infinity or negative infinity; {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
static public boolean isInfinite(double v) {
|
public static boolean isInfinite(double v) {
|
||||||
return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);
|
return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns {@code true} if the argument is a finite floating-point
|
||||||
|
* value; returns {@code false} otherwise (for NaN and infinity
|
||||||
|
* arguments).
|
||||||
|
*
|
||||||
|
* @param d the {@code double} value to be tested
|
||||||
|
* @return {@code true} if the argument is a finite
|
||||||
|
* floating-point value, {@code false} otherwise.
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public static boolean isFinite(double d) {
|
||||||
|
return Math.abs(d) <= DoubleConsts.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The value of the Double.
|
* The value of the Double.
|
||||||
*
|
*
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
package java.lang;
|
package java.lang;
|
||||||
|
|
||||||
import sun.misc.FloatingDecimal;
|
import sun.misc.FloatingDecimal;
|
||||||
import sun.misc.FpUtils;
|
|
||||||
import sun.misc.FloatConsts;
|
import sun.misc.FloatConsts;
|
||||||
import sun.misc.DoubleConsts;
|
import sun.misc.DoubleConsts;
|
||||||
|
|
||||||
@ -279,10 +278,10 @@ public final class Float extends Number implements Comparable<Float> {
|
|||||||
// Adjust exponent to create subnormal double, then
|
// Adjust exponent to create subnormal double, then
|
||||||
// replace subnormal double exponent with subnormal float
|
// replace subnormal double exponent with subnormal float
|
||||||
// exponent
|
// exponent
|
||||||
String s = Double.toHexString(FpUtils.scalb((double)f,
|
String s = Double.toHexString(Math.scalb((double)f,
|
||||||
/* -1022+126 */
|
/* -1022+126 */
|
||||||
DoubleConsts.MIN_EXPONENT-
|
DoubleConsts.MIN_EXPONENT-
|
||||||
FloatConsts.MIN_EXPONENT));
|
FloatConsts.MIN_EXPONENT));
|
||||||
return s.replaceFirst("p-1022$", "p-126");
|
return s.replaceFirst("p-1022$", "p-126");
|
||||||
}
|
}
|
||||||
else // double string will be the same as float string
|
else // double string will be the same as float string
|
||||||
@ -460,7 +459,7 @@ public final class Float extends Number implements Comparable<Float> {
|
|||||||
* @return {@code true} if the argument is NaN;
|
* @return {@code true} if the argument is NaN;
|
||||||
* {@code false} otherwise.
|
* {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
static public boolean isNaN(float v) {
|
public static boolean isNaN(float v) {
|
||||||
return (v != v);
|
return (v != v);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -472,10 +471,25 @@ public final class Float extends Number implements Comparable<Float> {
|
|||||||
* @return {@code true} if the argument is positive infinity or
|
* @return {@code true} if the argument is positive infinity or
|
||||||
* negative infinity; {@code false} otherwise.
|
* negative infinity; {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
static public boolean isInfinite(float v) {
|
public static boolean isInfinite(float v) {
|
||||||
return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);
|
return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns {@code true} if the argument is a finite floating-point
|
||||||
|
* value; returns {@code false} otherwise (for NaN and infinity
|
||||||
|
* arguments).
|
||||||
|
*
|
||||||
|
* @param f the {@code float} value to be tested
|
||||||
|
* @return {@code true} if the argument is a finite
|
||||||
|
* floating-point value, {@code false} otherwise.
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public static boolean isFinite(float f) {
|
||||||
|
return Math.abs(f) <= FloatConsts.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The value of the Float.
|
* The value of the Float.
|
||||||
*
|
*
|
||||||
|
@ -797,6 +797,8 @@ public final class Integer extends Number implements Comparable<Integer> {
|
|||||||
*
|
*
|
||||||
* @param nm property name.
|
* @param nm property name.
|
||||||
* @return the {@code Integer} value of the property.
|
* @return the {@code Integer} value of the property.
|
||||||
|
* @throws SecurityException for the same reasons as
|
||||||
|
* {@link System#getProperty(String) System.getProperty}
|
||||||
* @see java.lang.System#getProperty(java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String)
|
||||||
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@ -841,6 +843,8 @@ public final class Integer extends Number implements Comparable<Integer> {
|
|||||||
* @param nm property name.
|
* @param nm property name.
|
||||||
* @param val default value.
|
* @param val default value.
|
||||||
* @return the {@code Integer} value of the property.
|
* @return the {@code Integer} value of the property.
|
||||||
|
* @throws SecurityException for the same reasons as
|
||||||
|
* {@link System#getProperty(String) System.getProperty}
|
||||||
* @see java.lang.System#getProperty(java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String)
|
||||||
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@ -881,6 +885,8 @@ public final class Integer extends Number implements Comparable<Integer> {
|
|||||||
* @param nm property name.
|
* @param nm property name.
|
||||||
* @param val default value.
|
* @param val default value.
|
||||||
* @return the {@code Integer} value of the property.
|
* @return the {@code Integer} value of the property.
|
||||||
|
* @throws SecurityException for the same reasons as
|
||||||
|
* {@link System#getProperty(String) System.getProperty}
|
||||||
* @see System#getProperty(java.lang.String)
|
* @see System#getProperty(java.lang.String)
|
||||||
* @see System#getProperty(java.lang.String, java.lang.String)
|
* @see System#getProperty(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
|
@ -827,6 +827,8 @@ public final class Long extends Number implements Comparable<Long> {
|
|||||||
*
|
*
|
||||||
* @param nm property name.
|
* @param nm property name.
|
||||||
* @return the {@code Long} value of the property.
|
* @return the {@code Long} value of the property.
|
||||||
|
* @throws SecurityException for the same reasons as
|
||||||
|
* {@link System#getProperty(String) System.getProperty}
|
||||||
* @see java.lang.System#getProperty(java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String)
|
||||||
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@ -870,6 +872,8 @@ public final class Long extends Number implements Comparable<Long> {
|
|||||||
* @param nm property name.
|
* @param nm property name.
|
||||||
* @param val default value.
|
* @param val default value.
|
||||||
* @return the {@code Long} value of the property.
|
* @return the {@code Long} value of the property.
|
||||||
|
* @throws SecurityException for the same reasons as
|
||||||
|
* {@link System#getProperty(String) System.getProperty}
|
||||||
* @see java.lang.System#getProperty(java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String)
|
||||||
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@ -917,6 +921,8 @@ public final class Long extends Number implements Comparable<Long> {
|
|||||||
* @param nm property name.
|
* @param nm property name.
|
||||||
* @param val default value.
|
* @param val default value.
|
||||||
* @return the {@code Long} value of the property.
|
* @return the {@code Long} value of the property.
|
||||||
|
* @throws SecurityException for the same reasons as
|
||||||
|
* {@link System#getProperty(String) System.getProperty}
|
||||||
* @see System#getProperty(java.lang.String)
|
* @see System#getProperty(java.lang.String)
|
||||||
* @see System#getProperty(java.lang.String, java.lang.String)
|
* @see System#getProperty(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
|
@ -26,6 +26,8 @@
|
|||||||
package java.lang;
|
package java.lang;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import sun.misc.FloatConsts;
|
||||||
|
import sun.misc.DoubleConsts;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The class {@code Math} contains methods for performing basic
|
* The class {@code Math} contains methods for performing basic
|
||||||
@ -963,7 +965,31 @@ public final class Math {
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static double ulp(double d) {
|
public static double ulp(double d) {
|
||||||
return sun.misc.FpUtils.ulp(d);
|
int exp = getExponent(d);
|
||||||
|
|
||||||
|
switch(exp) {
|
||||||
|
case DoubleConsts.MAX_EXPONENT+1: // NaN or infinity
|
||||||
|
return Math.abs(d);
|
||||||
|
|
||||||
|
case DoubleConsts.MIN_EXPONENT-1: // zero or subnormal
|
||||||
|
return Double.MIN_VALUE;
|
||||||
|
|
||||||
|
default:
|
||||||
|
assert exp <= DoubleConsts.MAX_EXPONENT && exp >= DoubleConsts.MIN_EXPONENT;
|
||||||
|
|
||||||
|
// ulp(x) is usually 2^(SIGNIFICAND_WIDTH-1)*(2^ilogb(x))
|
||||||
|
exp = exp - (DoubleConsts.SIGNIFICAND_WIDTH-1);
|
||||||
|
if (exp >= DoubleConsts.MIN_EXPONENT) {
|
||||||
|
return powerOfTwoD(exp);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// return a subnormal result; left shift integer
|
||||||
|
// representation of Double.MIN_VALUE appropriate
|
||||||
|
// number of positions
|
||||||
|
return Double.longBitsToDouble(1L <<
|
||||||
|
(exp - (DoubleConsts.MIN_EXPONENT - (DoubleConsts.SIGNIFICAND_WIDTH-1)) ));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -990,7 +1016,31 @@ public final class Math {
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static float ulp(float f) {
|
public static float ulp(float f) {
|
||||||
return sun.misc.FpUtils.ulp(f);
|
int exp = getExponent(f);
|
||||||
|
|
||||||
|
switch(exp) {
|
||||||
|
case FloatConsts.MAX_EXPONENT+1: // NaN or infinity
|
||||||
|
return Math.abs(f);
|
||||||
|
|
||||||
|
case FloatConsts.MIN_EXPONENT-1: // zero or subnormal
|
||||||
|
return FloatConsts.MIN_VALUE;
|
||||||
|
|
||||||
|
default:
|
||||||
|
assert exp <= FloatConsts.MAX_EXPONENT && exp >= FloatConsts.MIN_EXPONENT;
|
||||||
|
|
||||||
|
// ulp(x) is usually 2^(SIGNIFICAND_WIDTH-1)*(2^ilogb(x))
|
||||||
|
exp = exp - (FloatConsts.SIGNIFICAND_WIDTH-1);
|
||||||
|
if (exp >= FloatConsts.MIN_EXPONENT) {
|
||||||
|
return powerOfTwoF(exp);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// return a subnormal result; left shift integer
|
||||||
|
// representation of FloatConsts.MIN_VALUE appropriate
|
||||||
|
// number of positions
|
||||||
|
return Float.intBitsToFloat(1 <<
|
||||||
|
(exp - (FloatConsts.MIN_EXPONENT - (FloatConsts.SIGNIFICAND_WIDTH-1)) ));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1011,7 +1061,7 @@ public final class Math {
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static double signum(double d) {
|
public static double signum(double d) {
|
||||||
return sun.misc.FpUtils.signum(d);
|
return (d == 0.0 || Double.isNaN(d))?d:copySign(1.0, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1032,7 +1082,7 @@ public final class Math {
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static float signum(float f) {
|
public static float signum(float f) {
|
||||||
return sun.misc.FpUtils.signum(f);
|
return (f == 0.0f || Float.isNaN(f))?f:copySign(1.0f, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1252,7 +1302,11 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static double copySign(double magnitude, double sign) {
|
public static double copySign(double magnitude, double sign) {
|
||||||
return sun.misc.FpUtils.rawCopySign(magnitude, sign);
|
return Double.longBitsToDouble((Double.doubleToRawLongBits(sign) &
|
||||||
|
(DoubleConsts.SIGN_BIT_MASK)) |
|
||||||
|
(Double.doubleToRawLongBits(magnitude) &
|
||||||
|
(DoubleConsts.EXP_BIT_MASK |
|
||||||
|
DoubleConsts.SIGNIF_BIT_MASK)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1271,7 +1325,11 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static float copySign(float magnitude, float sign) {
|
public static float copySign(float magnitude, float sign) {
|
||||||
return sun.misc.FpUtils.rawCopySign(magnitude, sign);
|
return Float.intBitsToFloat((Float.floatToRawIntBits(sign) &
|
||||||
|
(FloatConsts.SIGN_BIT_MASK)) |
|
||||||
|
(Float.floatToRawIntBits(magnitude) &
|
||||||
|
(FloatConsts.EXP_BIT_MASK |
|
||||||
|
FloatConsts.SIGNIF_BIT_MASK)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1289,7 +1347,13 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static int getExponent(float f) {
|
public static int getExponent(float f) {
|
||||||
return sun.misc.FpUtils.getExponent(f);
|
/*
|
||||||
|
* Bitwise convert f to integer, mask out exponent bits, shift
|
||||||
|
* to the right and then subtract out float's bias adjust to
|
||||||
|
* get true exponent value
|
||||||
|
*/
|
||||||
|
return ((Float.floatToRawIntBits(f) & FloatConsts.EXP_BIT_MASK) >>
|
||||||
|
(FloatConsts.SIGNIFICAND_WIDTH - 1)) - FloatConsts.EXP_BIAS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1307,7 +1371,13 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static int getExponent(double d) {
|
public static int getExponent(double d) {
|
||||||
return sun.misc.FpUtils.getExponent(d);
|
/*
|
||||||
|
* Bitwise convert d to long, mask out exponent bits, shift
|
||||||
|
* to the right and then subtract out double's bias adjust to
|
||||||
|
* get true exponent value.
|
||||||
|
*/
|
||||||
|
return (int)(((Double.doubleToRawLongBits(d) & DoubleConsts.EXP_BIT_MASK) >>
|
||||||
|
(DoubleConsts.SIGNIFICAND_WIDTH - 1)) - DoubleConsts.EXP_BIAS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1351,7 +1421,63 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static double nextAfter(double start, double direction) {
|
public static double nextAfter(double start, double direction) {
|
||||||
return sun.misc.FpUtils.nextAfter(start, direction);
|
/*
|
||||||
|
* The cases:
|
||||||
|
*
|
||||||
|
* nextAfter(+infinity, 0) == MAX_VALUE
|
||||||
|
* nextAfter(+infinity, +infinity) == +infinity
|
||||||
|
* nextAfter(-infinity, 0) == -MAX_VALUE
|
||||||
|
* nextAfter(-infinity, -infinity) == -infinity
|
||||||
|
*
|
||||||
|
* are naturally handled without any additional testing
|
||||||
|
*/
|
||||||
|
|
||||||
|
// First check for NaN values
|
||||||
|
if (Double.isNaN(start) || Double.isNaN(direction)) {
|
||||||
|
// return a NaN derived from the input NaN(s)
|
||||||
|
return start + direction;
|
||||||
|
} else if (start == direction) {
|
||||||
|
return direction;
|
||||||
|
} else { // start > direction or start < direction
|
||||||
|
// Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
|
||||||
|
// then bitwise convert start to integer.
|
||||||
|
long transducer = Double.doubleToRawLongBits(start + 0.0d);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* IEEE 754 floating-point numbers are lexicographically
|
||||||
|
* ordered if treated as signed- magnitude integers .
|
||||||
|
* Since Java's integers are two's complement,
|
||||||
|
* incrementing" the two's complement representation of a
|
||||||
|
* logically negative floating-point value *decrements*
|
||||||
|
* the signed-magnitude representation. Therefore, when
|
||||||
|
* the integer representation of a floating-point values
|
||||||
|
* is less than zero, the adjustment to the representation
|
||||||
|
* is in the opposite direction than would be expected at
|
||||||
|
* first .
|
||||||
|
*/
|
||||||
|
if (direction > start) { // Calculate next greater value
|
||||||
|
transducer = transducer + (transducer >= 0L ? 1L:-1L);
|
||||||
|
} else { // Calculate next lesser value
|
||||||
|
assert direction < start;
|
||||||
|
if (transducer > 0L)
|
||||||
|
--transducer;
|
||||||
|
else
|
||||||
|
if (transducer < 0L )
|
||||||
|
++transducer;
|
||||||
|
/*
|
||||||
|
* transducer==0, the result is -MIN_VALUE
|
||||||
|
*
|
||||||
|
* The transition from zero (implicitly
|
||||||
|
* positive) to the smallest negative
|
||||||
|
* signed magnitude value must be done
|
||||||
|
* explicitly.
|
||||||
|
*/
|
||||||
|
else
|
||||||
|
transducer = DoubleConsts.SIGN_BIT_MASK | 1L;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Double.longBitsToDouble(transducer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1394,7 +1520,63 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static float nextAfter(float start, double direction) {
|
public static float nextAfter(float start, double direction) {
|
||||||
return sun.misc.FpUtils.nextAfter(start, direction);
|
/*
|
||||||
|
* The cases:
|
||||||
|
*
|
||||||
|
* nextAfter(+infinity, 0) == MAX_VALUE
|
||||||
|
* nextAfter(+infinity, +infinity) == +infinity
|
||||||
|
* nextAfter(-infinity, 0) == -MAX_VALUE
|
||||||
|
* nextAfter(-infinity, -infinity) == -infinity
|
||||||
|
*
|
||||||
|
* are naturally handled without any additional testing
|
||||||
|
*/
|
||||||
|
|
||||||
|
// First check for NaN values
|
||||||
|
if (Float.isNaN(start) || Double.isNaN(direction)) {
|
||||||
|
// return a NaN derived from the input NaN(s)
|
||||||
|
return start + (float)direction;
|
||||||
|
} else if (start == direction) {
|
||||||
|
return (float)direction;
|
||||||
|
} else { // start > direction or start < direction
|
||||||
|
// Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
|
||||||
|
// then bitwise convert start to integer.
|
||||||
|
int transducer = Float.floatToRawIntBits(start + 0.0f);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* IEEE 754 floating-point numbers are lexicographically
|
||||||
|
* ordered if treated as signed- magnitude integers .
|
||||||
|
* Since Java's integers are two's complement,
|
||||||
|
* incrementing" the two's complement representation of a
|
||||||
|
* logically negative floating-point value *decrements*
|
||||||
|
* the signed-magnitude representation. Therefore, when
|
||||||
|
* the integer representation of a floating-point values
|
||||||
|
* is less than zero, the adjustment to the representation
|
||||||
|
* is in the opposite direction than would be expected at
|
||||||
|
* first.
|
||||||
|
*/
|
||||||
|
if (direction > start) {// Calculate next greater value
|
||||||
|
transducer = transducer + (transducer >= 0 ? 1:-1);
|
||||||
|
} else { // Calculate next lesser value
|
||||||
|
assert direction < start;
|
||||||
|
if (transducer > 0)
|
||||||
|
--transducer;
|
||||||
|
else
|
||||||
|
if (transducer < 0 )
|
||||||
|
++transducer;
|
||||||
|
/*
|
||||||
|
* transducer==0, the result is -MIN_VALUE
|
||||||
|
*
|
||||||
|
* The transition from zero (implicitly
|
||||||
|
* positive) to the smallest negative
|
||||||
|
* signed magnitude value must be done
|
||||||
|
* explicitly.
|
||||||
|
*/
|
||||||
|
else
|
||||||
|
transducer = FloatConsts.SIGN_BIT_MASK | 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Float.intBitsToFloat(transducer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1423,7 +1605,13 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static double nextUp(double d) {
|
public static double nextUp(double d) {
|
||||||
return sun.misc.FpUtils.nextUp(d);
|
if( Double.isNaN(d) || d == Double.POSITIVE_INFINITY)
|
||||||
|
return d;
|
||||||
|
else {
|
||||||
|
d += 0.0d;
|
||||||
|
return Double.longBitsToDouble(Double.doubleToRawLongBits(d) +
|
||||||
|
((d >= 0.0d)?+1L:-1L));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1452,9 +1640,88 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static float nextUp(float f) {
|
public static float nextUp(float f) {
|
||||||
return sun.misc.FpUtils.nextUp(f);
|
if( Float.isNaN(f) || f == FloatConsts.POSITIVE_INFINITY)
|
||||||
|
return f;
|
||||||
|
else {
|
||||||
|
f += 0.0f;
|
||||||
|
return Float.intBitsToFloat(Float.floatToRawIntBits(f) +
|
||||||
|
((f >= 0.0f)?+1:-1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the floating-point value adjacent to {@code d} in
|
||||||
|
* the direction of negative infinity. This method is
|
||||||
|
* semantically equivalent to {@code nextAfter(d,
|
||||||
|
* Double.NEGATIVE_INFINITY)}; however, a
|
||||||
|
* {@code nextDown} implementation may run faster than its
|
||||||
|
* equivalent {@code nextAfter} call.
|
||||||
|
*
|
||||||
|
* <p>Special Cases:
|
||||||
|
* <ul>
|
||||||
|
* <li> If the argument is NaN, the result is NaN.
|
||||||
|
*
|
||||||
|
* <li> If the argument is negative infinity, the result is
|
||||||
|
* negative infinity.
|
||||||
|
*
|
||||||
|
* <li> If the argument is zero, the result is
|
||||||
|
* {@code -Double.MIN_VALUE}
|
||||||
|
*
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* @param d starting floating-point value
|
||||||
|
* @return The adjacent floating-point value closer to negative
|
||||||
|
* infinity.
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public static double nextDown(double d) {
|
||||||
|
if (Double.isNaN(d) || d == Double.NEGATIVE_INFINITY)
|
||||||
|
return d;
|
||||||
|
else {
|
||||||
|
if (d == 0.0)
|
||||||
|
return -Double.MIN_VALUE;
|
||||||
|
else
|
||||||
|
return Double.longBitsToDouble(Double.doubleToRawLongBits(d) +
|
||||||
|
((d > 0.0d)?-1L:+1L));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the floating-point value adjacent to {@code f} in
|
||||||
|
* the direction of negative infinity. This method is
|
||||||
|
* semantically equivalent to {@code nextAfter(f,
|
||||||
|
* Float.NEGATIVE_INFINITY)}; however, a
|
||||||
|
* {@code nextDown} implementation may run faster than its
|
||||||
|
* equivalent {@code nextAfter} call.
|
||||||
|
*
|
||||||
|
* <p>Special Cases:
|
||||||
|
* <ul>
|
||||||
|
* <li> If the argument is NaN, the result is NaN.
|
||||||
|
*
|
||||||
|
* <li> If the argument is negative infinity, the result is
|
||||||
|
* negative infinity.
|
||||||
|
*
|
||||||
|
* <li> If the argument is zero, the result is
|
||||||
|
* {@code -Float.MIN_VALUE}
|
||||||
|
*
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* @param f starting floating-point value
|
||||||
|
* @return The adjacent floating-point value closer to negative
|
||||||
|
* infinity.
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public static float nextDown(float f) {
|
||||||
|
if (Float.isNaN(f) || f == Float.NEGATIVE_INFINITY)
|
||||||
|
return f;
|
||||||
|
else {
|
||||||
|
if (f == 0.0f)
|
||||||
|
return -Float.MIN_VALUE;
|
||||||
|
else
|
||||||
|
return Float.intBitsToFloat(Float.floatToRawIntBits(f) +
|
||||||
|
((f > 0.0f)?-1:+1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return {@code d} ×
|
* Return {@code d} ×
|
||||||
@ -1487,7 +1754,80 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static double scalb(double d, int scaleFactor) {
|
public static double scalb(double d, int scaleFactor) {
|
||||||
return sun.misc.FpUtils.scalb(d, scaleFactor);
|
/*
|
||||||
|
* This method does not need to be declared strictfp to
|
||||||
|
* compute the same correct result on all platforms. When
|
||||||
|
* scaling up, it does not matter what order the
|
||||||
|
* multiply-store operations are done; the result will be
|
||||||
|
* finite or overflow regardless of the operation ordering.
|
||||||
|
* However, to get the correct result when scaling down, a
|
||||||
|
* particular ordering must be used.
|
||||||
|
*
|
||||||
|
* When scaling down, the multiply-store operations are
|
||||||
|
* sequenced so that it is not possible for two consecutive
|
||||||
|
* multiply-stores to return subnormal results. If one
|
||||||
|
* multiply-store result is subnormal, the next multiply will
|
||||||
|
* round it away to zero. This is done by first multiplying
|
||||||
|
* by 2 ^ (scaleFactor % n) and then multiplying several
|
||||||
|
* times by by 2^n as needed where n is the exponent of number
|
||||||
|
* that is a covenient power of two. In this way, at most one
|
||||||
|
* real rounding error occurs. If the double value set is
|
||||||
|
* being used exclusively, the rounding will occur on a
|
||||||
|
* multiply. If the double-extended-exponent value set is
|
||||||
|
* being used, the products will (perhaps) be exact but the
|
||||||
|
* stores to d are guaranteed to round to the double value
|
||||||
|
* set.
|
||||||
|
*
|
||||||
|
* It is _not_ a valid implementation to first multiply d by
|
||||||
|
* 2^MIN_EXPONENT and then by 2 ^ (scaleFactor %
|
||||||
|
* MIN_EXPONENT) since even in a strictfp program double
|
||||||
|
* rounding on underflow could occur; e.g. if the scaleFactor
|
||||||
|
* argument was (MIN_EXPONENT - n) and the exponent of d was a
|
||||||
|
* little less than -(MIN_EXPONENT - n), meaning the final
|
||||||
|
* result would be subnormal.
|
||||||
|
*
|
||||||
|
* Since exact reproducibility of this method can be achieved
|
||||||
|
* without any undue performance burden, there is no
|
||||||
|
* compelling reason to allow double rounding on underflow in
|
||||||
|
* scalb.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// magnitude of a power of two so large that scaling a finite
|
||||||
|
// nonzero value by it would be guaranteed to over or
|
||||||
|
// underflow; due to rounding, scaling down takes takes an
|
||||||
|
// additional power of two which is reflected here
|
||||||
|
final int MAX_SCALE = DoubleConsts.MAX_EXPONENT + -DoubleConsts.MIN_EXPONENT +
|
||||||
|
DoubleConsts.SIGNIFICAND_WIDTH + 1;
|
||||||
|
int exp_adjust = 0;
|
||||||
|
int scale_increment = 0;
|
||||||
|
double exp_delta = Double.NaN;
|
||||||
|
|
||||||
|
// Make sure scaling factor is in a reasonable range
|
||||||
|
|
||||||
|
if(scaleFactor < 0) {
|
||||||
|
scaleFactor = Math.max(scaleFactor, -MAX_SCALE);
|
||||||
|
scale_increment = -512;
|
||||||
|
exp_delta = twoToTheDoubleScaleDown;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
scaleFactor = Math.min(scaleFactor, MAX_SCALE);
|
||||||
|
scale_increment = 512;
|
||||||
|
exp_delta = twoToTheDoubleScaleUp;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate (scaleFactor % +/-512), 512 = 2^9, using
|
||||||
|
// technique from "Hacker's Delight" section 10-2.
|
||||||
|
int t = (scaleFactor >> 9-1) >>> 32 - 9;
|
||||||
|
exp_adjust = ((scaleFactor + t) & (512 -1)) - t;
|
||||||
|
|
||||||
|
d *= powerOfTwoD(exp_adjust);
|
||||||
|
scaleFactor -= exp_adjust;
|
||||||
|
|
||||||
|
while(scaleFactor != 0) {
|
||||||
|
d *= exp_delta;
|
||||||
|
scaleFactor -= scale_increment;
|
||||||
|
}
|
||||||
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1521,6 +1861,49 @@ public final class Math {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static float scalb(float f, int scaleFactor) {
|
public static float scalb(float f, int scaleFactor) {
|
||||||
return sun.misc.FpUtils.scalb(f, scaleFactor);
|
// magnitude of a power of two so large that scaling a finite
|
||||||
|
// nonzero value by it would be guaranteed to over or
|
||||||
|
// underflow; due to rounding, scaling down takes takes an
|
||||||
|
// additional power of two which is reflected here
|
||||||
|
final int MAX_SCALE = FloatConsts.MAX_EXPONENT + -FloatConsts.MIN_EXPONENT +
|
||||||
|
FloatConsts.SIGNIFICAND_WIDTH + 1;
|
||||||
|
|
||||||
|
// Make sure scaling factor is in a reasonable range
|
||||||
|
scaleFactor = Math.max(Math.min(scaleFactor, MAX_SCALE), -MAX_SCALE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Since + MAX_SCALE for float fits well within the double
|
||||||
|
* exponent range and + float -> double conversion is exact
|
||||||
|
* the multiplication below will be exact. Therefore, the
|
||||||
|
* rounding that occurs when the double product is cast to
|
||||||
|
* float will be the correctly rounded float result. Since
|
||||||
|
* all operations other than the final multiply will be exact,
|
||||||
|
* it is not necessary to declare this method strictfp.
|
||||||
|
*/
|
||||||
|
return (float)((double)f*powerOfTwoD(scaleFactor));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Constants used in scalb
|
||||||
|
static double twoToTheDoubleScaleUp = powerOfTwoD(512);
|
||||||
|
static double twoToTheDoubleScaleDown = powerOfTwoD(-512);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a floating-point power of two in the normal range.
|
||||||
|
*/
|
||||||
|
static double powerOfTwoD(int n) {
|
||||||
|
assert(n >= DoubleConsts.MIN_EXPONENT && n <= DoubleConsts.MAX_EXPONENT);
|
||||||
|
return Double.longBitsToDouble((((long)n + (long)DoubleConsts.EXP_BIAS) <<
|
||||||
|
(DoubleConsts.SIGNIFICAND_WIDTH-1))
|
||||||
|
& DoubleConsts.EXP_BIT_MASK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a floating-point power of two in the normal range.
|
||||||
|
*/
|
||||||
|
public static float powerOfTwoF(int n) {
|
||||||
|
assert(n >= FloatConsts.MIN_EXPONENT && n <= FloatConsts.MAX_EXPONENT);
|
||||||
|
return Float.intBitsToFloat(((n + FloatConsts.EXP_BIAS) <<
|
||||||
|
(FloatConsts.SIGNIFICAND_WIDTH-1))
|
||||||
|
& FloatConsts.EXP_BIT_MASK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,7 @@ import java.lang.annotation.*;
|
|||||||
*
|
*
|
||||||
* </ul>
|
* </ul>
|
||||||
*
|
*
|
||||||
|
* @since 1.7
|
||||||
* @jls 4.7 Reifiable Types
|
* @jls 4.7 Reifiable Types
|
||||||
* @jls 8.4.1 Formal Parameters
|
* @jls 8.4.1 Formal Parameters
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
package java.lang;
|
package java.lang;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import sun.misc.FpUtils;
|
|
||||||
import sun.misc.DoubleConsts;
|
import sun.misc.DoubleConsts;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -428,7 +427,7 @@ public final class StrictMath {
|
|||||||
* 1.0, which is exact too.
|
* 1.0, which is exact too.
|
||||||
*/
|
*/
|
||||||
double twoToThe52 = (double)(1L << 52); // 2^52
|
double twoToThe52 = (double)(1L << 52); // 2^52
|
||||||
double sign = FpUtils.rawCopySign(1.0, a); // preserve sign info
|
double sign = Math.copySign(1.0, a); // preserve sign info
|
||||||
a = Math.abs(a);
|
a = Math.abs(a);
|
||||||
|
|
||||||
if (a < twoToThe52) { // E_min <= ilogb(a) <= 51
|
if (a < twoToThe52) { // E_min <= ilogb(a) <= 51
|
||||||
@ -955,7 +954,7 @@ public final class StrictMath {
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static double ulp(double d) {
|
public static double ulp(double d) {
|
||||||
return sun.misc.FpUtils.ulp(d);
|
return Math.ulp(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -982,7 +981,7 @@ public final class StrictMath {
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static float ulp(float f) {
|
public static float ulp(float f) {
|
||||||
return sun.misc.FpUtils.ulp(f);
|
return Math.ulp(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1003,7 +1002,7 @@ public final class StrictMath {
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static double signum(double d) {
|
public static double signum(double d) {
|
||||||
return sun.misc.FpUtils.signum(d);
|
return Math.signum(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1024,7 +1023,7 @@ public final class StrictMath {
|
|||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public static float signum(float f) {
|
public static float signum(float f) {
|
||||||
return sun.misc.FpUtils.signum(f);
|
return Math.signum(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1202,7 +1201,7 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static double copySign(double magnitude, double sign) {
|
public static double copySign(double magnitude, double sign) {
|
||||||
return sun.misc.FpUtils.copySign(magnitude, sign);
|
return Math.copySign(magnitude, (Double.isNaN(sign)?1.0d:sign));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1218,7 +1217,7 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static float copySign(float magnitude, float sign) {
|
public static float copySign(float magnitude, float sign) {
|
||||||
return sun.misc.FpUtils.copySign(magnitude, sign);
|
return Math.copySign(magnitude, (Float.isNaN(sign)?1.0f:sign));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Returns the unbiased exponent used in the representation of a
|
* Returns the unbiased exponent used in the representation of a
|
||||||
@ -1234,7 +1233,7 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static int getExponent(float f) {
|
public static int getExponent(float f) {
|
||||||
return sun.misc.FpUtils.getExponent(f);
|
return Math.getExponent(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1251,7 +1250,7 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static int getExponent(double d) {
|
public static int getExponent(double d) {
|
||||||
return sun.misc.FpUtils.getExponent(d);
|
return Math.getExponent(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1294,7 +1293,7 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static double nextAfter(double start, double direction) {
|
public static double nextAfter(double start, double direction) {
|
||||||
return sun.misc.FpUtils.nextAfter(start, direction);
|
return Math.nextAfter(start, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1336,7 +1335,7 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static float nextAfter(float start, double direction) {
|
public static float nextAfter(float start, double direction) {
|
||||||
return sun.misc.FpUtils.nextAfter(start, direction);
|
return Math.nextAfter(start, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1365,7 +1364,7 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static double nextUp(double d) {
|
public static double nextUp(double d) {
|
||||||
return sun.misc.FpUtils.nextUp(d);
|
return Math.nextUp(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1394,9 +1393,66 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static float nextUp(float f) {
|
public static float nextUp(float f) {
|
||||||
return sun.misc.FpUtils.nextUp(f);
|
return Math.nextUp(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the floating-point value adjacent to {@code d} in
|
||||||
|
* the direction of negative infinity. This method is
|
||||||
|
* semantically equivalent to {@code nextAfter(d,
|
||||||
|
* Double.NEGATIVE_INFINITY)}; however, a
|
||||||
|
* {@code nextDown} implementation may run faster than its
|
||||||
|
* equivalent {@code nextAfter} call.
|
||||||
|
*
|
||||||
|
* <p>Special Cases:
|
||||||
|
* <ul>
|
||||||
|
* <li> If the argument is NaN, the result is NaN.
|
||||||
|
*
|
||||||
|
* <li> If the argument is negative infinity, the result is
|
||||||
|
* negative infinity.
|
||||||
|
*
|
||||||
|
* <li> If the argument is zero, the result is
|
||||||
|
* {@code -Double.MIN_VALUE}
|
||||||
|
*
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* @param d starting floating-point value
|
||||||
|
* @return The adjacent floating-point value closer to negative
|
||||||
|
* infinity.
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public static double nextDown(double d) {
|
||||||
|
return Math.nextDown(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the floating-point value adjacent to {@code f} in
|
||||||
|
* the direction of negative infinity. This method is
|
||||||
|
* semantically equivalent to {@code nextAfter(f,
|
||||||
|
* Float.NEGATIVE_INFINITY)}; however, a
|
||||||
|
* {@code nextDown} implementation may run faster than its
|
||||||
|
* equivalent {@code nextAfter} call.
|
||||||
|
*
|
||||||
|
* <p>Special Cases:
|
||||||
|
* <ul>
|
||||||
|
* <li> If the argument is NaN, the result is NaN.
|
||||||
|
*
|
||||||
|
* <li> If the argument is negative infinity, the result is
|
||||||
|
* negative infinity.
|
||||||
|
*
|
||||||
|
* <li> If the argument is zero, the result is
|
||||||
|
* {@code -Float.MIN_VALUE}
|
||||||
|
*
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* @param f starting floating-point value
|
||||||
|
* @return The adjacent floating-point value closer to negative
|
||||||
|
* infinity.
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public static float nextDown(float f) {
|
||||||
|
return Math.nextDown(f);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return {@code d} ×
|
* Return {@code d} ×
|
||||||
@ -1429,7 +1485,7 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static double scalb(double d, int scaleFactor) {
|
public static double scalb(double d, int scaleFactor) {
|
||||||
return sun.misc.FpUtils.scalb(d, scaleFactor);
|
return Math.scalb(d, scaleFactor);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1463,6 +1519,6 @@ public final class StrictMath {
|
|||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
public static float scalb(float f, int scaleFactor) {
|
public static float scalb(float f, int scaleFactor) {
|
||||||
return sun.misc.FpUtils.scalb(f, scaleFactor);
|
return Math.scalb(f, scaleFactor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2919,6 +2919,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
|
|||||||
* result with the opposite sign.
|
* result with the opposite sign.
|
||||||
*
|
*
|
||||||
* @return this BigInteger converted to an {@code int}.
|
* @return this BigInteger converted to an {@code int}.
|
||||||
|
* @see #intValueExact()
|
||||||
*/
|
*/
|
||||||
public int intValue() {
|
public int intValue() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
@ -2939,6 +2940,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
|
|||||||
* result with the opposite sign.
|
* result with the opposite sign.
|
||||||
*
|
*
|
||||||
* @return this BigInteger converted to a {@code long}.
|
* @return this BigInteger converted to a {@code long}.
|
||||||
|
* @see #longValueExact()
|
||||||
*/
|
*/
|
||||||
public long longValue() {
|
public long longValue() {
|
||||||
long result = 0;
|
long result = 0;
|
||||||
@ -3382,4 +3384,84 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this {@code BigInteger} to a {@code long}, checking
|
||||||
|
* for lost information. If the value of this {@code BigInteger}
|
||||||
|
* is out of the range of the {@code long} type, then an
|
||||||
|
* {@code ArithmeticException} is thrown.
|
||||||
|
*
|
||||||
|
* @return this {@code BigInteger} converted to a {@code long}.
|
||||||
|
* @throws ArithmeticException if the value of {@code this} will
|
||||||
|
* not exactly fit in a {@code long}.
|
||||||
|
* @see BigInteger#longValue
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public long longValueExact() {
|
||||||
|
if (mag.length <= 2 && bitLength() <= 63)
|
||||||
|
return longValue();
|
||||||
|
else
|
||||||
|
throw new ArithmeticException("BigInteger out of long range");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this {@code BigInteger} to an {@code int}, checking
|
||||||
|
* for lost information. If the value of this {@code BigInteger}
|
||||||
|
* is out of the range of the {@code int} type, then an
|
||||||
|
* {@code ArithmeticException} is thrown.
|
||||||
|
*
|
||||||
|
* @return this {@code BigInteger} converted to an {@code int}.
|
||||||
|
* @throws ArithmeticException if the value of {@code this} will
|
||||||
|
* not exactly fit in a {@code int}.
|
||||||
|
* @see BigInteger#intValue
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public int intValueExact() {
|
||||||
|
if (mag.length <= 1 && bitLength() <= 31)
|
||||||
|
return intValue();
|
||||||
|
else
|
||||||
|
throw new ArithmeticException("BigInteger out of int range");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this {@code BigInteger} to a {@code short}, checking
|
||||||
|
* for lost information. If the value of this {@code BigInteger}
|
||||||
|
* is out of the range of the {@code short} type, then an
|
||||||
|
* {@code ArithmeticException} is thrown.
|
||||||
|
*
|
||||||
|
* @return this {@code BigInteger} converted to a {@code short}.
|
||||||
|
* @throws ArithmeticException if the value of {@code this} will
|
||||||
|
* not exactly fit in a {@code short}.
|
||||||
|
* @see BigInteger#shortValue
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public short shortValueExact() {
|
||||||
|
if (mag.length <= 1 && bitLength() <= 31) {
|
||||||
|
int value = intValue();
|
||||||
|
if (value >= Short.MIN_VALUE && value <= Short.MAX_VALUE)
|
||||||
|
return shortValue();
|
||||||
|
}
|
||||||
|
throw new ArithmeticException("BigInteger out of short range");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this {@code BigInteger} to a {@code byte}, checking
|
||||||
|
* for lost information. If the value of this {@code BigInteger}
|
||||||
|
* is out of the range of the {@code byte} type, then an
|
||||||
|
* {@code ArithmeticException} is thrown.
|
||||||
|
*
|
||||||
|
* @return this {@code BigInteger} converted to a {@code byte}.
|
||||||
|
* @throws ArithmeticException if the value of {@code this} will
|
||||||
|
* not exactly fit in a {@code byte}.
|
||||||
|
* @see BigInteger#byteValue
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
public byte byteValueExact() {
|
||||||
|
if (mag.length <= 1 && bitLength() <= 31) {
|
||||||
|
int value = intValue();
|
||||||
|
if (value >= Byte.MIN_VALUE && value <= Byte.MAX_VALUE)
|
||||||
|
return byteValue();
|
||||||
|
}
|
||||||
|
throw new ArithmeticException("BigInteger out of byte range");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,8 +26,6 @@ package java.net;
|
|||||||
|
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InterruptedIOException;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import sun.net.ResourceManager;
|
import sun.net.ResourceManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -66,8 +64,8 @@ abstract class AbstractPlainDatagramSocketImpl extends DatagramSocketImpl
|
|||||||
* Creates a datagram socket
|
* Creates a datagram socket
|
||||||
*/
|
*/
|
||||||
protected synchronized void create() throws SocketException {
|
protected synchronized void create() throws SocketException {
|
||||||
fd = new FileDescriptor();
|
|
||||||
ResourceManager.beforeUdpCreate();
|
ResourceManager.beforeUdpCreate();
|
||||||
|
fd = new FileDescriptor();
|
||||||
try {
|
try {
|
||||||
datagramSocketCreate();
|
datagramSocketCreate();
|
||||||
} catch (SocketException ioe) {
|
} catch (SocketException ioe) {
|
||||||
@ -153,11 +151,13 @@ abstract class AbstractPlainDatagramSocketImpl extends DatagramSocketImpl
|
|||||||
* Set the TTL (time-to-live) option.
|
* Set the TTL (time-to-live) option.
|
||||||
* @param TTL to be set.
|
* @param TTL to be set.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
protected abstract void setTTL(byte ttl) throws IOException;
|
protected abstract void setTTL(byte ttl) throws IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the TTL (time-to-live) option.
|
* Get the TTL (time-to-live) option.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
protected abstract byte getTTL() throws IOException;
|
protected abstract byte getTTL() throws IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -96,7 +96,7 @@ abstract public class ContentHandler {
|
|||||||
* @exception IOException if an I/O error occurs while reading the object.
|
* @exception IOException if an I/O error occurs while reading the object.
|
||||||
* @since 1.3
|
* @since 1.3
|
||||||
*/
|
*/
|
||||||
public Object getContent(URLConnection urlc, Class[] classes) throws IOException {
|
public Object getContent(URLConnection urlc, Class<?>[] classes) throws IOException {
|
||||||
Object obj = getContent(urlc);
|
Object obj = getContent(urlc);
|
||||||
|
|
||||||
for (int i = 0; i < classes.length; i++) {
|
for (int i = 0; i < classes.length; i++) {
|
||||||
|
@ -249,7 +249,6 @@ public class CookieManager extends CookieHandler
|
|||||||
return Collections.unmodifiableMap(cookieMap);
|
return Collections.unmodifiableMap(cookieMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void
|
public void
|
||||||
put(URI uri, Map<String, List<String>> responseHeaders)
|
put(URI uri, Map<String, List<String>> responseHeaders)
|
||||||
throws IOException
|
throws IOException
|
||||||
@ -284,7 +283,7 @@ public class CookieManager extends CookieHandler
|
|||||||
cookies = HttpCookie.parse(headerValue);
|
cookies = HttpCookie.parse(headerValue);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
// Bogus header, make an empty list and log the error
|
// Bogus header, make an empty list and log the error
|
||||||
cookies = java.util.Collections.EMPTY_LIST;
|
cookies = java.util.Collections.emptyList();
|
||||||
if (logger.isLoggable(PlatformLogger.SEVERE)) {
|
if (logger.isLoggable(PlatformLogger.SEVERE)) {
|
||||||
logger.severe("Invalid cookie for " + uri + ": " + headerValue);
|
logger.severe("Invalid cookie for " + uri + ": " + headerValue);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -25,9 +25,7 @@
|
|||||||
|
|
||||||
package java.net;
|
package java.net;
|
||||||
|
|
||||||
import java.io.FileDescriptor;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InterruptedIOException;
|
|
||||||
import java.nio.channels.DatagramChannel;
|
import java.nio.channels.DatagramChannel;
|
||||||
import java.security.AccessController;
|
import java.security.AccessController;
|
||||||
import java.security.PrivilegedExceptionAction;
|
import java.security.PrivilegedExceptionAction;
|
||||||
@ -300,7 +298,7 @@ class DatagramSocket implements java.io.Closeable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static Class implClass = null;
|
static Class<?> implClass = null;
|
||||||
|
|
||||||
void createImpl() throws SocketException {
|
void createImpl() throws SocketException {
|
||||||
if (impl == null) {
|
if (impl == null) {
|
||||||
|
@ -535,6 +535,7 @@ abstract public class HttpURLConnection extends URLConnection {
|
|||||||
return responseMessage;
|
return responseMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public long getHeaderFieldDate(String name, long Default) {
|
public long getHeaderFieldDate(String name, long Default) {
|
||||||
String dateString = getHeaderField(name);
|
String dateString = getHeaderField(name);
|
||||||
try {
|
try {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -25,9 +25,7 @@
|
|||||||
|
|
||||||
package java.net;
|
package java.net;
|
||||||
|
|
||||||
import java.security.AccessController;
|
|
||||||
import java.io.ObjectStreamException;
|
import java.io.ObjectStreamException;
|
||||||
import sun.security.action.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class represents an Internet Protocol version 4 (IPv4) address.
|
* This class represents an Internet Protocol version 4 (IPv4) address.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -59,11 +59,11 @@ class Inet4AddressImpl implements InetAddressImpl {
|
|||||||
/*
|
/*
|
||||||
* Let's make sure we use an address of the proper family
|
* Let's make sure we use an address of the proper family
|
||||||
*/
|
*/
|
||||||
java.util.Enumeration it = netif.getInetAddresses();
|
java.util.Enumeration<InetAddress> it = netif.getInetAddresses();
|
||||||
InetAddress inetaddr = null;
|
InetAddress inetaddr = null;
|
||||||
while (!(inetaddr instanceof Inet4Address) &&
|
while (!(inetaddr instanceof Inet4Address) &&
|
||||||
it.hasMoreElements())
|
it.hasMoreElements())
|
||||||
inetaddr = (InetAddress) it.nextElement();
|
inetaddr = it.nextElement();
|
||||||
if (inetaddr instanceof Inet4Address)
|
if (inetaddr instanceof Inet4Address)
|
||||||
ifaddr = inetaddr.getAddress();
|
ifaddr = inetaddr.getAddress();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -383,9 +383,9 @@ class Inet6Address extends InetAddress {
|
|||||||
while (en.hasMoreElements()) {
|
while (en.hasMoreElements()) {
|
||||||
NetworkInterface ifc = en.nextElement();
|
NetworkInterface ifc = en.nextElement();
|
||||||
if (ifc.getName().equals (ifname)) {
|
if (ifc.getName().equals (ifname)) {
|
||||||
Enumeration addresses = ifc.getInetAddresses();
|
Enumeration<InetAddress> addresses = ifc.getInetAddresses();
|
||||||
while (addresses.hasMoreElements()) {
|
while (addresses.hasMoreElements()) {
|
||||||
InetAddress addr = (InetAddress)addresses.nextElement();
|
InetAddress addr = addresses.nextElement();
|
||||||
if (!(addr instanceof Inet6Address)) {
|
if (!(addr instanceof Inet6Address)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -54,10 +54,10 @@ class Inet6AddressImpl implements InetAddressImpl {
|
|||||||
* be either an IPv6 address or an IPv4 address (case of a dual
|
* be either an IPv6 address or an IPv4 address (case of a dual
|
||||||
* stack system).
|
* stack system).
|
||||||
*/
|
*/
|
||||||
java.util.Enumeration it = netif.getInetAddresses();
|
java.util.Enumeration<InetAddress> it = netif.getInetAddresses();
|
||||||
InetAddress inetaddr = null;
|
InetAddress inetaddr = null;
|
||||||
while (it.hasMoreElements()) {
|
while (it.hasMoreElements()) {
|
||||||
inetaddr = (InetAddress) it.nextElement();
|
inetaddr = it.nextElement();
|
||||||
if (inetaddr.getClass().isInstance(addr)) {
|
if (inetaddr.getClass().isInstance(addr)) {
|
||||||
ifaddr = inetaddr.getAddress();
|
ifaddr = inetaddr.getAddress();
|
||||||
if (inetaddr instanceof Inet6Address) {
|
if (inetaddr instanceof Inet6Address) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -26,7 +26,6 @@
|
|||||||
package java.net;
|
package java.net;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InterruptedIOException;
|
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -500,9 +499,9 @@ class MulticastSocket extends DatagramSocket {
|
|||||||
*/
|
*/
|
||||||
try {
|
try {
|
||||||
NetworkInterface ni = NetworkInterface.getByInetAddress(ia);
|
NetworkInterface ni = NetworkInterface.getByInetAddress(ia);
|
||||||
Enumeration addrs = ni.getInetAddresses();
|
Enumeration<InetAddress> addrs = ni.getInetAddresses();
|
||||||
while (addrs.hasMoreElements()) {
|
while (addrs.hasMoreElements()) {
|
||||||
InetAddress addr = (InetAddress)(addrs.nextElement());
|
InetAddress addr = addrs.nextElement();
|
||||||
if (addr.equals(infAddress)) {
|
if (addr.equals(infAddress)) {
|
||||||
return infAddress;
|
return infAddress;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -73,7 +73,7 @@ public class Proxy {
|
|||||||
|
|
||||||
// Creates the proxy that represents a <code>DIRECT</code> connection.
|
// Creates the proxy that represents a <code>DIRECT</code> connection.
|
||||||
private Proxy() {
|
private Proxy() {
|
||||||
type = type.DIRECT;
|
type = Type.DIRECT;
|
||||||
sa = null;
|
sa = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -69,7 +69,7 @@ public abstract class ProxySelector {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
Class c = Class.forName("sun.net.spi.DefaultProxySelector");
|
Class<?> c = Class.forName("sun.net.spi.DefaultProxySelector");
|
||||||
if (c != null && ProxySelector.class.isAssignableFrom(c)) {
|
if (c != null && ProxySelector.class.isAssignableFrom(c)) {
|
||||||
theProxySelector = (ProxySelector) c.newInstance();
|
theProxySelector = (ProxySelector) c.newInstance();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -459,13 +459,10 @@ class Socket implements java.io.Closeable {
|
|||||||
oldImpl = AccessController.doPrivileged
|
oldImpl = AccessController.doPrivileged
|
||||||
(new PrivilegedAction<Boolean>() {
|
(new PrivilegedAction<Boolean>() {
|
||||||
public Boolean run() {
|
public Boolean run() {
|
||||||
Class[] cl = new Class[2];
|
Class<?> clazz = impl.getClass();
|
||||||
cl[0] = SocketAddress.class;
|
|
||||||
cl[1] = Integer.TYPE;
|
|
||||||
Class clazz = impl.getClass();
|
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
clazz.getDeclaredMethod("connect", cl);
|
clazz.getDeclaredMethod("connect", SocketAddress.class, int.class);
|
||||||
return Boolean.FALSE;
|
return Boolean.FALSE;
|
||||||
} catch (NoSuchMethodException e) {
|
} catch (NoSuchMethodException e) {
|
||||||
clazz = clazz.getSuperclass();
|
clazz = clazz.getSuperclass();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -467,6 +467,7 @@ implements java.io.Serializable
|
|||||||
* @param action the action string
|
* @param action the action string
|
||||||
* @return the action mask
|
* @return the action mask
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("fallthrough")
|
||||||
private static int getMask(String action) {
|
private static int getMask(String action) {
|
||||||
|
|
||||||
if (action == null) {
|
if (action == null) {
|
||||||
@ -1231,7 +1232,7 @@ final class SocketPermissionCollection extends PermissionCollection
|
|||||||
implements Serializable
|
implements Serializable
|
||||||
{
|
{
|
||||||
// Not serialized; see serialization section at end of class
|
// Not serialized; see serialization section at end of class
|
||||||
private transient List perms;
|
private transient List<SocketPermission> perms;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create an empty SocketPermissions object.
|
* Create an empty SocketPermissions object.
|
||||||
@ -1239,7 +1240,7 @@ implements Serializable
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public SocketPermissionCollection() {
|
public SocketPermissionCollection() {
|
||||||
perms = new ArrayList();
|
perms = new ArrayList<SocketPermission>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1267,7 +1268,7 @@ implements Serializable
|
|||||||
// optimization to ensure perms most likely to be tested
|
// optimization to ensure perms most likely to be tested
|
||||||
// show up early (4301064)
|
// show up early (4301064)
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
perms.add(0, permission);
|
perms.add(0, (SocketPermission)permission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1296,7 +1297,7 @@ implements Serializable
|
|||||||
int len = perms.size();
|
int len = perms.size();
|
||||||
//System.out.println("implies "+np);
|
//System.out.println("implies "+np);
|
||||||
for (int i = 0; i < len; i++) {
|
for (int i = 0; i < len; i++) {
|
||||||
SocketPermission x = (SocketPermission) perms.get(i);
|
SocketPermission x = perms.get(i);
|
||||||
//System.out.println(" trying "+x);
|
//System.out.println(" trying "+x);
|
||||||
if (((needed & x.getMask()) != 0) && x.impliesIgnoreMask(np)) {
|
if (((needed & x.getMask()) != 0) && x.impliesIgnoreMask(np)) {
|
||||||
effective |= x.getMask();
|
effective |= x.getMask();
|
||||||
@ -1316,10 +1317,11 @@ implements Serializable
|
|||||||
* @return an enumeration of all the SocketPermission objects.
|
* @return an enumeration of all the SocketPermission objects.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public Enumeration elements() {
|
@SuppressWarnings("unchecked")
|
||||||
|
public Enumeration<Permission> elements() {
|
||||||
// Convert Iterator into Enumeration
|
// Convert Iterator into Enumeration
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
return Collections.enumeration(perms);
|
return Collections.enumeration((List<Permission>)(List)perms);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1353,7 +1355,7 @@ implements Serializable
|
|||||||
// Don't call out.defaultWriteObject()
|
// Don't call out.defaultWriteObject()
|
||||||
|
|
||||||
// Write out Vector
|
// Write out Vector
|
||||||
Vector permissions = new Vector(perms.size());
|
Vector<SocketPermission> permissions = new Vector<>(perms.size());
|
||||||
|
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
permissions.addAll(perms);
|
permissions.addAll(perms);
|
||||||
@ -1375,8 +1377,9 @@ implements Serializable
|
|||||||
ObjectInputStream.GetField gfields = in.readFields();
|
ObjectInputStream.GetField gfields = in.readFields();
|
||||||
|
|
||||||
// Get the one we want
|
// Get the one we want
|
||||||
Vector permissions = (Vector)gfields.get("permissions", null);
|
@SuppressWarnings("unchecked")
|
||||||
perms = new ArrayList(permissions.size());
|
Vector<SocketPermission> permissions = (Vector<SocketPermission>)gfields.get("permissions", null);
|
||||||
|
perms = new ArrayList<SocketPermission>(permissions.size());
|
||||||
perms.addAll(permissions);
|
perms.addAll(permissions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -27,7 +27,6 @@ package java.net;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
import sun.security.util.SecurityConstants;
|
import sun.security.util.SecurityConstants;
|
||||||
@ -1113,7 +1112,7 @@ public final class URL implements java.io.Serializable {
|
|||||||
/**
|
/**
|
||||||
* A table of protocol handlers.
|
* A table of protocol handlers.
|
||||||
*/
|
*/
|
||||||
static Hashtable handlers = new Hashtable();
|
static Hashtable<String,URLStreamHandler> handlers = new Hashtable<>();
|
||||||
private static Object streamHandlerLock = new Object();
|
private static Object streamHandlerLock = new Object();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1122,7 +1121,7 @@ public final class URL implements java.io.Serializable {
|
|||||||
*/
|
*/
|
||||||
static URLStreamHandler getURLStreamHandler(String protocol) {
|
static URLStreamHandler getURLStreamHandler(String protocol) {
|
||||||
|
|
||||||
URLStreamHandler handler = (URLStreamHandler)handlers.get(protocol);
|
URLStreamHandler handler = handlers.get(protocol);
|
||||||
if (handler == null) {
|
if (handler == null) {
|
||||||
|
|
||||||
boolean checkedWithFactory = false;
|
boolean checkedWithFactory = false;
|
||||||
@ -1160,7 +1159,7 @@ public final class URL implements java.io.Serializable {
|
|||||||
try {
|
try {
|
||||||
String clsName = packagePrefix + "." + protocol +
|
String clsName = packagePrefix + "." + protocol +
|
||||||
".Handler";
|
".Handler";
|
||||||
Class cls = null;
|
Class<?> cls = null;
|
||||||
try {
|
try {
|
||||||
cls = Class.forName(clsName);
|
cls = Class.forName(clsName);
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
@ -1185,7 +1184,7 @@ public final class URL implements java.io.Serializable {
|
|||||||
|
|
||||||
// Check again with hashtable just in case another
|
// Check again with hashtable just in case another
|
||||||
// thread created a handler since we last checked
|
// thread created a handler since we last checked
|
||||||
handler2 = (URLStreamHandler)handlers.get(protocol);
|
handler2 = handlers.get(protocol);
|
||||||
|
|
||||||
if (handler2 != null) {
|
if (handler2 != null) {
|
||||||
return handler2;
|
return handler2;
|
||||||
|
@ -25,14 +25,7 @@
|
|||||||
|
|
||||||
package java.net;
|
package java.net;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.lang.reflect.Modifier;
|
|
||||||
import java.lang.ref.*;
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URL;
|
|
||||||
import java.net.URLConnection;
|
|
||||||
import java.net.URLStreamHandlerFactory;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.jar.Manifest;
|
import java.util.jar.Manifest;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
@ -352,8 +345,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return AccessController.doPrivileged(
|
return AccessController.doPrivileged(
|
||||||
new PrivilegedExceptionAction<Class>() {
|
new PrivilegedExceptionAction<Class<?>>() {
|
||||||
public Class run() throws ClassNotFoundException {
|
public Class<?> run() throws ClassNotFoundException {
|
||||||
String path = name.replace('.', '/').concat(".class");
|
String path = name.replace('.', '/').concat(".class");
|
||||||
Resource res = ucp.getResource(path, false);
|
Resource res = ucp.getResource(path, false);
|
||||||
if (res != null) {
|
if (res != null) {
|
||||||
@ -406,7 +399,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
|||||||
* Resource. The resulting Class must be resolved before it can be
|
* Resource. The resulting Class must be resolved before it can be
|
||||||
* used.
|
* used.
|
||||||
*/
|
*/
|
||||||
private Class defineClass(String name, Resource res) throws IOException {
|
private Class<?> defineClass(String name, Resource res) throws IOException {
|
||||||
long t0 = System.nanoTime();
|
long t0 = System.nanoTime();
|
||||||
int i = name.lastIndexOf('.');
|
int i = name.lastIndexOf('.');
|
||||||
URL url = res.getCodeSourceURL();
|
URL url = res.getCodeSourceURL();
|
||||||
@ -774,7 +767,7 @@ final class FactoryURLClassLoader extends URLClassLoader {
|
|||||||
super(urls, acc);
|
super(urls, acc);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final Class loadClass(String name, boolean resolve)
|
public final Class<?> loadClass(String name, boolean resolve)
|
||||||
throws ClassNotFoundException
|
throws ClassNotFoundException
|
||||||
{
|
{
|
||||||
// First check if we have permission to access the package. This
|
// First check if we have permission to access the package. This
|
||||||
|
@ -595,7 +595,7 @@ public abstract class URLConnection {
|
|||||||
* @since 1.4
|
* @since 1.4
|
||||||
*/
|
*/
|
||||||
public Map<String,List<String>> getHeaderFields() {
|
public Map<String,List<String>> getHeaderFields() {
|
||||||
return Collections.EMPTY_MAP;
|
return Collections.emptyMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -659,6 +659,7 @@ public abstract class URLConnection {
|
|||||||
* <code>Default</code> argument is returned if the field is
|
* <code>Default</code> argument is returned if the field is
|
||||||
* missing or malformed.
|
* missing or malformed.
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public long getHeaderFieldDate(String name, long Default) {
|
public long getHeaderFieldDate(String name, long Default) {
|
||||||
String value = getHeaderField(name);
|
String value = getHeaderField(name);
|
||||||
try {
|
try {
|
||||||
@ -1153,7 +1154,7 @@ public abstract class URLConnection {
|
|||||||
throw new IllegalStateException("Already connected");
|
throw new IllegalStateException("Already connected");
|
||||||
|
|
||||||
if (requests == null)
|
if (requests == null)
|
||||||
return Collections.EMPTY_MAP;
|
return Collections.emptyMap();
|
||||||
|
|
||||||
return requests.getHeaders(null);
|
return requests.getHeaders(null);
|
||||||
}
|
}
|
||||||
@ -1236,7 +1237,7 @@ public abstract class URLConnection {
|
|||||||
factory = fac;
|
factory = fac;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Hashtable handlers = new Hashtable();
|
private static Hashtable<String, ContentHandler> handlers = new Hashtable<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the Content Handler appropriate for this connection.
|
* Gets the Content Handler appropriate for this connection.
|
||||||
@ -1250,7 +1251,7 @@ public abstract class URLConnection {
|
|||||||
if (contentType == null)
|
if (contentType == null)
|
||||||
throw new UnknownServiceException("no content-type");
|
throw new UnknownServiceException("no content-type");
|
||||||
try {
|
try {
|
||||||
handler = (ContentHandler) handlers.get(contentType);
|
handler = handlers.get(contentType);
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
return handler;
|
return handler;
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
@ -1316,7 +1317,7 @@ public abstract class URLConnection {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
String clsName = packagePrefix + "." + contentHandlerClassName;
|
String clsName = packagePrefix + "." + contentHandlerClassName;
|
||||||
Class cls = null;
|
Class<?> cls = null;
|
||||||
try {
|
try {
|
||||||
cls = Class.forName(clsName);
|
cls = Class.forName(clsName);
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
|
@ -50,7 +50,6 @@ import java.text.NumberFormat;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import sun.misc.FpUtils;
|
|
||||||
import sun.misc.DoubleConsts;
|
import sun.misc.DoubleConsts;
|
||||||
import sun.misc.FormattedFloatingDecimal;
|
import sun.misc.FormattedFloatingDecimal;
|
||||||
|
|
||||||
@ -3417,24 +3416,24 @@ public final class Formatter implements Closeable, Flushable {
|
|||||||
// Method assumes that d > 0.
|
// Method assumes that d > 0.
|
||||||
private String hexDouble(double d, int prec) {
|
private String hexDouble(double d, int prec) {
|
||||||
// Let Double.toHexString handle simple cases
|
// Let Double.toHexString handle simple cases
|
||||||
if(!FpUtils.isFinite(d) || d == 0.0 || prec == 0 || prec >= 13)
|
if(!Double.isFinite(d) || d == 0.0 || prec == 0 || prec >= 13)
|
||||||
// remove "0x"
|
// remove "0x"
|
||||||
return Double.toHexString(d).substring(2);
|
return Double.toHexString(d).substring(2);
|
||||||
else {
|
else {
|
||||||
assert(prec >= 1 && prec <= 12);
|
assert(prec >= 1 && prec <= 12);
|
||||||
|
|
||||||
int exponent = FpUtils.getExponent(d);
|
int exponent = Math.getExponent(d);
|
||||||
boolean subnormal
|
boolean subnormal
|
||||||
= (exponent == DoubleConsts.MIN_EXPONENT - 1);
|
= (exponent == DoubleConsts.MIN_EXPONENT - 1);
|
||||||
|
|
||||||
// If this is subnormal input so normalize (could be faster to
|
// If this is subnormal input so normalize (could be faster to
|
||||||
// do as integer operation).
|
// do as integer operation).
|
||||||
if (subnormal) {
|
if (subnormal) {
|
||||||
scaleUp = FpUtils.scalb(1.0, 54);
|
scaleUp = Math.scalb(1.0, 54);
|
||||||
d *= scaleUp;
|
d *= scaleUp;
|
||||||
// Calculate the exponent. This is not just exponent + 54
|
// Calculate the exponent. This is not just exponent + 54
|
||||||
// since the former is not the normalized exponent.
|
// since the former is not the normalized exponent.
|
||||||
exponent = FpUtils.getExponent(d);
|
exponent = Math.getExponent(d);
|
||||||
assert exponent >= DoubleConsts.MIN_EXPONENT &&
|
assert exponent >= DoubleConsts.MIN_EXPONENT &&
|
||||||
exponent <= DoubleConsts.MAX_EXPONENT: exponent;
|
exponent <= DoubleConsts.MAX_EXPONENT: exponent;
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,7 @@ import java.io.Reader;
|
|||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
|
import java.lang.reflect.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The <code>Properties</code> class represents a persistent set of
|
* The <code>Properties</code> class represents a persistent set of
|
||||||
@ -1111,4 +1112,60 @@ class Properties extends Hashtable<Object,Object> {
|
|||||||
private static final char[] hexDigit = {
|
private static final char[] hexDigit = {
|
||||||
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
|
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
private static class XMLUtils {
|
||||||
|
private static Method load = null;
|
||||||
|
private static Method save = null;
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
// reference sun.util.xml.Utils reflectively
|
||||||
|
// to allow the Properties class be compiled in
|
||||||
|
// the absence of XML
|
||||||
|
Class<?> c = Class.forName("sun.util.xml.XMLUtils", true, null);
|
||||||
|
load = c.getMethod("load", Properties.class, InputStream.class);
|
||||||
|
save = c.getMethod("save", Properties.class, OutputStream.class,
|
||||||
|
String.class, String.class);
|
||||||
|
} catch (ClassNotFoundException cnf) {
|
||||||
|
throw new AssertionError(cnf);
|
||||||
|
} catch (NoSuchMethodException e) {
|
||||||
|
throw new AssertionError(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void invoke(Method m, Object... args) throws IOException {
|
||||||
|
try {
|
||||||
|
m.invoke(null, args);
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
throw new AssertionError(e);
|
||||||
|
} catch (InvocationTargetException e) {
|
||||||
|
Throwable t = e.getCause();
|
||||||
|
if (t instanceof RuntimeException)
|
||||||
|
throw (RuntimeException)t;
|
||||||
|
|
||||||
|
if (t instanceof IOException) {
|
||||||
|
throw (IOException)t;
|
||||||
|
} else {
|
||||||
|
throw new AssertionError(t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void load(Properties props, InputStream in)
|
||||||
|
throws IOException, InvalidPropertiesFormatException
|
||||||
|
{
|
||||||
|
if (load == null)
|
||||||
|
throw new InternalError("sun.util.xml.XMLUtils not found");
|
||||||
|
invoke(load, props, in);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void save(Properties props, OutputStream os, String comment,
|
||||||
|
String encoding)
|
||||||
|
throws IOException
|
||||||
|
{
|
||||||
|
if (save == null)
|
||||||
|
throw new InternalError("sun.util.xml.XMLUtils not found");
|
||||||
|
invoke(save, props, os, comment, encoding);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -330,7 +330,7 @@ public class ScheduledThreadPoolExecutor
|
|||||||
remove(task))
|
remove(task))
|
||||||
task.cancel(false);
|
task.cancel(false);
|
||||||
else
|
else
|
||||||
prestartCoreThread();
|
ensurePrestart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,7 +346,7 @@ public class ScheduledThreadPoolExecutor
|
|||||||
if (!canRunInCurrentRunState(true) && remove(task))
|
if (!canRunInCurrentRunState(true) && remove(task))
|
||||||
task.cancel(false);
|
task.cancel(false);
|
||||||
else
|
else
|
||||||
prestartCoreThread();
|
ensurePrestart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1545,6 +1545,18 @@ public class ThreadPoolExecutor extends AbstractExecutorService {
|
|||||||
addWorker(null, true);
|
addWorker(null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Same as prestartCoreThread except arranges that at least one
|
||||||
|
* thread is started even if corePoolSize is 0.
|
||||||
|
*/
|
||||||
|
void ensurePrestart() {
|
||||||
|
int wc = workerCountOf(ctl.get());
|
||||||
|
if (wc < corePoolSize)
|
||||||
|
addWorker(null, true);
|
||||||
|
else if (wc == 0)
|
||||||
|
addWorker(null, false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Starts all core threads, causing them to idly wait for work. This
|
* Starts all core threads, causing them to idly wait for work. This
|
||||||
* overrides the default policy of starting core threads only when
|
* overrides the default policy of starting core threads only when
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -87,7 +87,7 @@ public abstract class SSLServerSocketFactory extends ServerSocketFactory
|
|||||||
if (clsName != null) {
|
if (clsName != null) {
|
||||||
log("setting up default SSLServerSocketFactory");
|
log("setting up default SSLServerSocketFactory");
|
||||||
try {
|
try {
|
||||||
Class cls = null;
|
Class<?> cls = null;
|
||||||
try {
|
try {
|
||||||
cls = Class.forName(clsName);
|
cls = Class.forName(clsName);
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -95,7 +95,7 @@ public abstract class SSLSocketFactory extends SocketFactory
|
|||||||
if (clsName != null) {
|
if (clsName != null) {
|
||||||
log("setting up default SSLSocketFactory");
|
log("setting up default SSLSocketFactory");
|
||||||
try {
|
try {
|
||||||
Class cls = null;
|
Class<?> cls = null;
|
||||||
try {
|
try {
|
||||||
cls = Class.forName(clsName);
|
cls = Class.forName(clsName);
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
|
@ -792,7 +792,7 @@ public class SwingUtilities implements SwingConstants
|
|||||||
* @return true if the left mouse button was active
|
* @return true if the left mouse button was active
|
||||||
*/
|
*/
|
||||||
public static boolean isLeftMouseButton(MouseEvent anEvent) {
|
public static boolean isLeftMouseButton(MouseEvent anEvent) {
|
||||||
return ((anEvent.getModifiers() & InputEvent.BUTTON1_MASK) != 0);
|
return (anEvent.getButton() == MouseEvent.BUTTON1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -802,7 +802,7 @@ public class SwingUtilities implements SwingConstants
|
|||||||
* @return true if the middle mouse button was active
|
* @return true if the middle mouse button was active
|
||||||
*/
|
*/
|
||||||
public static boolean isMiddleMouseButton(MouseEvent anEvent) {
|
public static boolean isMiddleMouseButton(MouseEvent anEvent) {
|
||||||
return ((anEvent.getModifiers() & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK);
|
return (anEvent.getButton() == MouseEvent.BUTTON2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -812,7 +812,7 @@ public class SwingUtilities implements SwingConstants
|
|||||||
* @return true if the right mouse button was active
|
* @return true if the right mouse button was active
|
||||||
*/
|
*/
|
||||||
public static boolean isRightMouseButton(MouseEvent anEvent) {
|
public static boolean isRightMouseButton(MouseEvent anEvent) {
|
||||||
return ((anEvent.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK);
|
return (anEvent.getButton() == MouseEvent.BUTTON3);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link href="style.css" rel="stylesheet" type="text/css" />
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1 id="primaryColors">Primary Colors</h1>
|
<h1 id="primaryColors">Primary Colors</h1>
|
||||||
|
@ -157,7 +157,7 @@ public class Oid {
|
|||||||
return (true);
|
return (true);
|
||||||
|
|
||||||
if (other instanceof Oid)
|
if (other instanceof Oid)
|
||||||
return this.oid.equals(((Oid) other).oid);
|
return this.oid.equals((Object)((Oid) other).oid);
|
||||||
else if (other instanceof ObjectIdentifier)
|
else if (other instanceof ObjectIdentifier)
|
||||||
return this.oid.equals(other);
|
return this.oid.equals(other);
|
||||||
else
|
else
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
package sun.misc;
|
package sun.misc;
|
||||||
|
|
||||||
import sun.misc.FpUtils;
|
|
||||||
import sun.misc.DoubleConsts;
|
import sun.misc.DoubleConsts;
|
||||||
import sun.misc.FloatConsts;
|
import sun.misc.FloatConsts;
|
||||||
import java.util.regex.*;
|
import java.util.regex.*;
|
||||||
@ -2297,9 +2296,9 @@ public class FloatingDecimal{
|
|||||||
significand++;
|
significand++;
|
||||||
}
|
}
|
||||||
|
|
||||||
FloatingDecimal fd = new FloatingDecimal(FpUtils.rawCopySign(
|
FloatingDecimal fd = new FloatingDecimal(Math.copySign(
|
||||||
Double.longBitsToDouble(significand),
|
Double.longBitsToDouble(significand),
|
||||||
sign));
|
sign));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set roundingDir variable field of fd properly so
|
* Set roundingDir variable field of fd properly so
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
package sun.misc;
|
package sun.misc;
|
||||||
|
|
||||||
import sun.misc.FpUtils;
|
|
||||||
import sun.misc.DoubleConsts;
|
import sun.misc.DoubleConsts;
|
||||||
import sun.misc.FloatConsts;
|
import sun.misc.FloatConsts;
|
||||||
import java.util.regex.*;
|
import java.util.regex.*;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -125,10 +125,6 @@ public class FpUtils {
|
|||||||
*/
|
*/
|
||||||
private FpUtils() {}
|
private FpUtils() {}
|
||||||
|
|
||||||
// Constants used in scalb
|
|
||||||
static double twoToTheDoubleScaleUp = powerOfTwoD(512);
|
|
||||||
static double twoToTheDoubleScaleDown = powerOfTwoD(-512);
|
|
||||||
|
|
||||||
// Helper Methods
|
// Helper Methods
|
||||||
|
|
||||||
// The following helper methods are used in the implementation of
|
// The following helper methods are used in the implementation of
|
||||||
@ -137,49 +133,22 @@ public class FpUtils {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns unbiased exponent of a {@code double}.
|
* Returns unbiased exponent of a {@code double}.
|
||||||
|
* @deprecated Use Math.getExponent.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getExponent(double d){
|
public static int getExponent(double d){
|
||||||
/*
|
return Math.getExponent(d);
|
||||||
* Bitwise convert d to long, mask out exponent bits, shift
|
|
||||||
* to the right and then subtract out double's bias adjust to
|
|
||||||
* get true exponent value.
|
|
||||||
*/
|
|
||||||
return (int)(((Double.doubleToRawLongBits(d) & DoubleConsts.EXP_BIT_MASK) >>
|
|
||||||
(DoubleConsts.SIGNIFICAND_WIDTH - 1)) - DoubleConsts.EXP_BIAS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns unbiased exponent of a {@code float}.
|
* Returns unbiased exponent of a {@code float}.
|
||||||
|
* @deprecated Use Math.getExponent.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static int getExponent(float f){
|
public static int getExponent(float f){
|
||||||
/*
|
return Math.getExponent(f);
|
||||||
* Bitwise convert f to integer, mask out exponent bits, shift
|
|
||||||
* to the right and then subtract out float's bias adjust to
|
|
||||||
* get true exponent value
|
|
||||||
*/
|
|
||||||
return ((Float.floatToRawIntBits(f) & FloatConsts.EXP_BIT_MASK) >>
|
|
||||||
(FloatConsts.SIGNIFICAND_WIDTH - 1)) - FloatConsts.EXP_BIAS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a floating-point power of two in the normal range.
|
|
||||||
*/
|
|
||||||
static double powerOfTwoD(int n) {
|
|
||||||
assert(n >= DoubleConsts.MIN_EXPONENT && n <= DoubleConsts.MAX_EXPONENT);
|
|
||||||
return Double.longBitsToDouble((((long)n + (long)DoubleConsts.EXP_BIAS) <<
|
|
||||||
(DoubleConsts.SIGNIFICAND_WIDTH-1))
|
|
||||||
& DoubleConsts.EXP_BIT_MASK);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a floating-point power of two in the normal range.
|
|
||||||
*/
|
|
||||||
static float powerOfTwoF(int n) {
|
|
||||||
assert(n >= FloatConsts.MIN_EXPONENT && n <= FloatConsts.MAX_EXPONENT);
|
|
||||||
return Float.intBitsToFloat(((n + FloatConsts.EXP_BIAS) <<
|
|
||||||
(FloatConsts.SIGNIFICAND_WIDTH-1))
|
|
||||||
& FloatConsts.EXP_BIT_MASK);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the first floating-point argument with the sign of the
|
* Returns the first floating-point argument with the sign of the
|
||||||
@ -195,13 +164,11 @@ public class FpUtils {
|
|||||||
* @return a value with the magnitude of {@code magnitude}
|
* @return a value with the magnitude of {@code magnitude}
|
||||||
* and the sign of {@code sign}.
|
* and the sign of {@code sign}.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.copySign.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double rawCopySign(double magnitude, double sign) {
|
public static double rawCopySign(double magnitude, double sign) {
|
||||||
return Double.longBitsToDouble((Double.doubleToRawLongBits(sign) &
|
return Math.copySign(magnitude, sign);
|
||||||
(DoubleConsts.SIGN_BIT_MASK)) |
|
|
||||||
(Double.doubleToRawLongBits(magnitude) &
|
|
||||||
(DoubleConsts.EXP_BIT_MASK |
|
|
||||||
DoubleConsts.SIGNIF_BIT_MASK)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -218,13 +185,11 @@ public class FpUtils {
|
|||||||
* @return a value with the magnitude of {@code magnitude}
|
* @return a value with the magnitude of {@code magnitude}
|
||||||
* and the sign of {@code sign}.
|
* and the sign of {@code sign}.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.copySign.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static float rawCopySign(float magnitude, float sign) {
|
public static float rawCopySign(float magnitude, float sign) {
|
||||||
return Float.intBitsToFloat((Float.floatToRawIntBits(sign) &
|
return Math.copySign(magnitude, sign);
|
||||||
(FloatConsts.SIGN_BIT_MASK)) |
|
|
||||||
(Float.floatToRawIntBits(magnitude) &
|
|
||||||
(FloatConsts.EXP_BIT_MASK |
|
|
||||||
FloatConsts.SIGNIF_BIT_MASK)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ***************************************************************** */
|
/* ***************************************************************** */
|
||||||
@ -237,9 +202,11 @@ public class FpUtils {
|
|||||||
* @param d the {@code double} value to be tested
|
* @param d the {@code double} value to be tested
|
||||||
* @return {@code true} if the argument is a finite
|
* @return {@code true} if the argument is a finite
|
||||||
* floating-point value, {@code false} otherwise.
|
* floating-point value, {@code false} otherwise.
|
||||||
|
* @deprecated Use Double.isFinite.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static boolean isFinite(double d) {
|
public static boolean isFinite(double d) {
|
||||||
return Math.abs(d) <= DoubleConsts.MAX_VALUE;
|
return Double.isFinite(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -250,9 +217,11 @@ public class FpUtils {
|
|||||||
* @param f the {@code float} value to be tested
|
* @param f the {@code float} value to be tested
|
||||||
* @return {@code true} if the argument is a finite
|
* @return {@code true} if the argument is a finite
|
||||||
* floating-point value, {@code false} otherwise.
|
* floating-point value, {@code false} otherwise.
|
||||||
|
* @deprecated Use Float.isFinite.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static boolean isFinite(float f) {
|
public static boolean isFinite(float f) {
|
||||||
return Math.abs(f) <= FloatConsts.MAX_VALUE;
|
return Float.isFinite(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -558,82 +527,11 @@ public class FpUtils {
|
|||||||
* @param scale_factor power of 2 used to scale {@code d}
|
* @param scale_factor power of 2 used to scale {@code d}
|
||||||
* @return {@code d * }2<sup>{@code scale_factor}</sup>
|
* @return {@code d * }2<sup>{@code scale_factor}</sup>
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.scalb.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double scalb(double d, int scale_factor) {
|
public static double scalb(double d, int scale_factor) {
|
||||||
/*
|
return Math.scalb(d, scale_factor);
|
||||||
* This method does not need to be declared strictfp to
|
|
||||||
* compute the same correct result on all platforms. When
|
|
||||||
* scaling up, it does not matter what order the
|
|
||||||
* multiply-store operations are done; the result will be
|
|
||||||
* finite or overflow regardless of the operation ordering.
|
|
||||||
* However, to get the correct result when scaling down, a
|
|
||||||
* particular ordering must be used.
|
|
||||||
*
|
|
||||||
* When scaling down, the multiply-store operations are
|
|
||||||
* sequenced so that it is not possible for two consecutive
|
|
||||||
* multiply-stores to return subnormal results. If one
|
|
||||||
* multiply-store result is subnormal, the next multiply will
|
|
||||||
* round it away to zero. This is done by first multiplying
|
|
||||||
* by 2 ^ (scale_factor % n) and then multiplying several
|
|
||||||
* times by by 2^n as needed where n is the exponent of number
|
|
||||||
* that is a covenient power of two. In this way, at most one
|
|
||||||
* real rounding error occurs. If the double value set is
|
|
||||||
* being used exclusively, the rounding will occur on a
|
|
||||||
* multiply. If the double-extended-exponent value set is
|
|
||||||
* being used, the products will (perhaps) be exact but the
|
|
||||||
* stores to d are guaranteed to round to the double value
|
|
||||||
* set.
|
|
||||||
*
|
|
||||||
* It is _not_ a valid implementation to first multiply d by
|
|
||||||
* 2^MIN_EXPONENT and then by 2 ^ (scale_factor %
|
|
||||||
* MIN_EXPONENT) since even in a strictfp program double
|
|
||||||
* rounding on underflow could occur; e.g. if the scale_factor
|
|
||||||
* argument was (MIN_EXPONENT - n) and the exponent of d was a
|
|
||||||
* little less than -(MIN_EXPONENT - n), meaning the final
|
|
||||||
* result would be subnormal.
|
|
||||||
*
|
|
||||||
* Since exact reproducibility of this method can be achieved
|
|
||||||
* without any undue performance burden, there is no
|
|
||||||
* compelling reason to allow double rounding on underflow in
|
|
||||||
* scalb.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// magnitude of a power of two so large that scaling a finite
|
|
||||||
// nonzero value by it would be guaranteed to over or
|
|
||||||
// underflow; due to rounding, scaling down takes takes an
|
|
||||||
// additional power of two which is reflected here
|
|
||||||
final int MAX_SCALE = DoubleConsts.MAX_EXPONENT + -DoubleConsts.MIN_EXPONENT +
|
|
||||||
DoubleConsts.SIGNIFICAND_WIDTH + 1;
|
|
||||||
int exp_adjust = 0;
|
|
||||||
int scale_increment = 0;
|
|
||||||
double exp_delta = Double.NaN;
|
|
||||||
|
|
||||||
// Make sure scaling factor is in a reasonable range
|
|
||||||
|
|
||||||
if(scale_factor < 0) {
|
|
||||||
scale_factor = Math.max(scale_factor, -MAX_SCALE);
|
|
||||||
scale_increment = -512;
|
|
||||||
exp_delta = twoToTheDoubleScaleDown;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
scale_factor = Math.min(scale_factor, MAX_SCALE);
|
|
||||||
scale_increment = 512;
|
|
||||||
exp_delta = twoToTheDoubleScaleUp;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate (scale_factor % +/-512), 512 = 2^9, using
|
|
||||||
// technique from "Hacker's Delight" section 10-2.
|
|
||||||
int t = (scale_factor >> 9-1) >>> 32 - 9;
|
|
||||||
exp_adjust = ((scale_factor + t) & (512 -1)) - t;
|
|
||||||
|
|
||||||
d *= powerOfTwoD(exp_adjust);
|
|
||||||
scale_factor -= exp_adjust;
|
|
||||||
|
|
||||||
while(scale_factor != 0) {
|
|
||||||
d *= exp_delta;
|
|
||||||
scale_factor -= scale_increment;
|
|
||||||
}
|
|
||||||
return d;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -667,28 +565,11 @@ public class FpUtils {
|
|||||||
* @param scale_factor power of 2 used to scale {@code f}
|
* @param scale_factor power of 2 used to scale {@code f}
|
||||||
* @return {@code f * }2<sup>{@code scale_factor}</sup>
|
* @return {@code f * }2<sup>{@code scale_factor}</sup>
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.scalb.
|
||||||
*/
|
*/
|
||||||
public static float scalb(float f, int scale_factor) {
|
@Deprecated
|
||||||
// magnitude of a power of two so large that scaling a finite
|
public static float scalb(float f, int scale_factor) {
|
||||||
// nonzero value by it would be guaranteed to over or
|
return Math.scalb(f, scale_factor);
|
||||||
// underflow; due to rounding, scaling down takes takes an
|
|
||||||
// additional power of two which is reflected here
|
|
||||||
final int MAX_SCALE = FloatConsts.MAX_EXPONENT + -FloatConsts.MIN_EXPONENT +
|
|
||||||
FloatConsts.SIGNIFICAND_WIDTH + 1;
|
|
||||||
|
|
||||||
// Make sure scaling factor is in a reasonable range
|
|
||||||
scale_factor = Math.max(Math.min(scale_factor, MAX_SCALE), -MAX_SCALE);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Since + MAX_SCALE for float fits well within the double
|
|
||||||
* exponent range and + float -> double conversion is exact
|
|
||||||
* the multiplication below will be exact. Therefore, the
|
|
||||||
* rounding that occurs when the double product is cast to
|
|
||||||
* float will be the correctly rounded float result. Since
|
|
||||||
* all operations other than the final multiply will be exact,
|
|
||||||
* it is not necessary to declare this method strictfp.
|
|
||||||
*/
|
|
||||||
return (float)((double)f*powerOfTwoD(scale_factor));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -730,65 +611,11 @@ public class FpUtils {
|
|||||||
* @return The floating-point number adjacent to {@code start} in the
|
* @return The floating-point number adjacent to {@code start} in the
|
||||||
* direction of {@code direction}.
|
* direction of {@code direction}.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.nextAfter
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double nextAfter(double start, double direction) {
|
public static double nextAfter(double start, double direction) {
|
||||||
/*
|
return Math.nextAfter(start, direction);
|
||||||
* The cases:
|
|
||||||
*
|
|
||||||
* nextAfter(+infinity, 0) == MAX_VALUE
|
|
||||||
* nextAfter(+infinity, +infinity) == +infinity
|
|
||||||
* nextAfter(-infinity, 0) == -MAX_VALUE
|
|
||||||
* nextAfter(-infinity, -infinity) == -infinity
|
|
||||||
*
|
|
||||||
* are naturally handled without any additional testing
|
|
||||||
*/
|
|
||||||
|
|
||||||
// First check for NaN values
|
|
||||||
if (isNaN(start) || isNaN(direction)) {
|
|
||||||
// return a NaN derived from the input NaN(s)
|
|
||||||
return start + direction;
|
|
||||||
} else if (start == direction) {
|
|
||||||
return direction;
|
|
||||||
} else { // start > direction or start < direction
|
|
||||||
// Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
|
|
||||||
// then bitwise convert start to integer.
|
|
||||||
long transducer = Double.doubleToRawLongBits(start + 0.0d);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* IEEE 754 floating-point numbers are lexicographically
|
|
||||||
* ordered if treated as signed- magnitude integers .
|
|
||||||
* Since Java's integers are two's complement,
|
|
||||||
* incrementing" the two's complement representation of a
|
|
||||||
* logically negative floating-point value *decrements*
|
|
||||||
* the signed-magnitude representation. Therefore, when
|
|
||||||
* the integer representation of a floating-point values
|
|
||||||
* is less than zero, the adjustment to the representation
|
|
||||||
* is in the opposite direction than would be expected at
|
|
||||||
* first .
|
|
||||||
*/
|
|
||||||
if (direction > start) { // Calculate next greater value
|
|
||||||
transducer = transducer + (transducer >= 0L ? 1L:-1L);
|
|
||||||
} else { // Calculate next lesser value
|
|
||||||
assert direction < start;
|
|
||||||
if (transducer > 0L)
|
|
||||||
--transducer;
|
|
||||||
else
|
|
||||||
if (transducer < 0L )
|
|
||||||
++transducer;
|
|
||||||
/*
|
|
||||||
* transducer==0, the result is -MIN_VALUE
|
|
||||||
*
|
|
||||||
* The transition from zero (implicitly
|
|
||||||
* positive) to the smallest negative
|
|
||||||
* signed magnitude value must be done
|
|
||||||
* explicitly.
|
|
||||||
*/
|
|
||||||
else
|
|
||||||
transducer = DoubleConsts.SIGN_BIT_MASK | 1L;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Double.longBitsToDouble(transducer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -830,65 +657,11 @@ public class FpUtils {
|
|||||||
* @return The floating-point number adjacent to {@code start} in the
|
* @return The floating-point number adjacent to {@code start} in the
|
||||||
* direction of {@code direction}.
|
* direction of {@code direction}.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.nextAfter.
|
||||||
*/
|
*/
|
||||||
public static float nextAfter(float start, double direction) {
|
@Deprecated
|
||||||
/*
|
public static float nextAfter(float start, double direction) {
|
||||||
* The cases:
|
return Math.nextAfter(start, direction);
|
||||||
*
|
|
||||||
* nextAfter(+infinity, 0) == MAX_VALUE
|
|
||||||
* nextAfter(+infinity, +infinity) == +infinity
|
|
||||||
* nextAfter(-infinity, 0) == -MAX_VALUE
|
|
||||||
* nextAfter(-infinity, -infinity) == -infinity
|
|
||||||
*
|
|
||||||
* are naturally handled without any additional testing
|
|
||||||
*/
|
|
||||||
|
|
||||||
// First check for NaN values
|
|
||||||
if (isNaN(start) || isNaN(direction)) {
|
|
||||||
// return a NaN derived from the input NaN(s)
|
|
||||||
return start + (float)direction;
|
|
||||||
} else if (start == direction) {
|
|
||||||
return (float)direction;
|
|
||||||
} else { // start > direction or start < direction
|
|
||||||
// Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
|
|
||||||
// then bitwise convert start to integer.
|
|
||||||
int transducer = Float.floatToRawIntBits(start + 0.0f);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* IEEE 754 floating-point numbers are lexicographically
|
|
||||||
* ordered if treated as signed- magnitude integers .
|
|
||||||
* Since Java's integers are two's complement,
|
|
||||||
* incrementing" the two's complement representation of a
|
|
||||||
* logically negative floating-point value *decrements*
|
|
||||||
* the signed-magnitude representation. Therefore, when
|
|
||||||
* the integer representation of a floating-point values
|
|
||||||
* is less than zero, the adjustment to the representation
|
|
||||||
* is in the opposite direction than would be expected at
|
|
||||||
* first.
|
|
||||||
*/
|
|
||||||
if (direction > start) {// Calculate next greater value
|
|
||||||
transducer = transducer + (transducer >= 0 ? 1:-1);
|
|
||||||
} else { // Calculate next lesser value
|
|
||||||
assert direction < start;
|
|
||||||
if (transducer > 0)
|
|
||||||
--transducer;
|
|
||||||
else
|
|
||||||
if (transducer < 0 )
|
|
||||||
++transducer;
|
|
||||||
/*
|
|
||||||
* transducer==0, the result is -MIN_VALUE
|
|
||||||
*
|
|
||||||
* The transition from zero (implicitly
|
|
||||||
* positive) to the smallest negative
|
|
||||||
* signed magnitude value must be done
|
|
||||||
* explicitly.
|
|
||||||
*/
|
|
||||||
else
|
|
||||||
transducer = FloatConsts.SIGN_BIT_MASK | 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Float.intBitsToFloat(transducer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -915,15 +688,11 @@ public class FpUtils {
|
|||||||
* @return The adjacent floating-point value closer to positive
|
* @return The adjacent floating-point value closer to positive
|
||||||
* infinity.
|
* infinity.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated use Math.nextUp.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double nextUp(double d) {
|
public static double nextUp(double d) {
|
||||||
if( isNaN(d) || d == Double.POSITIVE_INFINITY)
|
return Math.nextUp(d);
|
||||||
return d;
|
|
||||||
else {
|
|
||||||
d += 0.0d;
|
|
||||||
return Double.longBitsToDouble(Double.doubleToRawLongBits(d) +
|
|
||||||
((d >= 0.0d)?+1L:-1L));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -950,15 +719,11 @@ public class FpUtils {
|
|||||||
* @return The adjacent floating-point value closer to positive
|
* @return The adjacent floating-point value closer to positive
|
||||||
* infinity.
|
* infinity.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.nextUp.
|
||||||
*/
|
*/
|
||||||
public static float nextUp(float f) {
|
@Deprecated
|
||||||
if( isNaN(f) || f == FloatConsts.POSITIVE_INFINITY)
|
public static float nextUp(float f) {
|
||||||
return f;
|
return Math.nextUp(f);
|
||||||
else {
|
|
||||||
f += 0.0f;
|
|
||||||
return Float.intBitsToFloat(Float.floatToRawIntBits(f) +
|
|
||||||
((f >= 0.0f)?+1:-1));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -985,17 +750,11 @@ public class FpUtils {
|
|||||||
* @return The adjacent floating-point value closer to negative
|
* @return The adjacent floating-point value closer to negative
|
||||||
* infinity.
|
* infinity.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.nextDown.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double nextDown(double d) {
|
public static double nextDown(double d) {
|
||||||
if( isNaN(d) || d == Double.NEGATIVE_INFINITY)
|
return Math.nextDown(d);
|
||||||
return d;
|
|
||||||
else {
|
|
||||||
if (d == 0.0)
|
|
||||||
return -Double.MIN_VALUE;
|
|
||||||
else
|
|
||||||
return Double.longBitsToDouble(Double.doubleToRawLongBits(d) +
|
|
||||||
((d > 0.0d)?-1L:+1L));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1022,17 +781,11 @@ public class FpUtils {
|
|||||||
* @return The adjacent floating-point value closer to negative
|
* @return The adjacent floating-point value closer to negative
|
||||||
* infinity.
|
* infinity.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use Math.nextDown.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double nextDown(float f) {
|
public static double nextDown(float f) {
|
||||||
if( isNaN(f) || f == Float.NEGATIVE_INFINITY)
|
return Math.nextDown(f);
|
||||||
return f;
|
|
||||||
else {
|
|
||||||
if (f == 0.0f)
|
|
||||||
return -Float.MIN_VALUE;
|
|
||||||
else
|
|
||||||
return Float.intBitsToFloat(Float.floatToRawIntBits(f) +
|
|
||||||
((f > 0.0f)?-1:+1));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1047,9 +800,11 @@ public class FpUtils {
|
|||||||
* and the sign of {@code sign}.
|
* and the sign of {@code sign}.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
|
* @deprecated Use StrictMath.copySign.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double copySign(double magnitude, double sign) {
|
public static double copySign(double magnitude, double sign) {
|
||||||
return rawCopySign(magnitude, (isNaN(sign)?1.0d:sign));
|
return StrictMath.copySign(magnitude, sign);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1063,9 +818,11 @@ public class FpUtils {
|
|||||||
* @return a value with the magnitude of {@code magnitude}
|
* @return a value with the magnitude of {@code magnitude}
|
||||||
* and the sign of {@code sign}.
|
* and the sign of {@code sign}.
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
|
* @deprecated Use StrictMath.copySign.
|
||||||
*/
|
*/
|
||||||
public static float copySign(float magnitude, float sign) {
|
@Deprecated
|
||||||
return rawCopySign(magnitude, (isNaN(sign)?1.0f:sign));
|
public static float copySign(float magnitude, float sign) {
|
||||||
|
return StrictMath.copySign(magnitude, sign);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1090,33 +847,11 @@ public class FpUtils {
|
|||||||
* @return the size of an ulp of the argument
|
* @return the size of an ulp of the argument
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
|
* @deprecated Use Math.ulp.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double ulp(double d) {
|
public static double ulp(double d) {
|
||||||
int exp = getExponent(d);
|
return Math.ulp(d);
|
||||||
|
|
||||||
switch(exp) {
|
|
||||||
case DoubleConsts.MAX_EXPONENT+1: // NaN or infinity
|
|
||||||
return Math.abs(d);
|
|
||||||
|
|
||||||
case DoubleConsts.MIN_EXPONENT-1: // zero or subnormal
|
|
||||||
return Double.MIN_VALUE;
|
|
||||||
|
|
||||||
default:
|
|
||||||
assert exp <= DoubleConsts.MAX_EXPONENT && exp >= DoubleConsts.MIN_EXPONENT;
|
|
||||||
|
|
||||||
// ulp(x) is usually 2^(SIGNIFICAND_WIDTH-1)*(2^ilogb(x))
|
|
||||||
exp = exp - (DoubleConsts.SIGNIFICAND_WIDTH-1);
|
|
||||||
if (exp >= DoubleConsts.MIN_EXPONENT) {
|
|
||||||
return powerOfTwoD(exp);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// return a subnormal result; left shift integer
|
|
||||||
// representation of Double.MIN_VALUE appropriate
|
|
||||||
// number of positions
|
|
||||||
return Double.longBitsToDouble(1L <<
|
|
||||||
(exp - (DoubleConsts.MIN_EXPONENT - (DoubleConsts.SIGNIFICAND_WIDTH-1)) ));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1141,33 +876,11 @@ public class FpUtils {
|
|||||||
* @return the size of an ulp of the argument
|
* @return the size of an ulp of the argument
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
|
* @deprecated Use Math.ulp.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static float ulp(float f) {
|
public static float ulp(float f) {
|
||||||
int exp = getExponent(f);
|
return Math.ulp(f);
|
||||||
|
|
||||||
switch(exp) {
|
|
||||||
case FloatConsts.MAX_EXPONENT+1: // NaN or infinity
|
|
||||||
return Math.abs(f);
|
|
||||||
|
|
||||||
case FloatConsts.MIN_EXPONENT-1: // zero or subnormal
|
|
||||||
return FloatConsts.MIN_VALUE;
|
|
||||||
|
|
||||||
default:
|
|
||||||
assert exp <= FloatConsts.MAX_EXPONENT && exp >= FloatConsts.MIN_EXPONENT;
|
|
||||||
|
|
||||||
// ulp(x) is usually 2^(SIGNIFICAND_WIDTH-1)*(2^ilogb(x))
|
|
||||||
exp = exp - (FloatConsts.SIGNIFICAND_WIDTH-1);
|
|
||||||
if (exp >= FloatConsts.MIN_EXPONENT) {
|
|
||||||
return powerOfTwoF(exp);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// return a subnormal result; left shift integer
|
|
||||||
// representation of FloatConsts.MIN_VALUE appropriate
|
|
||||||
// number of positions
|
|
||||||
return Float.intBitsToFloat(1 <<
|
|
||||||
(exp - (FloatConsts.MIN_EXPONENT - (FloatConsts.SIGNIFICAND_WIDTH-1)) ));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1186,9 +899,11 @@ public class FpUtils {
|
|||||||
* @return the signum function of the argument
|
* @return the signum function of the argument
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
|
* @deprecated Use Math.signum.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static double signum(double d) {
|
public static double signum(double d) {
|
||||||
return (d == 0.0 || isNaN(d))?d:copySign(1.0, d);
|
return Math.signum(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1207,9 +922,10 @@ public class FpUtils {
|
|||||||
* @return the signum function of the argument
|
* @return the signum function of the argument
|
||||||
* @author Joseph D. Darcy
|
* @author Joseph D. Darcy
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
|
* @deprecated Use Math.signum.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static float signum(float f) {
|
public static float signum(float f) {
|
||||||
return (f == 0.0f || isNaN(f))?f:copySign(1.0f, f);
|
return Math.signum(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,9 @@ package sun.misc;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class REException extends Exception {
|
public class REException extends Exception {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 4656584872733646963L;
|
||||||
|
|
||||||
REException (String s) {
|
REException (String s) {
|
||||||
super(s);
|
super(s);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1994, 2002, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -25,10 +25,8 @@
|
|||||||
|
|
||||||
package sun.net;
|
package sun.net;
|
||||||
|
|
||||||
import java.lang.StringIndexOutOfBoundsException;
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import sun.net.NetworkClient;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class implements that basic intefaces of transfer protocols.
|
* This class implements that basic intefaces of transfer protocols.
|
||||||
@ -44,7 +42,7 @@ public class TransferProtocolClient extends NetworkClient {
|
|||||||
|
|
||||||
/** Array of strings (usually 1 entry) for the last reply
|
/** Array of strings (usually 1 entry) for the last reply
|
||||||
from the server. */
|
from the server. */
|
||||||
protected Vector serverResponse = new Vector(1);
|
protected Vector<String> serverResponse = new Vector<>(1);
|
||||||
|
|
||||||
/** code for last reply */
|
/** code for last reply */
|
||||||
protected int lastReplyCode;
|
protected int lastReplyCode;
|
||||||
@ -123,11 +121,11 @@ public class TransferProtocolClient extends NetworkClient {
|
|||||||
|
|
||||||
/** converts the server response into a string. */
|
/** converts the server response into a string. */
|
||||||
public String getResponseString() {
|
public String getResponseString() {
|
||||||
return (String) serverResponse.elementAt(0);
|
return serverResponse.elementAt(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns all server response strings. */
|
/** Returns all server response strings. */
|
||||||
public Vector getResponseStrings() {
|
public Vector<String> getResponseStrings() {
|
||||||
return serverResponse;
|
return serverResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -67,16 +67,13 @@ public abstract class FtpClientProvider {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Class c = Class.forName(cm, true, null);
|
Class<?> c = Class.forName(cm, true, null);
|
||||||
provider = (FtpClientProvider) c.newInstance();
|
provider = (FtpClientProvider) c.newInstance();
|
||||||
return true;
|
return true;
|
||||||
} catch (ClassNotFoundException x) {
|
} catch (ClassNotFoundException |
|
||||||
throw new ServiceConfigurationError(x.toString());
|
IllegalAccessException |
|
||||||
} catch (IllegalAccessException x) {
|
InstantiationException |
|
||||||
throw new ServiceConfigurationError(x.toString());
|
SecurityException x) {
|
||||||
} catch (InstantiationException x) {
|
|
||||||
throw new ServiceConfigurationError(x.toString());
|
|
||||||
} catch (SecurityException x) {
|
|
||||||
throw new ServiceConfigurationError(x.toString());
|
throw new ServiceConfigurationError(x.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user