提交 74584ade 编写于 作者: M mfang

Merge

......@@ -3,3 +3,4 @@
/nbproject/private/
^make/netbeans/.*/build/
^make/netbeans/.*/dist/
^.hgtip
......@@ -113,3 +113,4 @@ d8ced728159fbb2caa8b6adb477fd8efdbbdf179 jdk7-b135
aa13e7702cd9d8aca9aa38f1227f966990866944 jdk7-b136
29296ea6529a418037ccce95903249665ef31c11 jdk7-b137
60d3d55dcc9c31a30ced9caa6ef5c0dcd7db031d jdk7-b138
d80954a89b49fda47c0c5cace65a17f5a758b8bd jdk7-b139
......@@ -56,10 +56,6 @@ build: unpacker
vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)
ifeq ($(STANDALONE),true)
ZIPOBJDIR = $(OUTPUTDIR)/tmp/sun/java.util.zip/zip/$(OBJDIRNAME)
......@@ -131,8 +127,9 @@ prop:
pack200-tool:
$(call make-launcher, pack200, com.sun.java.util.jar.pack.Driver, , --pack)
# ignore mapfile for non-product binary
unpacker:
$(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_OPT= LDMAPFLAGS_DBG=
$(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_DBG=
ifeq ($(PLATFORM), windows)
IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)
......@@ -147,8 +144,14 @@ winres::
$(ECHO) "Resource files not required for Unix"
endif
# Mapfile-vers.gmk, does not copy over the mapfile-vers-unpack200, when
# the make utiliy is re-invoked, as in this case. In order to workaround
# this special case, the mapfile required for the unpack200 command, is
# explicitly copied over to the expected location.
$(UNPACK_EXE): $(UNPACK_EXE_FILES_o) updatefiles winres
$(prep-target)
$(RM) $(TEMPDIR)/mapfile-vers
$(CP) mapfile-vers-unpack200 $(TEMPDIR)/mapfile-vers
$(LINKER) $(LDDFLAGS) $(UNPACK_EXE_FILES_o) $(RES) $(LIBCXX) $(LDOUTPUT)$(TEMPDIR)/unpack200$(EXE_SUFFIX)
ifdef MT
$(MT) /manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest /outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1
......
#
# 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.
#
# Define library interface.
SUNWprivate_1.1 {
local:
*;
};
......@@ -251,9 +251,8 @@ LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
# statically link libgcc but will print a warning with the flag. We don't
# want the warning, so check gcc version first.
#
CC_VER_MAJOR := $(shell $(CC) -dumpversion | $(SED) 's/egcs-//' | $(CUT) -d'.' -f1)
ifeq ("$(CC_VER_MAJOR)", "3")
OTHER_LDFLAGS += -static-libgcc
ifeq ($(CC_MAJORVER),3)
OTHER_LDFLAGS += -static-libgcc
endif
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
......
......@@ -457,14 +457,15 @@ else
# On X86, make sure tail call optimization is off
# The z and y are the tail call optimizations.
ifeq ($(ARCH_FAMILY), i586)
ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1)
ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 8), 1)
# Somehow, tail call optimization is creeping in.
# Make sure it is off.
# WARNING: These may cause compiler warnings about duplicate -O options
CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
endif
CC_NEWER_THAN_58 := \
$(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
\( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 8 \) )
ifeq ($(CC_NEWER_THAN_58),1)
# Somehow, tail call optimization is creeping in.
# Make sure it is off.
# WARNING: These may cause compiler warnings about duplicate -O options
CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
endif
endif
......@@ -481,14 +482,15 @@ else
CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B
endif
ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1)
ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 6), 1)
# Do NOT use frame pointer register as a general purpose opt register
CC_OPT/NONE += -xregs=no%frameptr
CXX_OPT/NONE += -xregs=no%frameptr
CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
endif
CC_NEWER_THAN_56 := \
$(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
\( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) )
ifeq ($(CC_NEWER_THAN_56),1)
# Do NOT use frame pointer register as a general purpose opt register
CC_OPT/NONE += -xregs=no%frameptr
CXX_OPT/NONE += -xregs=no%frameptr
CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
endif
endif
......@@ -566,8 +568,10 @@ else
CFLAGS_REQUIRED_sparc += -xregs=no%appl
CFLAGS_REQUIRED_sparcv9 += -xregs=no%appl
endif
ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1)
# We MUST allow data alignment of 4 for sparc V8 (32bit)
CC_NEWER_THAN_56 := \
$(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
\( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) )
ifeq ($(CC_NEWER_THAN_56),1)
# Presents an ABI issue with customer JNI libs? We must be able to
# to handle 4byte aligned objects? (rare occurance, but possible?)
CFLAGS_REQUIRED_sparc += -xmemalign=4s
......
......@@ -211,9 +211,13 @@ $(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/../java_crw_demo/%
endif
# Jar manifest file
$(DEMO_MANIFEST):
MAINMANIFEST = $(JDK_TOPDIR)/make/tools/manifest.mf
$(DEMO_MANIFEST): $(MAINMANIFEST)
@$(prep-target)
$(ECHO) "Main-Class: $(DEMO_MAINCLASS)" > $@
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
$(MAINMANIFEST) >> $@
$(ECHO) "Main-Class: $(DEMO_MAINCLASS)" >> $@
ifdef DEMO_MANIFEST_ATTR
$(ECHO) "$(DEMO_MANIFEST_ATTR)" >> $@
endif
......
......@@ -52,8 +52,8 @@ ifeq ($(VARIANT), OPT)
endif
# If we are re-ordering functions in this solaris library, we need to make
# sure that -xF is added to the compile lines. This option is critical and
# enables the functions to be reordered.
# sure that -xF is added to the compile lines. This option is critical and
# enables the functions to be reordered.
ifdef FILES_reorder
CFLAGS_OPT += -xF
CXXFLAGS_OPT += -xF
......@@ -76,7 +76,6 @@ endif
endif # PLATFORM
ifeq ($(PLATFORM), linux)
ifeq ($(VARIANT), OPT)
......
......@@ -55,6 +55,11 @@ program_default_rule: all
program: $(ACTUAL_PROGRAM)
# reuse the mapfiles in the launcher's directory, the same should
# be applicable to the tool launchers as well.
FILES_m = $(BUILDDIR)/java/main/java/mapfile-$(ARCH)
include $(BUILDDIR)/common/Mapfile-vers.gmk
include $(JDK_TOPDIR)/make/common/Rules.gmk
ifdef NEVER_ACT_AS_SERVER_CLASS_MACHINE
......
......@@ -84,10 +84,10 @@ MakeHeadlessJarFileList: $(TOTAL_HEADLESS_JAR_FILELIST) $(JARSPLIT_JARFILE)
# Create headless rt.jar
HL_RT_JAR=$(ABS_TEMPDIR)/rt-hl-orig.jar
$(HL_RT_JAR): MakeHeadlessJarFileList $(JAR_MANIFEST_FILE)
$(HL_RT_JAR): MakeHeadlessJarFileList $(RT_JAR_MANIFEST_FILE)
$(prep-target)
$(CD) $(CLASSBINDIR) ; \
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \
$(JAR_JFLAGS)
@$(CD) $(CLASSBINDIR); $(java-vm-cleanup)
......
......@@ -608,8 +608,8 @@ $(RT_JAR_FILELIST) + $(RES_JAR_FILELIST): \
@$(java-vm-cleanup)
# Create the manifest file.
JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp
$(JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
RT_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/rt_manifest.tmp
$(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
$(prep-target)
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
......@@ -617,21 +617,28 @@ $(JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
$(ECHO) >> $@
$(CAT) $(BEANMANIFEST) >> $@
OTHER_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/other_manifest.tmp
$(OTHER_JAR_MANIFEST_FILE): $(MAINMANIFEST)
$(prep-target)
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
$(MAINMANIFEST) >> $@
# Create resources.jar containing non-class files
RESOURCES_JAR=$(ABS_TEMPDIR)/resources-orig.jar
$(RESOURCES_JAR): $(RES_JAR_FILELIST) $(JAR_MANIFEST_FILE)
$(RESOURCES_JAR): $(RES_JAR_FILELIST) $(OTHER_JAR_MANIFEST_FILE)
$(prep-target)
$(CD) $(CLASSBINDIR) && \
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \
@$(RES_JAR_FILELIST) $(BOOT_JAR_JFLAGS)
@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
# Create jsse.jar containing SunJSSE implementation classes
JSSE_JAR=$(ABS_TEMPDIR)/jsse-orig.jar
$(JSSE_JAR): $(JAR_MANIFEST_FILE)
$(JSSE_JAR): $(OTHER_JAR_MANIFEST_FILE)
$(prep-target)
$(CD) $(CLASSBINDIR) && \
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \
$(JSSE_CLASSES_DIRS) $(BOOT_JAR_JFLAGS)
@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
......@@ -675,10 +682,10 @@ endif
# Create rt.jar
RT_JAR=$(ABS_TEMPDIR)/rt-orig.jar
$(RT_JAR): $(RT_JAR_FILELIST) $(JAR_MANIFEST_FILE)
$(RT_JAR): $(RT_JAR_FILELIST) $(RT_JAR_MANIFEST_FILE)
$(prep-target)
$(CD) $(CLASSBINDIR) && \
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \
@$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS)
@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
......@@ -884,12 +891,18 @@ else
ABS_DB_PATH :=$(call FullPath,$(CLOSED_SHARE_SRC)/db)
DB_ZIP_LIST = $(shell $(LS) $(ABS_DB_PATH)/*.zip 2>/dev/null)
# Java DB image. Move the Java DB demo directory into the JDK's demo
# dir and in the process, rename it to db. Also remove index.html,
# since it presumes docs are co-located. Also remove register.html (no
# longer relevant).
initial-image-jdk-db: $(DB_ZIP_LIST)
$(MKDIR) -p $(JDK_IMAGE_DIR)/db
for d in $(DB_ZIP_LIST); do \
($(CD) $(JDK_IMAGE_DIR)/db && $(UNZIP) -o $$d); \
done
$(RM) -rf $(DEMODIR)/db
$(MV) $(JDK_IMAGE_DIR)/db/demo $(DEMODIR)/db
$(RM) $(JDK_IMAGE_DIR)/db/index.html $(JDK_IMAGE_DIR)/db/register.html
endif
# Standard jdk image
......@@ -1110,6 +1123,10 @@ endef
MINIMUM_OS_NAME := $(REQUIRED_OS_NAME)
MINIMUM_OS_VERSION := $(REQUIRED_OS_VERSION)
MINIMUM_OS_ARCH := $(ARCH)
ALL_SOURCE_TIPS = $(shell \
if [ -f $(SOURCE_TIPS) ] ; then \
$(CAT) $(SOURCE_TIPS) ; \
fi)
$(JDK_INFO_FILE): FRC
$(prep-target)
......@@ -1117,6 +1134,7 @@ $(JDK_INFO_FILE): FRC
$(call info-file-item, "OS_NAME", "$(MINIMUM_OS_NAME)")
$(call info-file-item, "OS_VERSION", "$(MINIMUM_OS_VERSION)")
$(call info-file-item, "OS_ARCH", "$(MINIMUM_OS_ARCH)")
$(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)")
# Create release file to identify this image
identify-image-jdk:: $(JDK_INFO_FILE)
......@@ -1127,6 +1145,7 @@ $(JRE_INFO_FILE): FRC
$(call info-file-item, "OS_NAME", "$(MINIMUM_OS_NAME)")
$(call info-file-item, "OS_VERSION", "$(MINIMUM_OS_VERSION)")
$(call info-file-item, "OS_ARCH", "$(MINIMUM_OS_ARCH)")
$(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)")
# Create release file to identify this image
identify-image-jre:: $(JRE_INFO_FILE)
......
......@@ -87,6 +87,8 @@ endif
# Get gcc version
_CC_VER :=$(shell $(CC) -dumpversion 2>&1 )
CC_VER :=$(call GetVersion,"$(_CC_VER)")
CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
CC_MINORVER :=$(call MinorVersion,$(CC_VER))
# Name of compiler
COMPILER_NAME = GCC$(call MajorVersion,$(CC_VER))
......
......@@ -117,7 +117,10 @@ ifeq ($(ARCH_FAMILY), i586)
LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64
endif
# Pick the options we want based on the compiler being used. (5.9 or newer)
ifeq ($(shell expr $(CC_MINORVER) \>= 9), 1)
CC_59_OR_NEWER := \
$(shell expr $(CC_MAJORVER) \> 5 \| \
\( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \>= 9 \) )
ifeq ($(CC_59_OR_NEWER), 1)
XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32)
XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64)
LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32)
......
......@@ -110,6 +110,7 @@ GDB = $(UTILS_USR_BIN_PATH)gdb
GREP = $(UTILS_COMMAND_PATH)grep
GUNZIP = $(UTILS_COMMAND_PATH)gunzip
HEAD = $(UTILS_USR_BIN_PATH)head
HG = hg
ID = $(UTILS_COMMAND_PATH)id
ISAINFO = $(UTILS_COMMAND_PATH)isainfo
KSH = $(UTILS_COMMAND_PATH)ksh
......
......@@ -612,6 +612,44 @@ else
COPYRIGHT_YEAR = $(shell $(DATE) '+%Y')
endif
# Create file with source information
SOURCE_TIPS=$(ABS_OUTPUTDIR)/source_tips
# The source tips can come from the Mercurial repository, or in the files
# $(HGTIP_FILENAME) which contains the tip but is also positioned in the same
# directory as the original $(HGDIR) directory.
# These should not be := assignments, only used from the root Makefile.
HG_VERSION = $(shell $(HG) version 2> $(DEV_NULL))
HG_DIRECTORY=.hg
HGTIP_FILENAME=.hgtip
HG_SEARCH = ./REPO ./*/REPO ./*/*/REPO ./*/*/*/REPO
REPO_LIST = $(patsubst ./%,%,$(patsubst %/,%,$(sort $(dir \
$(shell ( $(LS) -d $(HG_SEARCH:%/REPO=%/$(HG_DIRECTORY)) ; \
$(LS) $(HG_SEARCH:%/REPO=%/$(HGTIP_FILENAME)) ) \
2> $(DEV_NULL))))))
# Emit the repo:tip pairs to $@
define GetSourceTips
for i in $(REPO_LIST) IGNORE ; do \
if [ "$${i}" = "IGNORE" ] ; then \
continue; \
elif [ -d $${i}/$(HG_DIRECTORY) -a "$(HG_VERSION)" != "" ] ; then \
$(PRINTF) " %s:%s" \
"$${i}" `$(HG) tip --repository $${i} --template '{node|short}\n'` ; \
elif [ -f $${i}/$(HGTIP_FILENAME) ] ; then \
$(PRINTF) " %s:%s" \
"$${i}" `$(CAT) $${i}/$(HGTIP_FILENAME)` ; \
fi; \
done >> $@
$(PRINTF) "\n" >> $@
endef
# Create the HGTIP_FILENAME file
define CreateHgTip
$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME);\
$(ECHO) $1/$(HGTIP_FILENAME)
endef
# Get the compiler specific settings (will run the compiler to find out)
# NOTE: COMPILER_PATH must be set by this time.
# Up until we include this file, we don't know what specific compiler
......
......@@ -53,7 +53,7 @@ DEV_DOCS_URL-7 = http://download.oracle.com/javase/7/docs/index.html
DEV_DOCS_URL = $(DEV_DOCS_URL-$(JDK_MINOR_VERSION))
# Url to Java Language Spec
JLS3_URL = http://java.sun.com/docs/books/jls/
#JLS3_URL = http://java.sun.com/docs/books/jls/
# Common Java trademark line
JAVA_TRADEMARK_LINE = Java is a trademark or registered trademark of \
......@@ -293,8 +293,8 @@ COREAPI_HEADER = \
<strong>Java$(TRADEMARK)&nbsp;Platform<br>Standard&nbsp;Ed.&nbsp;$(JDK_MINOR_VERSION)</strong>
# Java language specification cite
TAG_JLS3 = jls3:a:See <cite><a href="$(JLS3_URL)"> \
The Java Language Specification, Third Edition</a></cite>:
TAG_JLS = jls:a:See <cite> \
The Java&trade; Language Specification</cite>:
# Overview file for core apis
COREAPI_OVERVIEW = $(SHARE_SRC)/classes/overview-core.html
......@@ -329,7 +329,7 @@ $(COREAPI_OPTIONS_FILE): $(COREAPI_OVERVIEW)
$(call OptionPair,-tag,specdefault:X) ; \
$(call OptionPair,-tag,Note:X) ; \
$(call OptionPair,-tag,ToDo:X) ; \
$(call OptionPair,-tag,$(TAG_JLS3)) ; \
$(call OptionPair,-tag,$(TAG_JLS)) ; \
$(call OptionOnly,-splitIndex) ; \
$(call OptionPair,-overview,$(COREAPI_OVERVIEW)) ; \
$(call OptionPair,-doctitle,$(COREAPI_DOCTITLE)) ; \
......@@ -1081,6 +1081,7 @@ $(TREEAPI_OPTIONS_FILE):
$(call OptionPair,-doctitle,$(TREEAPI_DOCTITLE)) ; \
$(call OptionPair,-windowtitle,$(TREEAPI_WINDOWTITLE) $(DRAFT_WINTITLE));\
$(call OptionPair,-header,$(TREEAPI_HEADER)$(DRAFT_HEADER)) ; \
$(call OptionPair,-tag,$(TAG_JLS)) ; \
$(call OptionPair,-bottom,$(TREEAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
$(call OptionTrip,-group,$(TREEAPI_GROUPNAME),$(TREEAPI_REGEXP)); \
$(call OptionTrip,-linkoffline,$(TREEAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
......
......@@ -189,7 +189,6 @@ JAVA_JAVA_java = \
java/util/ListResourceBundle.java \
sun/util/EmptyListResourceBundle.java \
java/util/Locale.java \
sun/util/locale/AsciiUtil.java \
sun/util/locale/BaseLocale.java \
sun/util/locale/Extension.java \
sun/util/locale/InternalLocaleBuilder.java \
......@@ -197,6 +196,7 @@ JAVA_JAVA_java = \
sun/util/locale/LocaleExtensions.java \
sun/util/locale/LocaleObjectCache.java \
sun/util/locale/LocaleSyntaxException.java \
sun/util/locale/LocaleUtils.java \
sun/util/locale/ParseStatus.java \
sun/util/locale/StringTokenIterator.java \
sun/util/locale/UnicodeLocaleExtension.java \
......
......@@ -61,5 +61,4 @@ OTHER_CPPFLAGS += -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"'
ifeq ($(PLATFORM), solaris)
LDFLAGS += -R$(OPENWIN_LIB)
LDFLAGS += -M mapfile-$(ARCH)
endif
#
# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 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
......@@ -27,7 +27,7 @@
# interested in declaring a version, simply scoping the file is sufficient.
#
{
SUNWprivate_1.1 {
global:
main; # Provides basic adb symbol offsets
environ; # Public symbols and required by Java run time
......
#
# Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 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
......@@ -27,7 +27,7 @@
# interested in declaring a version, simply scoping the file is sufficient.
#
{
SUNWprivate_1.1 {
global:
main; # Provides basic adb symbol offsets
environ; # Public symbols and required by Java run time
......
#
# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 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
......@@ -26,7 +26,7 @@
# interested in declaring a version, simply scoping the file is sufficient.
#
{
SUNWprivate_1.1 {
global:
main; # Provides basic adb symbol offsets
environ; # Public symbols and required by Java run time
......
#
# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 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
......@@ -28,7 +28,7 @@
# interested in declaring a version, simply scoping the file is sufficient.
#
{
SUNWprivate_1.1 {
global:
main; # Provides basic adb symbol offsets
environ; # Public symbols and required by Java run time
......
......@@ -31,9 +31,11 @@ include $(BUILDDIR)/common/Release.gmk
JCE_MANIFEST_FILE = $(TEMPDIR)/manifest.mf
$(JCE_MANIFEST_FILE): $(MAINMANIFEST)
$(prep-target)
( $(SED) "s/@@RELEASE@@/$(RELEASE)/" $<; \
$(ECHO) "Extension-Name: javax.crypto"; \
$(ECHO) "Implementation-Vendor-Id: com.sun"; ) > $@
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
$(MAINMANIFEST) >> $@
$(ECHO) "Extension-Name: javax.crypto" >> $@
$(ECHO) "Implementation-Vendor-Id: com.sun" >> $@
README-MAKEFILE_WARNING = \
"\nPlease read make/javax/crypto/Makefile for further build instructions."
......@@ -58,7 +60,7 @@ endef
SIGNING_KEY_DIR = /security/ws/JCE-signing/src
SIGNING_KEYSTORE = $(SIGNING_KEY_DIR)/KeyStore.jks
SIGNING_PASSPHRASE = $(SIGNING_KEY_DIR)/passphrase.txt
SIGNING_ALIAS = jce_rsa
SIGNING_ALIAS = oracle_jce_rsa
#
# Defines for signing the various jar files.
......
......@@ -519,9 +519,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"Both the JNI signature and the generic signature are "
"returned for each class. "
"Generic signatures are described in the signature attribute "
"section in the "
"<a href=\"http://java.sun.com/docs/books/vmspec\">
"Java Virtual Machine Specification, 3rd Edition.</a> "
"section in "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Since JDWP version 1.5."
(Out
)
......@@ -623,8 +622,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(referenceType refType "The reference type ID.")
)
(Reply
(int modBits "Modifier bits as defined in the "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>")
(int modBits "Modifier bits as defined in Chapter 4 of "
"<cite>The Java&trade; Virtual Machine Specification</cite>")
)
(ErrorSet
(Error INVALID_CLASS "refType is not the ID of a reference "
......@@ -651,8 +650,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(int modBits "The modifier bit flags (also known as access flags) "
"which provide additional information on the "
"field declaration. Individual flag values are "
"defined in the "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>."
"defined in Chapter 4 of "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"In addition, The <code>0xf0000000</code> bit identifies "
"the field as synthetic, if the synthetic attribute "
"<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
......@@ -686,8 +685,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(int modBits "The modifier bit flags (also known as access flags) "
"which provide additional information on the "
"method declaration. Individual flag values are "
"defined in the "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>."
"defined in Chapter 4 of "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"In addition, The <code>0xf0000000</code> bit identifies "
"the method as synthetic, if the synthetic attribute "
"<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
......@@ -773,8 +772,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(Command Status=9
"Returns the current status of the reference type. The status "
"indicates the extent to which the reference type has been "
"initialized, as described in the "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/Concepts.doc.html#16491\">VM specification</a>. "
"initialized, as described in section 2.1.6 of "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"If the class is linked the PREPARED and VERIFIED bits in the returned status bits "
"will be set. If the class is initialized the INITIALIZED bit in the returned "
"status bits will be set. If an error occured during initialization then the "
......@@ -852,9 +851,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"Returns the JNI signature of a reference type along with the "
"generic signature if there is one. "
"Generic signatures are described in the signature attribute "
"section in the "
"<a href=\"http://java.sun.com/docs/books/vmspec\">
"Java Virtual Machine Specification, 3rd Edition.</a> "
"section in "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Since JDWP version 1.5."
"<p>
(Out
......@@ -882,9 +880,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"by the compiler. "
"Fields are returned in the order they occur in the class file. "
"Generic signatures are described in the signature attribute "
"section in the "
"<a href=\"http://java.sun.com/docs/books/vmspec\">
"Java Virtual Machine Specification, 3rd Edition.</a> "
"section in "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Since JDWP version 1.5."
(Out
(referenceType refType "The reference type ID.")
......@@ -900,8 +897,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(int modBits "The modifier bit flags (also known as access flags) "
"which provide additional information on the "
"field declaration. Individual flag values are "
"defined in the "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>."
"defined in Chapter 4 of "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"In addition, The <code>0xf0000000</code> bit identifies "
"the field as synthetic, if the synthetic attribute "
"<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
......@@ -925,9 +922,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"if present, and any synthetic methods created by the compiler. "
"Methods are returned in the order they occur in the class file. "
"Generic signatures are described in the signature attribute "
"section in the "
"<a href=\"http://java.sun.com/docs/books/vmspec\">
"Java Virtual Machine Specification, 3rd Edition.</a> "
"section in "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Since JDWP version 1.5."
(Out
(referenceType refType "The reference type ID.")
......@@ -943,8 +939,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(int modBits "The modifier bit flags (also known as access flags) "
"which provide additional information on the "
"method declaration. Individual flag values are "
"defined in the "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>."
"defined in Chapter 4 of "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"In addition, The <code>0xf0000000</code> bit identifies "
"the method as synthetic, if the synthetic attribute "
"<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
......@@ -1006,8 +1002,8 @@ JDWP "Java(tm) Debug Wire Protocol"
)
(Command ConstantPool=18
"Return the raw bytes of the constant pool in the format of the "
"constant_pool item of the Class File Format in the "
"Java Virtual Machine Specification. "
"constant_pool item of the Class File Format in "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"<p>Since JDWP version 1.6. Requires canGetConstantPool capability - see "
"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>.""
(Out
......@@ -1016,7 +1012,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(Reply
(int count "Total number of constant pool entries plus one. This "
"corresponds to the constant_pool_count item of the "
"Class File Format in the Java Virtual Machine Specification. ")
"Class File Format in "
"<cite>The Java&trade; Virtual Machine Specification</cite>. ")
(Repeat bytes
(byte cpbytes "Raw bytes of constant pool")
)
......@@ -1324,7 +1321,8 @@ JDWP "Java(tm) Debug Wire Protocol"
)
)
(Command Bytecodes=3
"Retrieve the method's bytecodes as defined in the JVM Specification."
"Retrieve the method's bytecodes as defined in "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Requires canGetBytecodes capability - see "
"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
(Out
......@@ -1379,9 +1377,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"instance methods, the \"this\" reference is included in the "
"table. Also, synthetic variables may be present. "
"Generic signatures are described in the signature attribute "
"section in the "
"<a href=\"http://java.sun.com/docs/books/vmspec\">
"Java Virtual Machine Specification, 3rd Edition.</a> "
"section in "
"<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Since JDWP version 1.5."
(Out
(referenceType refType "The class.")
......@@ -1970,8 +1967,9 @@ JDWP "Java(tm) Debug Wire Protocol"
"<p>"
"The method which will return early is referred to as the "
"called method. The called method is the current method (as "
"defined by the Frames section in the Java Virtual Machine "
"Specification) for the specified thread at the time this command "
"defined by the Frames section in "
"<cite>The Java&trade; Virtual Machine Specification</cite>) "
"for the specified thread at the time this command "
"is received. "
"<p>"
"The specified thread must be suspended. "
......
#
# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 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
......@@ -38,7 +38,7 @@ else
endif
SUBDIRS =
SUBDIRS_misc = nio scripting nbproject
SUBDIRS_misc = nio scripting nbproject forkjoin
SUBDIRS_enterprise = $(WEBSERVICES_SUBDIR)
SUBDIRS_management = jmx
......
#
# 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.
#
#
# Makefile for building all the samples under the forkjoin subdirectory.
#
BUILDDIR = ../..
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = mergesort
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
clobber clean ::
$(RM) -r $(SAMPLEDIR)/forkjoin
#
# 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.
#
#
# Makefile for the forkjoin/mergesort sample code
#
BUILDDIR = ../../..
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
SAMPLE_SRC_DIR = $(SHARE_SRC)/sample/forkjoin/mergesort
SAMPLE_DST_DIR = $(SAMPLEDIR)/forkjoin/mergesort
SAMPLE_FILES = \
$(SAMPLE_DST_DIR)/MergeDemo.java \
$(SAMPLE_DST_DIR)/MergeSort.java
all build: $(SAMPLE_FILES)
$(SAMPLE_DST_DIR)/%: $(SAMPLE_SRC_DIR)/%
$(install-file)
clean clobber:
$(RM) -r $(SAMPLE_DST_DIR)
.PHONY: all build clean clobber
#
# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 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
......@@ -31,7 +31,7 @@ BUILDDIR = ../..
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = file multicast server
SUBDIRS = chatserver file multicast server
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
......
#
# 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.
#
#
# Makefile for the nio/chatserver sample code
#
BUILDDIR = ../../..
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
SAMPLE_SRC_DIR = $(SHARE_SRC)/sample/nio/chatserver
SAMPLE_DST_DIR = $(SAMPLEDIR)/nio/chatserver
SAMPLE_FILES = \
$(SAMPLE_DST_DIR)/ChatServer.java \
$(SAMPLE_DST_DIR)/Client.java \
$(SAMPLE_DST_DIR)/ClientReader.java \
$(SAMPLE_DST_DIR)/DataReader.java \
$(SAMPLE_DST_DIR)/MessageReader.java \
$(SAMPLE_DST_DIR)/NameReader.java \
$(SAMPLE_DST_DIR)/README.txt
all build: $(SAMPLE_FILES)
$(SAMPLE_DST_DIR)/%: $(SAMPLE_SRC_DIR)/%
$(install-file)
clean clobber:
$(RM) -r $(SAMPLE_DST_DIR)
.PHONY: all build clean clobber
......@@ -83,6 +83,11 @@ SUBDIRS_desktop = audio $(RENDER_SUBDIR) image \
SUBDIRS_management = management
SUBDIRS_misc = $(ORG_SUBDIR) rmi $(JDBC_SUBDIR) tracing
SUBDIRS_tools = native2ascii serialver tools jconsole
ifndef OPENJDK
SUBDIRS += usagetracker
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
......
......@@ -73,9 +73,14 @@ ifeq ($(PLATFORM), linux)
# Recommended way to avoid such warning is to declare the variable as
# volatile to prevent the optimization. However, this approach does not
# work because we have to declare all variables as volatile in result.
ifndef CROSS_COMPILE_ARCH
OTHER_CFLAGS += -Wno-clobbered
endif
ifndef CROSS_COMPILE_ARCH
CC_43_OR_NEWER := \
$(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
\( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
ifeq ($(CC_43_OR_NEWER),1)
OTHER_CFLAGS += -Wno-clobbered
endif
endif
endif
include $(BUILDDIR)/common/Mapfile-vers.gmk
......
#
# 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.usagetracker
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
#
# Files
#
AUTO_FILES_JAVA_DIRS = sun/usagetracker
#
# Rules
#
include $(BUILDDIR)/common/Classes.gmk
Manifest-Version: 1.0
Specification-Title: Java Platform API Specification
Specification-Version: 1.7
Specification-Vendor: Oracle
Specification-Vendor: Oracle Corporation
Implementation-Title: Java Runtime Environment
Implementation-Version: @@RELEASE@@
Implementation-Vendor: @@COMPANY_NAME@@
/*
* 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.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -35,7 +35,6 @@ char *JLI_StringDup(const char *s1);
void JLI_MemFree(void *ptr);
int JLI_StrCCmp(const char *s1, const char* s2);
#define JLI_StrLen(p1) strlen((p1))
#define JLI_StrChr(p1, p2) strchr((p1), (p2))
#define JLI_StrRChr(p1, p2) strrchr((p1), (p2))
......@@ -48,6 +47,7 @@ int JLI_StrCCmp(const char *s1, const char* s2);
#define JLI_StrSpn(p1, p2) strspn((p1), (p2))
#define JLI_StrCSpn(p1, p2) strcspn((p1), (p2))
#define JLI_StrPBrk(p1, p2) strpbrk((p1), (p2))
#define JLI_StrTok(p1, p2) strtok((p1), (p2))
/* On Windows lseek() is in io.h rather than the location dictated by POSIX. */
#ifdef _WIN32
......
......@@ -175,8 +175,8 @@ public final class TypeResolver {
/**
* Converts the given {@code type} to the corresponding class.
* This method implements the concept of type erasure,
* that is described in <a href="http://jscstage.sfbay.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.6">section 4.6</a>
* of Java Language Specification.
* that is described in section 4.6 of
* <cite>The Java&trade; Language Specification</cite>.
*
* @param type the array of types to convert
* @return a corresponding class
......
......@@ -88,8 +88,8 @@ Jar File Specification :<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar
http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html</a></li>
<li>
Java Virtual Machine Specification : <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html">
http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html</a></li>
Class File Specification: Chapter 4 of
<em>The Java&trade; Virtual Machine Specification</em>
<li>
Hypertext Transfer Protocol -- HTTP/1.1 : <a href="http://www.ietf.org/rfc/rfc2616.txt">
......
......@@ -42,12 +42,9 @@ public interface Accessible {
* Returns the Java<sup><font size=-2>TM</font></sup>
* programming language modifiers, encoded in an integer.
* <p>
* The modifier encodings are defined in the
* <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine
* Specification</a>, in the <code>access_flag</code> tables for
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75734">classes</a>,
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88358">fields</a>, and
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75568">methods</a>.
* The modifier encodings are defined in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* in the <code>access_flag</code> tables for classes(section 4.1), fields(section 4.5), and methods(section 4.6).
*/
public int modifiers();
......
......@@ -77,11 +77,9 @@ public interface ArrayType extends ReferenceType {
* as specified in the array declaration.
* <P>
* Note: The component type of a array will always be
* created or loaded before the array - see the
* <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual
* Machine Specification</a>, section
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ConstantPool.doc.html#79473">5.3.3
* Creating Array Classes</a>.
* created or loaded before the array - see
* <cite>The Java&trade; Virtual Machine Specification</cite>,
* section 5.3.3 - Creating Array Classes.
* However, although the component type will be loaded it may
* not yet be prepared, in which case the type will be returned
* but attempts to perform some operations on the returned type
......
......@@ -71,11 +71,9 @@ public interface ClassLoaderReference extends ObjectReference {
* <p>
* No ordering of the returned list is guaranteed.
* <p>
* See the revised
* <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a> section
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ConstantPool.doc.html#72007">5.3
* Creation and Loading</a>
* See
* <cite>The Java&trade; Virtual Machine Specification</cite>,
* section 5.3 - Creation and Loading
* for more information on the initiating classloader.
* <p>
* Note that unlike {@link #definedClasses()}
......
......@@ -60,9 +60,9 @@ package com.sun.jdi;
* is visible to the class loader of enclosing class. (That is, the
* class loader of the enclosing class must be an <i>initiating</i> class
* loader for the class in question.)
* See the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a> for
* more details.
* See
* <cite>The Java&trade; Virtual Machine Specification</cite>
* for more details.
*
* @author Gordon Hirsch
* @since 1.3
......
......@@ -164,10 +164,8 @@ public interface ClassType extends ReferenceType {
* component type is passed. The component type can be a primitive type.
* Autoboxing is not supported.
*
* See the <a href="http://java.sun.com/docs/books/jls/">
* Java Language Specification</a>.
* section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a>
* See Section 5.2 of
* <cite>The Java&trade; Language Specification</cite>
* for more information on assignment compatibility.
* <p>
* By default, all threads in the target VM are resumed while
......@@ -280,10 +278,8 @@ public interface ClassType extends ReferenceType {
* component type is passed. The component type can be a primitive type.
* Autoboxing is not supported.
*
* See the <a href="http://java.sun.com/docs/books/jls/">
* Java Language Specification</a>.
* section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a>
* See section 5.2 of
* <cite>The Java&trade; Language Specification</cite>
* for more information on assignment compatibility.
* <p>
* By default, all threads in the target VM are resumed while
......
......@@ -102,9 +102,7 @@ public interface LocalVariable extends Mirror, Comparable<LocalVariable> {
/**
* Gets the generic signature for this variable if there is one.
* Generic signatures are described in the
* <a href="http://java.sun.com/docs/books/vmspec">
* "Java<sup><font size=-2>TM</font></sup>
* Virtual Machine Specification, 3rd Edition.</a>
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @return a string containing the generic signature, or <code>null</code>
* if there is no generic signature.
......
......@@ -164,10 +164,8 @@ public interface Method extends TypeComponent, Locatable, Comparable<Method> {
/**
* Determine if this method is a bridge method. Bridge
* methods are defined in the
* <a href="http://java.sun.com/docs/books/jls">
* "Java<sup><font size=-2>TM</font></sup>
* Language Specification, 3rd Edition.</a>
* methods are defined in
* <cite>The Java&trade; Language Specification</cite>.
*
* @return <code>true</code> if the method is a bridge method,
* false otherwise.
......
......@@ -118,10 +118,8 @@ public interface ObjectReference extends Value
* enclosing class's class loader). Primitive values must be
* either assignment compatible with the field type or must be
* convertible to the field type without loss of information.
* See the <a href="http://java.sun.com/docs/books/jls/">
* Java<sup><font size=-2>TM</font></sup> Language Specification</a>.
* section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a>
* See section 5.2 of
* <cite>The Java&trade; Language Specification</cite>
* for more information on assignment
* compatibility.
*
......@@ -182,18 +180,13 @@ public interface ObjectReference extends Value
* component type is passed. The component type can be a primitive type.
* Autoboxing is not supported.
*
* See the <a href="http://java.sun.com/docs/books/jls/">
* Java Language Specification</a>.
* section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a>
* See section 5.2 of
* <cite>The Java&trade; Language Specification</cite>
* for more information on assignment compatibility.
* <p>
* By default, the method is invoked using dynamic lookup as
* documented in the
* <a href="http://java.sun.com/docs/books/jls/">
* Java Language Specification</a>
* second edition, section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#45606">15.12.4.4</a>;
* documented in section 15.12.4.4 of
* <cite>The Java&trade; Language Specification</cite>
* in particular, overriding based on the runtime type of the object
* mirrored by this {@link ObjectReference} will occur. This
* behavior can be changed by specifying the
......
......@@ -30,9 +30,8 @@ import java.util.Map;
/**
* The type of an object in a target VM. ReferenceType encompasses
* classes, interfaces, and array types as defined in the
* <a href="http://java.sun.com/docs/books/jls/">
* Java<sup><font size=-2>TM</font></sup> Language Specification</a>.
* classes, interfaces, and array types as defined in
* <cite>The Java&trade; Language Specification</cite>.
* All ReferenceType objects belong to one of the following
* subinterfaces:
* {@link ClassType} for classes,
......@@ -98,9 +97,7 @@ public interface ReferenceType
/**
* Gets the generic signature for this type if there is one.
* Generic signatures are described in the
* <a href="http://java.sun.com/docs/books/vmspec">
* "Java<sup><font size=-2>TM</font></sup>
* Virtual Machine Specification, 3rd Edition.</a>
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @return a string containing the generic signature, or <code>null</code>
* if there is no generic signature.
......
......@@ -74,9 +74,7 @@ public interface TypeComponent extends Mirror, Accessible {
/**
* Gets the generic signature for this TypeComponent if there is one.
* Generic signatures are described in the
* <a href="http://java.sun.com/docs/books/vmspec">
* "Java<sup><font size=-2>TM</font></sup>
* Virtual Machine Specification, 3rd Edition.</a>
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @return a string containing the generic signature, or <code>null</code>
* if there is no generic signature.
......
......@@ -25,6 +25,7 @@
package com.sun.media.sound;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -439,10 +440,10 @@ public class DLSInstrument extends ModelInstrument {
}
public byte[] getGuid() {
return guid;
return guid == null ? null : Arrays.copyOf(guid, guid.length);
}
public void setGuid(byte[] guid) {
this.guid = guid;
this.guid = guid == null ? null : Arrays.copyOf(guid, guid.length);
}
}
......@@ -25,6 +25,7 @@
package com.sun.media.sound;
import java.io.InputStream;
import java.util.Arrays;
import javax.sound.midi.Soundbank;
import javax.sound.midi.SoundbankResource;
import javax.sound.sampled.AudioFormat;
......@@ -113,10 +114,10 @@ public class DLSSample extends SoundbankResource {
}
public byte[] getGuid() {
return guid;
return guid == null ? null : Arrays.copyOf(guid, guid.length);
}
public void setGuid(byte[] guid) {
this.guid = guid;
this.guid = guid == null ? null : Arrays.copyOf(guid, guid.length);
}
}
......@@ -24,6 +24,8 @@
*/
package com.sun.media.sound;
import java.util.Arrays;
/**
* Connection blocks are used to connect source variable
* to a destination variable.
......@@ -117,19 +119,17 @@ public class ModelConnectionBlock {
}
public ModelSource[] getSources() {
return sources;
return Arrays.copyOf(sources, sources.length);
}
public void setSources(ModelSource[] source) {
this.sources = source;
this.sources = source == null ? no_sources : Arrays.copyOf(source, source.length);
}
public void addSource(ModelSource source) {
ModelSource[] oldsources = sources;
sources = new ModelSource[oldsources.length + 1];
for (int i = 0; i < oldsources.length; i++) {
sources[i] = oldsources[i];
}
System.arraycopy(oldsources, 0, sources, 0, oldsources.length);
sources[sources.length - 1] = source;
}
}
......@@ -503,7 +503,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer {
firstVoice = true;
voiceNo = 0;
int tunedKey = (int)(Math.round(tuning.getTuning()[noteNumber]/100.0));
int tunedKey = (int)(Math.round(tuning.getTuning(noteNumber)/100.0));
play_noteNumber = noteNumber;
play_velocity = velocity;
play_delay = delay;
......@@ -607,7 +607,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer {
firstVoice = true;
voiceNo = 0;
int tunedKey = (int)(Math.round(tuning.getTuning()[noteNumber]/100.0));
int tunedKey = (int)(Math.round(tuning.getTuning(noteNumber)/100.0));
play_noteNumber = noteNumber;
play_velocity = lastVelocity[noteNumber];
play_releasetriggered = true;
......@@ -632,7 +632,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer {
int delay = play_delay;
boolean releasetriggered = play_releasetriggered;
SoftPerformer p = current_instrument.getPerformers()[performerIndex];
SoftPerformer p = current_instrument.getPerformer(performerIndex);
if (firstVoice) {
firstVoice = false;
......
......@@ -76,7 +76,12 @@ public class SoftInstrument extends Instrument {
return data;
}
/* am: currently getPerformers() is not used (replaced with getPerformer(int))
public SoftPerformer[] getPerformers() {
return performers;
}
*/
public SoftPerformer getPerformer(int index) {
return performers[index];
}
}
......@@ -505,7 +505,7 @@ public abstract class SoftMixingDataLine implements DataLine {
}
public Control[] getControls() {
return controls;
return Arrays.copyOf(controls, controls.length);
}
public boolean isControlSupported(Type control) {
......
......@@ -24,6 +24,7 @@
*/
package com.sun.media.sound;
import java.util.Arrays;
import javax.sound.midi.MidiDevice;
import javax.sound.midi.MidiDevice.Info;
import javax.sound.midi.spi.MidiDeviceProvider;
......@@ -39,7 +40,7 @@ public class SoftProvider extends MidiDeviceProvider {
private static Info[] softinfos = {softinfo};
public MidiDevice.Info[] getDeviceInfo() {
return softinfos;
return Arrays.copyOf(softinfos, softinfos.length);
}
public MidiDevice getDevice(MidiDevice.Info info) {
......
......@@ -25,6 +25,7 @@
package com.sun.media.sound;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import javax.sound.midi.Patch;
......@@ -234,8 +235,10 @@ public class SoftTuning {
}
}
// am: getTuning(int) is more effective.
// currently getTuning() is used only by tests
public double[] getTuning() {
return tuning;
return Arrays.copyOf(tuning, tuning.length);
}
public double getTuning(int noteNumber) {
......
/*
* 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.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -111,13 +111,13 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/
private String tableName;
/**
* A <code>Vector</code> object containing the <code>Row</code>
* objects that comprise this <code>CachedRowSetImpl</code> object.
* @serial
*/
private Vector rvh;
private Vector<Object> rvh;
/**
* The current postion of the cursor in this <code>CachedRowSetImpl</code>
* object.
......@@ -293,12 +293,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
/**
* The Vector holding the Match Columns
*/
private Vector iMatchColumns;
private Vector<Integer> iMatchColumns;
/**
* The Vector that will hold the Match Column names.
*/
private Vector strMatchColumns;
private Vector<String> strMatchColumns;
/**
* Trigger that indicates whether the active SyncProvider is exposes the
......@@ -484,7 +484,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/
private void initContainer() {
rvh = new Vector(100);
rvh = new Vector<Object>(100);
cursorPos = 0;
absolutePos = 0;
numRows = 0;
......@@ -523,12 +523,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
//Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10);
iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1));
}
strMatchColumns = new Vector(10);
strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null);
}
......@@ -622,7 +622,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
Row currentRow;
int numCols;
int i;
Map map = getTypeMap();
Map<String, Class<?>> map = getTypeMap();
Object obj;
int mRows;
......@@ -939,14 +939,9 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/
public void acceptChanges(Connection con) throws SyncProviderException{
try{
setConnection(con);
acceptChanges();
} catch (SyncProviderException spe) {
throw spe;
} catch(SQLException sqle){
throw new SyncProviderException(sqle.getMessage());
}
setConnection(con);
acceptChanges();
}
/**
......@@ -1289,14 +1284,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/
public Collection<?> toCollection() throws SQLException {
TreeMap tMap;
int count = 0;
Row origRow;
Vector newRow;
int colCount = ((RowSetMetaDataImpl)this.getMetaData()).getColumnCount();
tMap = new TreeMap();
TreeMap<Integer, Object> tMap = new TreeMap<>();
for (int i = 0; i<numRows; i++) {
tMap.put(Integer.valueOf(i), rvh.get(i));
......@@ -1325,10 +1313,8 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/
public Collection<?> toCollection(int column) throws SQLException {
Vector vec;
Row origRow;
int nRows = numRows;
vec = new Vector(nRows);
Vector<Object> vec = new Vector<>(nRows);
// create a copy
CachedRowSetImpl crsTemp;
......@@ -2953,7 +2939,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/
public Object getObject(int columnIndex) throws SQLException {
Object value;
java.util.Map map;
Map<String, Class<?>> map;
// sanity check.
checkIndex(columnIndex);
......@@ -7257,7 +7243,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
Row currentRow;
int numCols;
int i;
Map map = getTypeMap();
Map<String, Class<?>> map = getTypeMap();
Object obj;
int mRows;
......@@ -7304,11 +7290,11 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
resultSet.absolute(start -1);
}
if( pageSize == 0) {
rvh = new Vector(getMaxRows());
rvh = new Vector<Object>(getMaxRows());
}
else{
rvh = new Vector(getPageSize());
rvh = new Vector<Object>(getPageSize());
}
if (data == null) {
......
/*
* 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.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -93,12 +93,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
/**
* The Vector holding the Match Columns
*/
private Vector iMatchColumns;
private Vector<Integer> iMatchColumns;
/**
* The Vector that will hold the Match Column names.
*/
private Vector strMatchColumns;
private Vector<String> strMatchColumns;
protected transient JdbcRowSetResourceBundle resBundle;
......@@ -213,12 +213,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
//Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10);
iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1));
}
strMatchColumns = new Vector(10);
strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null);
}
......@@ -286,12 +286,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
//Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10);
iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1));
}
strMatchColumns = new Vector(10);
strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null);
}
......@@ -373,12 +373,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
//Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10);
iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1));
}
strMatchColumns = new Vector(10);
strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null);
}
......@@ -463,12 +463,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
//Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10);
iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1));
}
strMatchColumns = new Vector(10);
strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null);
}
......@@ -675,7 +675,7 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
try {
Map aMap = getTypeMap();
Map<String, Class<?>> aMap = getTypeMap();
if( aMap != null) {
conn.setTypeMap(aMap);
}
......
/*
* 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.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -59,8 +59,8 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet {
/**
* A <code>Vector</code> object that contains the <code>RowSet</code> objects
* that have been added to this <code>JoinRowSet</code> object.
*/
private Vector vecRowSetsInJOIN;
*/
private Vector<CachedRowSetImpl> vecRowSetsInJOIN;
/**
* The <code>CachedRowSet</code> object that encapsulates this
......@@ -78,13 +78,13 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet {
* for this <code>JoinRowSet</code> object.
* The last join type set forms the basis of succeeding joins.
*/
private Vector vecJoinType;
private Vector<Integer> vecJoinType;
/**
* A <code>Vector</code> object containing the names of all the tables entering
* the join.
*/
private Vector vecTableNames;
private Vector<String> vecTableNames;
/**
* An <code>int</code> that indicates the column index of the match column.
......@@ -121,10 +121,10 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet {
*/
public JoinRowSetImpl() throws SQLException {
vecRowSetsInJOIN = new Vector();
vecRowSetsInJOIN = new Vector<CachedRowSetImpl>();
crsInternal = new CachedRowSetImpl();
vecJoinType = new Vector();
vecTableNames = new Vector();
vecJoinType = new Vector<Integer>();
vecTableNames = new Vector<String>();
iMatchKey = -1;
strMatchKey = null;
supportedJOINs =
......@@ -222,7 +222,7 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet {
// either of the setter methods have been set.
if(boolColId){
//
ArrayList indices = new ArrayList();
ArrayList<Integer> indices = new ArrayList<>();
for(int i=0;i<cRowset.getMatchColumnNames().length;i++) {
if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) {
iMatchKey = cRowset.findColumn(strMatchKey);
......
......@@ -903,7 +903,7 @@ public class Dialog extends Window {
if (peer == null) {
addNotify();
}
validate();
validateUnconditionally();
if (visible) {
toFront();
retval = false;
......
......@@ -243,8 +243,10 @@ public abstract class GraphicsDevice {
* a non-client of the input method framework.
* </ul>
* <p>
* Simulated full-screen mode resizes
* the window to the size of the screen and positions it at (0,0).
* The simulated full-screen mode places and resizes the window to the maximum
* possible visible area of the screen. However, the native windowing system
* may modify the requested geometry-related data, so that the {@code Window} object
* is placed and sized in a way that corresponds closely to the desktop settings.
* <p>
* When entering full-screen mode, if the window to be used as a
* full-screen window is not visible, this method will make it visible.
......
......@@ -466,6 +466,10 @@ public abstract class Toolkit {
*/
protected void loadSystemColors(int[] systemColors)
throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
}
/**
......@@ -500,6 +504,10 @@ public abstract class Toolkit {
*/
public void setDynamicLayout(boolean dynamic)
throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
}
/**
......@@ -523,6 +531,9 @@ public abstract class Toolkit {
*/
protected boolean isDynamicLayoutSet()
throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().isDynamicLayoutSet();
} else {
......@@ -558,6 +569,9 @@ public abstract class Toolkit {
*/
public boolean isDynamicLayoutActive()
throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().isDynamicLayoutActive();
} else {
......@@ -601,6 +615,9 @@ public abstract class Toolkit {
*/
public Insets getScreenInsets(GraphicsConfiguration gc)
throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().getScreenInsets(gc);
} else {
......@@ -1342,6 +1359,9 @@ public abstract class Toolkit {
* @since 1.4
*/
public Clipboard getSystemSelection() throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().getSystemSelection();
} else {
......@@ -1371,6 +1391,10 @@ public abstract class Toolkit {
* @since JDK1.1
*/
public int getMenuShortcutKeyMask() throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
return Event.CTRL_MASK;
}
......@@ -1499,6 +1523,9 @@ public abstract class Toolkit {
*/
public Dimension getBestCursorSize(int preferredWidth,
int preferredHeight) throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
// Override to implement custom cursor support.
if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().
......@@ -1526,6 +1553,9 @@ public abstract class Toolkit {
* @since 1.2
*/
public int getMaximumCursorColors() throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
// Override to implement custom cursor support.
if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().getMaximumCursorColors();
......@@ -2561,8 +2591,6 @@ public abstract class Toolkit {
* initialized with {@code true}.
* Changing this value after the {@code Toolkit} class initialization will have no effect.
* <p>
* The current value could be queried by using the
* {@code System.getProperty("sun.awt.enableExtraMouseButtons")} method.
* @exception HeadlessException if GraphicsEnvironment.isHeadless() returns true
* @return {@code true} if events from extra mouse buttons are allowed to be processed and posted;
* {@code false} otherwise
......@@ -2572,6 +2600,9 @@ public abstract class Toolkit {
* @since 1.7
*/
public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled();
}
}
......@@ -870,6 +870,11 @@ public class Window extends Container implements Accessible {
* are automatically enlarged if either is less than
* the minimum size as specified by previous call to
* {@code setMinimumSize}.
* <p>
* The method changes the geometry-related data. Therefore,
* the native windowing system may ignore such requests, or it may modify
* the requested data, so that the {@code Window} object is placed and sized
* in a way that corresponds closely to the desktop settings.
*
* @see #getSize
* @see #setBounds
......@@ -887,6 +892,11 @@ public class Window extends Container implements Accessible {
* are automatically enlarged if either is less than
* the minimum size as specified by previous call to
* {@code setMinimumSize}.
* <p>
* The method changes the geometry-related data. Therefore,
* the native windowing system may ignore such requests, or it may modify
* the requested data, so that the {@code Window} object is placed and sized
* in a way that corresponds closely to the desktop settings.
*
* @see #getSize
* @see #setBounds
......@@ -897,6 +907,32 @@ public class Window extends Container implements Accessible {
super.setSize(width, height);
}
/**
* {@inheritDoc}
* <p>
* The method changes the geometry-related data. Therefore,
* the native windowing system may ignore such requests, or it may modify
* the requested data, so that the {@code Window} object is placed and sized
* in a way that corresponds closely to the desktop settings.
*/
@Override
public void setLocation(int x, int y) {
super.setLocation(x, y);
}
/**
* {@inheritDoc}
* <p>
* The method changes the geometry-related data. Therefore,
* the native windowing system may ignore such requests, or it may modify
* the requested data, so that the {@code Window} object is placed and sized
* in a way that corresponds closely to the desktop settings.
*/
@Override
public void setLocation(Point p) {
super.setLocation(p);
}
/**
* @deprecated As of JDK version 1.1,
* replaced by <code>setBounds(int, int, int, int)</code>.
......@@ -3147,6 +3183,11 @@ public class Window extends Container implements Accessible {
* placed at the left side of the screen. The similar placement
* will occur if both top and bottom edges are out of the screen.
* In that case, the window is placed at the top side of the screen.
* <p>
* The method changes the geometry-related data. Therefore,
* the native windowing system may ignore such requests, or it may modify
* the requested data, so that the {@code Window} object is placed and sized
* in a way that corresponds closely to the desktop settings.
*
* @param c the component in relation to which the window's location
* is determined
......@@ -3395,6 +3436,11 @@ public class Window extends Container implements Accessible {
* are automatically enlarged if either is less than
* the minimum size as specified by previous call to
* {@code setMinimumSize}.
* <p>
* The method changes the geometry-related data. Therefore,
* the native windowing system may ignore such requests, or it may modify
* the requested data, so that the {@code Window} object is placed and sized
* in a way that corresponds closely to the desktop settings.
*
* @see #getBounds
* @see #setLocation(int, int)
......@@ -3424,6 +3470,11 @@ public class Window extends Container implements Accessible {
* will be automatically enlarged if either is less than
* the minimum size as specified by previous call to
* {@code setMinimumSize}.
* <p>
* The method changes the geometry-related data. Therefore,
* the native windowing system may ignore such requests, or it may modify
* the requested data, so that the {@code Window} object is placed and sized
* in a way that corresponds closely to the desktop settings.
*
* @see #getBounds
* @see #setLocation(int, int)
......
......@@ -40,10 +40,9 @@ newly added listener is only notified on subsequent key events.
<a name="Autoshutdown"></a>
<h2>Auto-shutdown</h2>
According to <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html"><i>The
Java</i><sup><small>TM</small></sup> <i>Virtual Machine Specification,
Second edition</i></a> (see <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/Concepts.doc.html#19152">§2.17.9</a>
and <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/Concepts.doc.html#33308">§2.19</a>),
According to
<cite>The Java&trade; Virtual Machine Specification</cite>,
sections 2.17.9 and 2.19,
the Java virtual machine (JVM) initially starts up with a single non-daemon
thread, which typically calls the <code>main</code> method of some class.
The virtual machine terminates all its activity and exits when
......@@ -183,7 +182,8 @@ non-daemon thread that blocks forever.
<...>
</pre>
The Java Virtual Machine Specification guarantees
<cite>The Java&trade; Virtual Machine Specification</cite>
guarantees
that the JVM doesn't exit until this thread terminates.
</body>
</html>
......@@ -148,8 +148,8 @@ public final class Console implements Flushable
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -187,8 +187,8 @@ public final class Console implements Flushable
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -220,8 +220,7 @@ public final class Console implements Flushable
* string. If there are more arguments than format specifiers, the
* extra arguments are ignored. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>.
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @throws IllegalFormatException
* If a format string contains an illegal syntax, a format
......@@ -285,8 +284,7 @@ public final class Console implements Flushable
* string. If there are more arguments than format specifiers, the
* extra arguments are ignored. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>.
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @throws IllegalFormatException
* If a format string contains an illegal syntax, a format
......
......@@ -846,8 +846,8 @@ public class PrintStream extends FilterOutputStream
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -896,8 +896,8 @@ public class PrintStream extends FilterOutputStream
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -939,8 +939,8 @@ public class PrintStream extends FilterOutputStream
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -996,8 +996,8 @@ public class PrintStream extends FilterOutputStream
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......
......@@ -779,8 +779,8 @@ public class PrintWriter extends Writer {
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -830,8 +830,8 @@ public class PrintWriter extends Writer {
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -874,8 +874,8 @@ public class PrintWriter extends Writer {
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -934,8 +934,8 @@ public class PrintWriter extends Writer {
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......
......@@ -34,11 +34,9 @@ package java.lang;
* new AssertionError(<i>expression</i>)
* </pre>
* has as its detail message the <i>string conversion</i> of
* <i>expression</i> (as defined in <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html">
* <i>The Java Language Specification, Second Edition</i></a>,
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#40220">
* Section 15.18.1.1</a>), regardless of the type of <i>expression</i>.
* <i>expression</i> (as defined in section 15.18.1.1 of
* <cite>The Java&trade; Language Specification</cite>),
* regardless of the type of <i>expression</i>.
*
* @since 1.4
*/
......@@ -63,8 +61,8 @@ public class AssertionError extends Error {
/**
* Constructs an AssertionError with its detail message derived
* from the specified object, which is converted to a string as
* defined in <i>The Java Language Specification, Second
* Edition</i>, Section 15.18.1.1.
* defined in section 15.18.1.1 of
* <cite>The Java&trade; Language Specification</cite>.
*<p>
* If the specified object is an instance of {@code Throwable}, it
* becomes the <i>cause</i> of the newly constructed assertion error.
......@@ -81,8 +79,8 @@ public class AssertionError extends Error {
/**
* Constructs an AssertionError with its detail message derived
* from the specified <code>boolean</code>, which is converted to
* a string as defined in <i>The Java Language Specification,
* Second Edition</i>, Section 15.18.1.1.
* a string as defined in section 15.18.1.1 of
* <cite>The Java&trade; Language Specification</cite>.
*
* @param detailMessage value to be used in constructing detail message
*/
......@@ -93,8 +91,8 @@ public class AssertionError extends Error {
/**
* Constructs an AssertionError with its detail message derived
* from the specified <code>char</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second
* Edition</i>, Section 15.18.1.1.
* string as defined in section 15.18.1.1 of
* <cite>The Java&trade; Language Specification</cite>.
*
* @param detailMessage value to be used in constructing detail message
*/
......@@ -105,8 +103,8 @@ public class AssertionError extends Error {
/**
* Constructs an AssertionError with its detail message derived
* from the specified <code>int</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second
* Edition</i>, Section 15.18.1.1.
* string as defined in section 15.18.1.1 of
* <cite>The Java&trade; Language Specification</cite>.
*
* @param detailMessage value to be used in constructing detail message
*/
......@@ -117,8 +115,8 @@ public class AssertionError extends Error {
/**
* Constructs an AssertionError with its detail message derived
* from the specified <code>long</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second
* Edition</i>, Section 15.18.1.1.
* string as defined in section 15.18.1.1 of
* <cite>The Java&trade; Language Specification</cite>.
*
* @param detailMessage value to be used in constructing detail message
*/
......@@ -129,8 +127,8 @@ public class AssertionError extends Error {
/**
* Constructs an AssertionError with its detail message derived
* from the specified <code>float</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second
* Edition</i>, Section 15.18.1.1.
* string as defined in section 15.18.1.1 of
* <cite>The Java&trade; Language Specification</cite>.
*
* @param detailMessage value to be used in constructing detail message
*/
......@@ -141,8 +139,8 @@ public class AssertionError extends Error {
/**
* Constructs an AssertionError with its detail message derived
* from the specified <code>double</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second
* Edition</i>, Section 15.18.1.1.
* string as defined in section 15.18.1.1 of
* <cite>The Java&trade; Language Specification</cite>.
*
* @param detailMessage value to be used in constructing detail message
*/
......
......@@ -251,9 +251,9 @@ public final class Byte extends Number implements Comparable<Byte> {
* </blockquote>
*
* <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i>
* are defined in <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">&sect;3.10.1</a>
* of the <a href="http://java.sun.com/docs/books/jls/html/">Java
* Language Specification</a>.
* are as defined in section 3.10.1 of
* <cite>The Java&trade; Language Specification</cite>,
* except that underscores are not accepted between digits.
*
* <p>The sequence of characters following an optional
* sign and/or radix specifier ("{@code 0x}", "{@code 0X}",
......
......@@ -4182,9 +4182,11 @@ class Character implements java.io.Serializable, Comparable<Character> {
aliases.put("AVST", AVESTAN);
aliases.put("BALI", BALINESE);
aliases.put("BAMU", BAMUM);
aliases.put("BATK", BATAK);
aliases.put("BENG", BENGALI);
aliases.put("BOPO", BOPOMOFO);
aliases.put("BRAI", BRAILLE);
aliases.put("BRAH", BRAHMI);
aliases.put("BUGI", BUGINESE);
aliases.put("BUHD", BUHID);
aliases.put("CANS", CANADIAN_ABORIGINAL);
......@@ -4228,6 +4230,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
aliases.put("LISU", LISU);
aliases.put("LYCI", LYCIAN);
aliases.put("LYDI", LYDIAN);
aliases.put("MAND", MANDAIC);
aliases.put("MLYM", MALAYALAM);
aliases.put("MONG", MONGOLIAN);
aliases.put("MTEI", MEETEI_MAYEK);
......
......@@ -95,8 +95,8 @@ import sun.reflect.annotation.*;
* </pre></blockquote>
*
* <p> It is also possible to get the {@code Class} object for a named
* type (or for void) using a class literal
* (JLS Section <A HREF="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530">15.8.2</A>).
* type (or for void) using a class literal. See Section 15.8.2 of
* <cite>The Java&trade; Language Specification</cite>.
* For example:
*
* <p> <blockquote>
......@@ -521,7 +521,8 @@ public final
*
* <p> If this class object represents a reference type that is not an
* array type then the binary name of the class is returned, as specified
* by the Java Language Specification, Second Edition.
* by
* <cite>The Java&trade; Language Specification</cite>.
*
* <p> If this class object represents a primitive type or void, then the
* name returned is a {@code String} equal to the Java language
......@@ -630,8 +631,8 @@ public final
* the type variables declared by this generic declaration
* @throws java.lang.reflect.GenericSignatureFormatError if the generic
* signature of this generic declaration does not conform to
* the format specified in the Java Virtual Machine Specification,
* 3rd edition
* the format specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @since 1.5
*/
public TypeVariable<Class<T>>[] getTypeParameters() {
......@@ -675,8 +676,8 @@ public final
* returned.
*
* @throws java.lang.reflect.GenericSignatureFormatError if the generic
* class signature does not conform to the format specified in the
* Java Virtual Machine Specification, 3rd edition
* class signature does not conform to the format specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if the generic superclass
* refers to a non-existent type declaration
* @throws java.lang.reflect.MalformedParameterizedTypeException if the
......@@ -798,7 +799,8 @@ public final
*
* @throws java.lang.reflect.GenericSignatureFormatError
* if the generic class signature does not conform to the format
* specified in the Java Virtual Machine Specification, 3rd edition
* specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if any of the generic
* superinterfaces refers to a non-existent type declaration
* @throws java.lang.reflect.MalformedParameterizedTypeException
......
......@@ -160,8 +160,8 @@ import sun.security.util.SecurityConstants;
* <h4> <a name="name">Binary names</a> </h4>
*
* <p> Any class name provided as a {@link String} parameter to methods in
* <tt>ClassLoader</tt> must be a binary name as defined by the <a
* href="http://java.sun.com/docs/books/jls/">Java Language Specification</a>.
* <tt>ClassLoader</tt> must be a binary name as defined by
* <cite>The Java&trade; Language Specification</cite>.
*
* <p> Examples of valid class names include:
* <blockquote><pre>
......@@ -531,9 +531,8 @@ public abstract class ClassLoader {
* @param b
* The bytes that make up the class data. The bytes in positions
* <tt>off</tt> through <tt>off+len-1</tt> should have the format
* of a valid class file as defined by the <a
* href="http://java.sun.com/docs/books/vmspec/">Java Virtual
* Machine Specification</a>.
* of a valid class file as defined by
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @param off
* The start offset in <tt>b</tt> of the class data
......@@ -597,9 +596,8 @@ public abstract class ClassLoader {
* @param b
* The bytes that make up the class data. The bytes in positions
* <tt>off</tt> through <tt>off+len-1</tt> should have the format
* of a valid class file as defined by the <a
* href="http://java.sun.com/docs/books/vmspec/">Java Virtual
* Machine Specification</a>.
* of a valid class file as defined by
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @param off
* The start offset in <tt>b</tt> of the class data
......@@ -748,9 +746,8 @@ public abstract class ClassLoader {
* @param b
* The bytes that make up the class data. The bytes in positions
* <tt>off</tt> through <tt>off+len-1</tt> should have the format
* of a valid class file as defined by the <a
* href="http://java.sun.com/docs/books/vmspec/">Java Virtual
* Machine Specification</a>.
* of a valid class file as defined by
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @param off
* The start offset in <tt>b</tt> of the class data
......@@ -838,8 +835,7 @@ public abstract class ClassLoader {
* The bytes that make up the class data. The bytes from positions
* <tt>b.position()</tt> through <tt>b.position() + b.limit() -1
* </tt> should have the format of a valid class file as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual
* Machine Specification</a>.
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @param protectionDomain
* The ProtectionDomain of the class, or <tt>null</tt>.
......@@ -998,9 +994,8 @@ public abstract class ClassLoader {
* Links the specified class. This (misleadingly named) method may be
* used by a class loader to link a class. If the class <tt>c</tt> has
* already been linked, then this method simply returns. Otherwise, the
* class is linked as described in the "Execution" chapter of the <a
* href="http://java.sun.com/docs/books/jls/">Java Language
* Specification</a>.
* class is linked as described in the "Execution" chapter of
* <cite>The Java&trade; Language Specification</cite>.
* </p>
*
* @param c
......@@ -2034,8 +2029,8 @@ public abstract class ClassLoader {
* The name of the package whose package default assertion status
* is to be set. A <tt>null</tt> value indicates the unnamed
* package that is "current"
* (<a href="http://java.sun.com/docs/books/jls/">Java Language
* Specification</a>, section 7.4.2).
* (see section 7.4.2 of
* <cite>The Java&trade; Language Specification</cite>.)
*
* @param enabled
* <tt>true</tt> if classes loaded by this classloader and
......
......@@ -392,9 +392,10 @@ public final class Double extends Number implements Comparable<Double> {
* where <i>Sign</i>, <i>FloatingPointLiteral</i>,
* <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and
* <i>FloatTypeSuffix</i> are as defined in the lexical structure
* sections of the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>. If {@code s} does not have the form of
* sections of
* <cite>The Java&trade; Language Specification</cite>,
* except that underscores are not accepted between digits.
* If {@code s} does not have the form of
* a <i>FloatValue</i>, then a {@code NumberFormatException}
* is thrown. Otherwise, {@code s} is regarded as
* representing an exact decimal value in the usual
......@@ -464,8 +465,8 @@ public final class Double extends Number implements Comparable<Double> {
* // Since this method allows integer-only strings as input
* // in addition to strings of floating-point literals, the
* // two sub-patterns below are simplifications of the grammar
* // productions from the Java Language Specification, 2nd
* // edition, section 3.10.2.
* // productions from section 3.10.2 of
* // <cite>The Java&trade; Language Specification</cite>.
*
* // Digits ._opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt
* "((("+Digits+"(\\.)?("+Digits+"?)("+Exp+")?)|"+
......
......@@ -36,9 +36,8 @@ import java.io.ObjectStreamException;
*
* More information about enums, including descriptions of the
* implicitly declared methods synthesized by the compiler, can be
* found in <i>The Java&trade; Language Specification, Third
* Edition</i>, <a
* href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.9">&sect;8.9</a>.
* found in section 8.9 of
* <cite>The Java&trade; Language Specification</cite>.
*
* <p> Note that when using an enumeration type as the type of a set
* or as the type of the keys in a map, specialized and efficient
......
......@@ -43,7 +43,7 @@ package java.lang;
*
* @author Frank Yellin
* @see java.lang.ThreadDeath
* @jls3 11.2 Compile-Time Checking of Exceptions
* @jls 11.2 Compile-Time Checking of Exceptions
* @since JDK1.0
*/
public class Error extends Throwable {
......
......@@ -39,7 +39,7 @@ package java.lang;
*
* @author Frank Yellin
* @see java.lang.Error
* @jls3 11.2 Compile-Time Checking of Exceptions
* @jls 11.2 Compile-Time Checking of Exceptions
* @since JDK1.0
*/
public class Exception extends Throwable {
......
......@@ -353,9 +353,10 @@ public final class Float extends Number implements Comparable<Float> {
* where <i>Sign</i>, <i>FloatingPointLiteral</i>,
* <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and
* <i>FloatTypeSuffix</i> are as defined in the lexical structure
* sections of the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>. If {@code s} does not have the form of
* sections of
* <cite>The Java&trade; Language Specification</cite>,
* except that underscores are not accepted between digits.
* If {@code s} does not have the form of
* a <i>FloatValue</i>, then a {@code NumberFormatException}
* is thrown. Otherwise, {@code s} is regarded as
* representing an exact decimal value in the usual
......
......@@ -918,9 +918,9 @@ public final class Integer extends Number implements Comparable<Integer> {
* </blockquote>
*
* <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i>
* are defined in <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">&sect;3.10.1</a>
* of the <a href="http://java.sun.com/docs/books/jls/html/">Java
* Language Specification</a>.
* are as defined in section 3.10.1 of
* <cite>The Java&trade; Language Specification</cite>,
* except that underscores are not accepted between digits.
*
* <p>The sequence of characters following an optional
* sign and/or radix specifier ("{@code 0x}", "{@code 0X}",
......
......@@ -598,9 +598,9 @@ public final class Long extends Number implements Comparable<Long> {
* </blockquote>
*
* <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i>
* are defined in <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">&sect;3.10.1</a>
* of the <a href="http://java.sun.com/docs/books/jls/html/">Java
* Language Specification</a>.
* are as defined in section 3.10.1 of
* <cite>The Java&trade; Language Specification</cite>,
* except that underscores are not accepted between digits.
*
* <p>The sequence of characters following an optional
* sign and/or radix specifier ("{@code 0x}", "{@code 0X}",
......
/*
* Copyright (c) 1994, 2010, 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.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -627,11 +627,9 @@ public final class Math {
}
/**
* Returns the closest {@code int} to the argument. The
* result is rounded to an integer by adding 1/2, taking the
* floor of the result, and casting the result to type {@code int}.
* In other words, the result is equal to the value of the expression:
* <p>{@code (int)Math.floor(a + 0.5f)}
* Returns the closest {@code int} to the argument, with ties
* rounding up.
*
* <p>
* Special cases:
* <ul><li>If the argument is NaN, the result is 0.
......@@ -649,17 +647,17 @@ public final class Math {
* @see java.lang.Integer#MIN_VALUE
*/
public static int round(float a) {
return (int)floor(a + 0.5f);
if (a != 0x1.fffffep-2f) // greatest float value less than 0.5
return (int)floor(a + 0.5f);
else
return 0;
}
/**
* Returns the closest {@code long} to the argument. The result
* is rounded to an integer by adding 1/2, taking the floor of the
* result, and casting the result to type {@code long}. In other
* words, the result is equal to the value of the expression:
* <p>{@code (long)Math.floor(a + 0.5d)}
* <p>
* Special cases:
* Returns the closest {@code long} to the argument, with ties
* rounding up.
*
* <p>Special cases:
* <ul><li>If the argument is NaN, the result is 0.
* <li>If the argument is negative infinity or any value less than or
* equal to the value of {@code Long.MIN_VALUE}, the result is
......@@ -676,7 +674,10 @@ public final class Math {
* @see java.lang.Long#MIN_VALUE
*/
public static long round(double a) {
return (long)floor(a + 0.5d);
if (a != 0x1.fffffffffffffp-2) // greatest double value less than 0.5
return (long)floor(a + 0.5d);
else
return 0;
}
private static Random randomNumberGenerator;
......
......@@ -58,9 +58,8 @@ public class Object {
*
* @return The {@code Class} object that represents the runtime
* class of this object.
* @see <a href="http://java.sun.com/docs/books/jls/">The Java
* Language Specification, Third Edition (15.8.2 Class
* Literals)</a>
* @see Class Literals, section 15.8.2 of
* <cite>The Java&trade; Language Specification</cite>.
*/
public final native Class<?> getClass();
......
......@@ -43,7 +43,7 @@ import java.lang.annotation.*;
*
* @author Peter von der Ah&eacute;
* @author Joshua Bloch
* @jls3 9.6.1.4 Override
* @jls 9.6.1.4 Override
* @since 1.5
*/
@Target(ElementType.METHOD)
......
......@@ -109,10 +109,9 @@ public class Package implements java.lang.reflect.AnnotatedElement {
/**
* Return the name of this package.
*
* @return The fully-qualified name of this package as defined in the
* <em>Java Language Specification, Third Edition</em>
* <a href="http://java.sun.com/docs/books/jls/third_edition/html/names.html#6.5.3">
* &sect;6.5.3</a>, for example, {@code java.lang}
* @return The fully-qualified name of this package as defined in section 6.5.3 of
* <cite>The Java&trade; Language Specification</cite>,
* for example, {@code java.lang}
*/
public String getName() {
return pkgName;
......
......@@ -37,7 +37,7 @@ package java.lang;
* propagate outside the method or constructor boundary.
*
* @author Frank Yellin
* @jls3 11.2 Compile-Time Checking of Exceptions
* @jls 11.2 Compile-Time Checking of Exceptions
* @since JDK1.0
*/
public class RuntimeException extends Exception {
......
......@@ -70,8 +70,8 @@ import java.lang.annotation.*;
*
* </ul>
*
* @jls3 4.7 Reifiable Types
* @jls3 8.4.1 Formal Parameters
* @jls 4.7 Reifiable Types
* @jls 8.4.1 Formal Parameters
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
......
......@@ -256,9 +256,9 @@ public final class Short extends Number implements Comparable<Short> {
* </blockquote>
*
* <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i>
* are defined in <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">&sect;3.10.1</a>
* of the <a href="http://java.sun.com/docs/books/jls/html/">Java
* Language Specification</a>.
* are as defined in section 3.10.1 of
* <cite>The Java&trade; Language Specification</cite>,
* except that underscores are not accepted between digits.
*
* <p>The sequence of characters following an optional
* sign and/or radix specifier ("{@code 0x}", "{@code 0X}",
......
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 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
......@@ -613,11 +613,8 @@ public final class StrictMath {
public static native double pow(double a, double b);
/**
* Returns the closest {@code int} to the argument. The
* result is rounded to an integer by adding 1/2, taking the
* floor of the result, and casting the result to type {@code int}.
* In other words, the result is equal to the value of the expression:
* <p>{@code (int)Math.floor(a + 0.5f)}
* Returns the closest {@code int} to the argument, with ties
* rounding up.
*
* <p>Special cases:
* <ul><li>If the argument is NaN, the result is 0.
......@@ -635,15 +632,12 @@ public final class StrictMath {
* @see java.lang.Integer#MIN_VALUE
*/
public static int round(float a) {
return (int)floor(a + 0.5f);
return Math.round(a);
}
/**
* Returns the closest {@code long} to the argument. The result
* is rounded to an integer by adding 1/2, taking the floor of the
* result, and casting the result to type {@code long}. In other
* words, the result is equal to the value of the expression:
* <p>{@code (long)Math.floor(a + 0.5d)}
* Returns the closest {@code long} to the argument, with ties
* rounding up.
*
* <p>Special cases:
* <ul><li>If the argument is NaN, the result is 0.
......@@ -662,7 +656,7 @@ public final class StrictMath {
* @see java.lang.Long#MIN_VALUE
*/
public static long round(double a) {
return (long)floor(a + 0.5d);
return Math.round(a);
}
private static Random randomNumberGenerator;
......
......@@ -2819,8 +2819,8 @@ public final class String
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -2863,8 +2863,8 @@ public final class String
* extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>. The behaviour on a
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* The behaviour on a
* <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>.
*
......@@ -3066,9 +3066,8 @@ public final class String
* if and only if <code>s.equals(t)</code> is <code>true</code>.
* <p>
* All literal strings and string-valued constant expressions are
* interned. String literals are defined in &sect;3.10.5 of the
* <a href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>
* interned. String literals are defined in section 3.10.5 of the
* <cite>The Java&trade; Language Specification</cite>.
*
* @return a string that has the same contents as this string, but is
* guaranteed to be from a pool of unique strings.
......
......@@ -108,7 +108,7 @@ import java.util.*;
* @author unascribed
* @author Josh Bloch (Added exception chaining and programmatic access to
* stack trace in 1.4.)
* @jls3 11.2 Compile-Time Checking of Exceptions
* @jls 11.2 Compile-Time Checking of Exceptions
* @since JDK1.0
*/
public class Throwable implements Serializable {
......
......@@ -31,9 +31,8 @@ package java.lang.annotation;
* an annotation type. Also note that this interface does not itself
* define an annotation type.
*
* More information about annotation types can be found in <i>The
* Java&trade; Language Specification, Third Edition</i>, <a
* href="http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.6">&sect;9.6</a>.
* More information about annotation types can be found in section 9.6 of
* <cite>The Java&trade; Language Specification</cite>.
*
* @author Josh Bloch
* @since 1.5
......
......@@ -36,9 +36,9 @@ import java.security.ProtectionDomain;
* to transform class files.
* The transformation occurs before the class is defined by the JVM.
* <P>
* Note the term <i>class file</i> is used as defined in the chapter
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#80959">The class File Format</a>
* of <i>The Java Virtual Machine Specification</i>, to mean a sequence
* Note the term <i>class file</i> is used as defined in section 3.1 of
* <cite>The Java&trade; Virtual Machine Specification</cite>,
* to mean a sequence
* of bytes in class file format, whether or not they reside in a file.
*
* @see java.lang.instrument.Instrumentation
......
......@@ -434,8 +434,9 @@ public interface Instrumentation {
* avoiding these types of issues, is to use a unique package name for the
* instrumentation classes.
*
* <p> The <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine
* Specification</a> specifies that a subsequent attempt to resolve a symbolic
* <p>
* <cite>The Java&trade; Virtual Machine Specification</cite>
* specifies that a subsequent attempt to resolve a symbolic
* reference that the Java virtual machine has previously unsuccessfully attempted
* to resolve always fails with the same error that was thrown as a result of the
* initial resolution attempt. Consequently, if the JAR file contains an entry
......@@ -487,8 +488,9 @@ public interface Instrumentation {
* getName()} method on the <code>jarfile</code> and this is provided as the
* parameter to the <code>appendToClassPathForInstrumentation</code> method.
*
* <p> The <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine
* Specification</a> specifies that a subsequent attempt to resolve a symbolic
* <p>
* <cite>The Java&trade; Virtual Machine Specification</cite>
* specifies that a subsequent attempt to resolve a symbolic
* reference that the Java virtual machine has previously unsuccessfully attempted
* to resolve always fails with the same error that was thrown as a result of the
* initial resolution attempt. Consequently, if the JAR file contains an entry
......
......@@ -194,8 +194,8 @@
* Method handle constants for subtags {@code REF_getStatic}, {@code REF_putStatic}, and {@code REF_invokeStatic}
* may force class initialization on their first invocation, just like the corresponding bytecodes.
* <p>
* The rules of section 5.4.3 of the
* <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ConstantPool.doc.html#73492">JVM Specification</a>
* The rules of section 5.4.3 of
* <cite>The Java&trade; Virtual Machine Specification</cite>
* apply to the resolution of {@code CONSTANT_MethodType}, {@code CONSTANT_MethodHandle},
* and {@code CONSTANT_InvokeDynamic} constants,
* by the execution of {@code invokedynamic} and {@code ldc} instructions.
......
......@@ -186,8 +186,8 @@ public final
* the type variables declared by this generic declaration
* @throws GenericSignatureFormatError if the generic
* signature of this generic declaration does not conform to
* the format specified in the Java Virtual Machine Specification,
* 3rd edition
* the format specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @since 1.5
*/
public TypeVariable<Constructor<T>>[] getTypeParameters() {
......@@ -229,7 +229,8 @@ public final
* parameter types of the underlying method, in declaration order
* @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format
* specified in the Java Virtual Machine Specification, 3rd edition
* specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if any of the parameter
* types of the underlying method refers to a non-existent type
* declaration
......@@ -273,7 +274,8 @@ public final
* thrown by the underlying method
* @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format
* specified in the Java Virtual Machine Specification, 3rd edition
* specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if the underlying method's
* {@code throws} clause refers to a non-existent type declaration
* @throws MalformedParameterizedTypeException if
......@@ -468,8 +470,8 @@ public final
*
* <p>If the constructor's declaring class is an inner class in a
* non-static context, the first argument to the constructor needs
* to be the enclosing instance; see <i>The Java Language
* Specification</i>, section 15.9.3.
* to be the enclosing instance; see section 15.9.3 of
* <cite>The Java&trade; Language Specification</cite>.
*
* <p>If the required access and argument checks succeed and the
* instantiation will proceed, the constructor's declaring class
......@@ -541,7 +543,8 @@ public final
* constructor; returns {@code false} otherwise.
*
* @return true if and only if this constructor is a synthetic
* constructor as defined by the Java Language Specification.
* constructor as defined by
* <cite>The Java&trade; Language Specification</cite>.
* @since 1.5
*/
public boolean isSynthetic() {
......
......@@ -221,8 +221,8 @@ class Field extends AccessibleObject implements Member {
* @return a {@code Type} object that represents the declared type for
* the field represented by this {@code Field} object
* @throws GenericSignatureFormatError if the generic field
* signature does not conform to the format specified in the Java
* Virtual Machine Specification, 3rd edition
* signature does not conform to the format specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if the generic type
* signature of the underlying field refers to a non-existent
* type declaration
......
......@@ -42,8 +42,8 @@ public interface GenericDeclaration {
* the type variables declared by this generic declaration
* @throws GenericSignatureFormatError if the generic
* signature of this generic declaration does not conform to
* the format specified in the Java Virtual Machine Specification,
* 3rd edition
* the format specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
*/
public TypeVariable<?>[] getTypeParameters();
}
......@@ -194,8 +194,8 @@ public final
* the type variables declared by this generic declaration
* @throws GenericSignatureFormatError if the generic
* signature of this generic declaration does not conform to
* the format specified in the Java Virtual Machine Specification,
* 3rd edition
* the format specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @since 1.5
*/
public TypeVariable<Method>[] getTypeParameters() {
......@@ -230,7 +230,8 @@ public final
* type of the underlying method
* @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format
* specified in the Java Virtual Machine Specification, 3rd edition
* specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if the underlying method's
* return type refers to a non-existent type declaration
* @throws MalformedParameterizedTypeException if the
......@@ -275,7 +276,8 @@ public final
* parameter types of the underlying method, in declaration order
* @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format
* specified in the Java Virtual Machine Specification, 3rd edition
* specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if any of the parameter
* types of the underlying method refers to a non-existent type
* declaration
......@@ -319,7 +321,8 @@ public final
* thrown by the underlying method
* @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format
* specified in the Java Virtual Machine Specification, 3rd edition
* specified in
* <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if the underlying method's
* {@code throws} clause refers to a non-existent type declaration
* @throws MalformedParameterizedTypeException if
......
......@@ -34,14 +34,8 @@ import sun.reflect.ReflectionFactory;
* constants to decode class and member access modifiers. The sets of
* modifiers are represented as integers with distinct bit positions
* representing different modifiers. The values for the constants
* representing the modifiers are taken from <a
* href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html"><i>The
* Java</i><sup><small>TM</small></sup> <i>Virtual Machine Specification, Second
* edition</i></a> tables
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75734">4.1</a>,
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88358">4.4</a>,
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75568">4.5</a>, and
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88478">4.7</a>.
* representing the modifiers are taken from the tables in sections 4.1, 4.4, 4.5, and 4.7 of
* <cite>The Java&trade; Virtual Machine Specification</cite>.
*
* @see Class#getModifiers()
* @see Member#getModifiers()
......@@ -214,14 +208,8 @@ class Modifier {
* public final synchronized strictfp
* </pre></blockquote>
* The modifier names are returned in an order consistent with the
* suggested modifier orderings given in <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html"><em>The
* Java Language Specification, Second Edition</em></a> sections
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#21613">&sect;8.1.1</a>,
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#78091">&sect;8.3.1</a>,
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#78188">&sect;8.4.3</a>,
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#42018">&sect;8.8.3</a>, and
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#235947">&sect;9.1.1</a>.
* suggested modifier orderings given in sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1 of
* <cite>The Java&trade; Language Specification</cite>.
* The full modifier ordering used by this method is:
* <blockquote> {@code
* public protected private abstract static final transient
......@@ -269,9 +257,8 @@ class Modifier {
}
/*
* Access modifier flag constants from <em>The Java Virtual
* Machine Specification, Second Edition</em>, tables 4.1, 4.4,
* 4.5, and 4.7.
* Access modifier flag constants from tables 4.1, 4.4, 4.5, and 4.7 of
* <cite>The Java&trade; Virtual Machine Specification</cite>
*/
/**
......@@ -403,7 +390,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to a class.
*
* @jls3 8.1.1 Class Modifiers
* @jls 8.1.1 Class Modifiers
* @since 1.7
*/
public static int classModifiers() {
......@@ -416,7 +403,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to an inteface.
*
* @jls3 9.1.1 Interface Modifiers
* @jls 9.1.1 Interface Modifiers
* @since 1.7
*/
public static int interfaceModifiers() {
......@@ -429,7 +416,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to a constructor.
*
* @jls3 8.8.3 Constructor Modifiers
* @jls 8.8.3 Constructor Modifiers
* @since 1.7
*/
public static int constructorModifiers() {
......@@ -442,7 +429,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to a method.
*
* @jls3 8.4.3 Method Modifiers
* @jls 8.4.3 Method Modifiers
* @since 1.7
*/
public static int methodModifiers() {
......@@ -456,7 +443,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to a field.
*
* @jls3 8.3.1 Field Modifiers
* @jls 8.3.1 Field Modifiers
* @since 1.7
*/
public static int fieldModifiers() {
......
......@@ -2905,12 +2905,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
/**
* Converts this {@code BigDecimal} to a {@code BigInteger}.
* This conversion is analogous to a <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code double} to
* {@code long} as defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: any fractional part of this
* This conversion is analogous to the
* <i>narrowing primitive conversion</i> from {@code double} to
* {@code long} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* any fractional part of this
* {@code BigDecimal} will be discarded. Note that this
* conversion can lose information about the precision of the
* {@code BigDecimal} value.
......@@ -2942,13 +2941,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
}
/**
* Converts this {@code BigDecimal} to a {@code long}. This
* conversion is analogous to a <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code double} to
* {@code short} as defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: any fractional part of this
* Converts this {@code BigDecimal} to a {@code long}.
* This conversion is analogous to the
* <i>narrowing primitive conversion</i> from {@code double} to
* {@code short} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* any fractional part of this
* {@code BigDecimal} will be discarded, and if the resulting
* "{@code BigInteger}" is too big to fit in a
* {@code long}, only the low-order 64 bits are returned.
......@@ -3011,13 +3009,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
}
/**
* Converts this {@code BigDecimal} to an {@code int}. This
* conversion is analogous to a <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code double} to
* {@code short} as defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: any fractional part of this
* Converts this {@code BigDecimal} to an {@code int}.
* This conversion is analogous to the
* <i>narrowing primitive conversion</i> from {@code double} to
* {@code short} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* any fractional part of this
* {@code BigDecimal} will be discarded, and if the resulting
* "{@code BigInteger}" is too big to fit in an
* {@code int}, only the low-order 32 bits are returned.
......@@ -3095,12 +3092,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
/**
* Converts this {@code BigDecimal} to a {@code float}.
* This conversion is similar to the <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code double} to
* {@code float} defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: if this {@code BigDecimal} has too great a
* This conversion is similar to the
* <i>narrowing primitive conversion</i> from {@code double} to
* {@code float} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* if this {@code BigDecimal} has too great a
* magnitude to represent as a {@code float}, it will be
* converted to {@link Float#NEGATIVE_INFINITY} or {@link
* Float#POSITIVE_INFINITY} as appropriate. Note that even when
......@@ -3119,12 +3115,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
/**
* Converts this {@code BigDecimal} to a {@code double}.
* This conversion is similar to the <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code double} to
* {@code float} as defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: if this {@code BigDecimal} has too great a
* This conversion is similar to the
* <i>narrowing primitive conversion</i> from {@code double} to
* {@code float} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* if this {@code BigDecimal} has too great a
* magnitude represent as a {@code double}, it will be
* converted to {@link Double#NEGATIVE_INFINITY} or {@link
* Double#POSITIVE_INFINITY} as appropriate. Note that even when
......
......@@ -2719,12 +2719,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
/**
* Converts this BigInteger to an {@code int}. This
* conversion is analogous to a <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code long} to
* {@code int} as defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: if this BigInteger is too big to fit in an
* conversion is analogous to a
* <i>narrowing primitive conversion</i> from {@code long} to
* {@code int} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* if this BigInteger is too big to fit in an
* {@code int}, only the low-order 32 bits are returned.
* Note that this conversion can lose information about the
* overall magnitude of the BigInteger value as well as return a
......@@ -2740,12 +2739,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
/**
* Converts this BigInteger to a {@code long}. This
* conversion is analogous to a <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code long} to
* {@code int} as defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: if this BigInteger is too big to fit in a
* conversion is analogous to a
* <i>narrowing primitive conversion</i> from {@code long} to
* {@code int} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* if this BigInteger is too big to fit in a
* {@code long}, only the low-order 64 bits are returned.
* Note that this conversion can lose information about the
* overall magnitude of the BigInteger value as well as return a
......@@ -2763,12 +2761,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
/**
* Converts this BigInteger to a {@code float}. This
* conversion is similar to the <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code double} to
* {@code float} defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: if this BigInteger has too great a magnitude
* conversion is similar to the
* <i>narrowing primitive conversion</i> from {@code double} to
* {@code float} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* if this BigInteger has too great a magnitude
* to represent as a {@code float}, it will be converted to
* {@link Float#NEGATIVE_INFINITY} or {@link
* Float#POSITIVE_INFINITY} as appropriate. Note that even when
......@@ -2784,12 +2781,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
/**
* Converts this BigInteger to a {@code double}. This
* conversion is similar to the <a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing
* primitive conversion</i></a> from {@code double} to
* {@code float} defined in the <a
* href="http://java.sun.com/docs/books/jls/html/">Java Language
* Specification</a>: if this BigInteger has too great a magnitude
* conversion is similar to the
* <i>narrowing primitive conversion</i> from {@code double} to
* {@code float} as defined in section 5.1.3 of
* <cite>The Java&trade; Language Specification</cite>:
* if this BigInteger has too great a magnitude
* to represent as a {@code double}, it will be converted to
* {@link Double#NEGATIVE_INFINITY} or {@link
* Double#POSITIVE_INFINITY} as appropriate. Note that even when
......
......@@ -118,10 +118,8 @@ public class SecureClassLoader extends ClassLoader {
* and without a trailing ".class" suffix.
* @param b the bytes that make up the class data. The bytes in
* positions <code>off</code> through <code>off+len-1</code>
* should have the format of a valid class file as defined
* by the
* <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>.
* should have the format of a valid class file as defined by
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* @param off the start offset in <code>b</code> of the class data
* @param len the length of the class data
* @param cs the associated CodeSource, or <code>null</code> if none
......@@ -157,9 +155,8 @@ public class SecureClassLoader extends ClassLoader {
* and without a trailing ".class" suffix.
* @param b the bytes that make up the class data. The bytes from positions
* <tt>b.position()</tt> through <tt>b.position() + b.limit() -1</tt>
* should have the format of a valid class file as defined by the
* <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual
* Machine Specification</a>.
* should have the format of a valid class file as defined by
* <cite>The Java&trade; Virtual Machine Specification</cite>.
* @param cs the associated CodeSource, or <code>null</code> if none
* @return the <code>Class</code> object created from the data,
* and optional CodeSource.
......
......@@ -80,7 +80,7 @@ public class DriverManager {
// List of registered JDBC drivers
private final static CopyOnWriteArrayList<Driver> registeredDrivers = new CopyOnWriteArrayList<Driver>();
private final static CopyOnWriteArrayList<DriverInfo> registeredDrivers = new CopyOnWriteArrayList<DriverInfo>();
private static volatile int loginTimeout = 0;
private static volatile java.io.PrintWriter logWriter = null;
private static volatile java.io.PrintStream logStream = null;
......@@ -265,22 +265,22 @@ public class DriverManager {
// Walk through the loaded registeredDrivers attempting to locate someone
// who understands the given URL.
for (Driver aDriver : registeredDrivers) {
for (DriverInfo aDriver : registeredDrivers) {
// If the caller does not have permission to load the driver then
// skip it.
if(isDriverAllowed(aDriver, callerCL)) {
if(isDriverAllowed(aDriver.driver, callerCL)) {
try {
if(aDriver.acceptsURL(url)) {
if(aDriver.driver.acceptsURL(url)) {
// Success!
println("getDriver returning " + aDriver.getClass().getName());
return (aDriver);
println("getDriver returning " + aDriver.driver.getClass().getName());
return (aDriver.driver);
}
} catch(SQLException sqe) {
// Drop through and try the next driver.
}
} else {
println(" skipping: " + aDriver.getClass().getName());
println(" skipping: " + aDriver.driver.getClass().getName());
}
}
......@@ -305,7 +305,7 @@ public class DriverManager {
/* Register the driver if it has not already been added to our list */
if(driver != null) {
registeredDrivers.addIfAbsent(driver);
registeredDrivers.addIfAbsent(new DriverInfo(driver));
} else {
// This is for compatibility with the original DriverManager
throw new NullPointerException();
......@@ -333,9 +333,10 @@ public class DriverManager {
ClassLoader callerCL = DriverManager.getCallerClassLoader();
println("DriverManager.deregisterDriver: " + driver);
if(registeredDrivers.contains(driver)) {
DriverInfo aDriver = new DriverInfo(driver);
if(registeredDrivers.contains(aDriver)) {
if (isDriverAllowed(driver, callerCL)) {
registeredDrivers.remove(driver);
registeredDrivers.remove(aDriver);
} else {
// If the caller does not have permission to load the driver then
// throw a SecurityException.
......@@ -363,11 +364,11 @@ public class DriverManager {
ClassLoader callerCL = DriverManager.getCallerClassLoader();
// Walk through the loaded registeredDrivers.
for(Driver aDriver : registeredDrivers) {
for(DriverInfo aDriver : registeredDrivers) {
// If the caller does not have permission to load the driver then
// skip it.
if(isDriverAllowed(aDriver, callerCL)) {
result.addElement(aDriver);
if(isDriverAllowed(aDriver.driver, callerCL)) {
result.addElement(aDriver.driver);
} else {
println(" skipping: " + aDriver.getClass().getName());
}
......@@ -482,8 +483,8 @@ public class DriverManager {
private static void loadInitialDrivers() {
String drivers;
try {
drivers = (String) AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
drivers = AccessController.doPrivileged(new PrivilegedAction<String>() {
public String run() {
return System.getProperty("jdbc.drivers");
}
});
......@@ -495,8 +496,8 @@ public class DriverManager {
// exposed as a java.sql.Driver.class service.
// ServiceLoader.load() replaces the sun.misc.Providers()
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
ServiceLoader<Driver> loadedDrivers = ServiceLoader.load(Driver.class);
Iterator driversIterator = loadedDrivers.iterator();
......@@ -569,16 +570,16 @@ public class DriverManager {
// Remember the first exception that gets raised so we can reraise it.
SQLException reason = null;
for(Driver aDriver : registeredDrivers) {
for(DriverInfo aDriver : registeredDrivers) {
// If the caller does not have permission to load the driver then
// skip it.
if(isDriverAllowed(aDriver, callerCL)) {
if(isDriverAllowed(aDriver.driver, callerCL)) {
try {
println(" trying " + aDriver.getClass().getName());
Connection con = aDriver.connect(url, info);
println(" trying " + aDriver.driver.getClass().getName());
Connection con = aDriver.driver.connect(url, info);
if (con != null) {
// Success!
println("getConnection returning " + aDriver.getClass().getName());
println("getConnection returning " + aDriver.driver.getClass().getName());
return (con);
}
} catch (SQLException ex) {
......@@ -607,3 +608,29 @@ public class DriverManager {
private static native ClassLoader getCallerClassLoader();
}
/*
* Wrapper class for registered Drivers in order to not expose Driver.equals()
* to avoid the capture of the Driver it being compared to as it might not
* normally have access.
*/
class DriverInfo {
final Driver driver;
DriverInfo(Driver driver) {
this.driver = driver;
}
public boolean equals(Object other) {
return (other instanceof DriverInfo)
&& this.driver == ((DriverInfo) other).driver;
}
public int hashCode() {
return driver.hashCode();
}
public String toString() {
return ("driver[className=" + driver + "]");
}
}
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册