提交 8a7c91e2 编写于 作者: N ngthomas

Merge

...@@ -113,3 +113,4 @@ d8ced728159fbb2caa8b6adb477fd8efdbbdf179 jdk7-b135 ...@@ -113,3 +113,4 @@ d8ced728159fbb2caa8b6adb477fd8efdbbdf179 jdk7-b135
aa13e7702cd9d8aca9aa38f1227f966990866944 jdk7-b136 aa13e7702cd9d8aca9aa38f1227f966990866944 jdk7-b136
29296ea6529a418037ccce95903249665ef31c11 jdk7-b137 29296ea6529a418037ccce95903249665ef31c11 jdk7-b137
60d3d55dcc9c31a30ced9caa6ef5c0dcd7db031d jdk7-b138 60d3d55dcc9c31a30ced9caa6ef5c0dcd7db031d jdk7-b138
d80954a89b49fda47c0c5cace65a17f5a758b8bd jdk7-b139
...@@ -56,10 +56,6 @@ build: unpacker ...@@ -56,10 +56,6 @@ build: unpacker
vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR) vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)
ifeq ($(STANDALONE),true) ifeq ($(STANDALONE),true)
ZIPOBJDIR = $(OUTPUTDIR)/tmp/sun/java.util.zip/zip/$(OBJDIRNAME) ZIPOBJDIR = $(OUTPUTDIR)/tmp/sun/java.util.zip/zip/$(OBJDIRNAME)
...@@ -131,8 +127,9 @@ prop: ...@@ -131,8 +127,9 @@ prop:
pack200-tool: pack200-tool:
$(call make-launcher, pack200, com.sun.java.util.jar.pack.Driver, , --pack) $(call make-launcher, pack200, com.sun.java.util.jar.pack.Driver, , --pack)
# ignore mapfile for non-product binary
unpacker: unpacker:
$(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_OPT= LDMAPFLAGS_DBG= $(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_DBG=
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER) IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)
...@@ -147,8 +144,14 @@ winres:: ...@@ -147,8 +144,14 @@ winres::
$(ECHO) "Resource files not required for Unix" $(ECHO) "Resource files not required for Unix"
endif 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 $(UNPACK_EXE): $(UNPACK_EXE_FILES_o) updatefiles winres
$(prep-target) $(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) $(LINKER) $(LDDFLAGS) $(UNPACK_EXE_FILES_o) $(RES) $(LIBCXX) $(LDOUTPUT)$(TEMPDIR)/unpack200$(EXE_SUFFIX)
ifdef MT ifdef MT
$(MT) /manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest /outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1 $(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:
*;
};
...@@ -52,8 +52,8 @@ ifeq ($(VARIANT), OPT) ...@@ -52,8 +52,8 @@ ifeq ($(VARIANT), OPT)
endif endif
# If we are re-ordering functions in this solaris library, we need to make # 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 # sure that -xF is added to the compile lines. This option is critical and
# enables the functions to be reordered. # enables the functions to be reordered.
ifdef FILES_reorder ifdef FILES_reorder
CFLAGS_OPT += -xF CFLAGS_OPT += -xF
CXXFLAGS_OPT += -xF CXXFLAGS_OPT += -xF
...@@ -76,7 +76,6 @@ endif ...@@ -76,7 +76,6 @@ endif
endif # PLATFORM endif # PLATFORM
ifeq ($(PLATFORM), linux) ifeq ($(PLATFORM), linux)
ifeq ($(VARIANT), OPT) ifeq ($(VARIANT), OPT)
......
...@@ -55,6 +55,11 @@ program_default_rule: all ...@@ -55,6 +55,11 @@ program_default_rule: all
program: $(ACTUAL_PROGRAM) 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 include $(JDK_TOPDIR)/make/common/Rules.gmk
ifdef NEVER_ACT_AS_SERVER_CLASS_MACHINE ifdef NEVER_ACT_AS_SERVER_CLASS_MACHINE
......
...@@ -885,12 +885,18 @@ else ...@@ -885,12 +885,18 @@ else
ABS_DB_PATH :=$(call FullPath,$(CLOSED_SHARE_SRC)/db) ABS_DB_PATH :=$(call FullPath,$(CLOSED_SHARE_SRC)/db)
DB_ZIP_LIST = $(shell $(LS) $(ABS_DB_PATH)/*.zip 2>/dev/null) 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) initial-image-jdk-db: $(DB_ZIP_LIST)
$(MKDIR) -p $(JDK_IMAGE_DIR)/db $(MKDIR) -p $(JDK_IMAGE_DIR)/db
for d in $(DB_ZIP_LIST); do \ for d in $(DB_ZIP_LIST); do \
($(CD) $(JDK_IMAGE_DIR)/db && $(UNZIP) -o $$d); \ ($(CD) $(JDK_IMAGE_DIR)/db && $(UNZIP) -o $$d); \
done 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 endif
# Standard jdk image # Standard jdk image
......
...@@ -218,11 +218,7 @@ ifdef OPENJDK ...@@ -218,11 +218,7 @@ ifdef OPENJDK
else else
LAUNCHER_NAME = java LAUNCHER_NAME = java
PRODUCT_NAME = Java(TM) PRODUCT_NAME = Java(TM)
ifeq ($(J4B), true) PRODUCT_SUFFIX = SE Runtime Environment
PRODUCT_SUFFIX = SE Runtime Environment for Business
else
PRODUCT_SUFFIX = SE Runtime Environment
endif
JDK_RC_PLATFORM_NAME = Platform SE JDK_RC_PLATFORM_NAME = Platform SE
COMPANY_NAME = Oracle Corporation COMPANY_NAME = Oracle Corporation
endif endif
......
...@@ -53,7 +53,7 @@ DEV_DOCS_URL-7 = http://download.oracle.com/javase/7/docs/index.html ...@@ -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)) DEV_DOCS_URL = $(DEV_DOCS_URL-$(JDK_MINOR_VERSION))
# Url to Java Language Spec # 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 # Common Java trademark line
JAVA_TRADEMARK_LINE = Java is a trademark or registered trademark of \ JAVA_TRADEMARK_LINE = Java is a trademark or registered trademark of \
...@@ -293,8 +293,8 @@ COREAPI_HEADER = \ ...@@ -293,8 +293,8 @@ COREAPI_HEADER = \
<strong>Java$(TRADEMARK)&nbsp;Platform<br>Standard&nbsp;Ed.&nbsp;$(JDK_MINOR_VERSION)</strong> <strong>Java$(TRADEMARK)&nbsp;Platform<br>Standard&nbsp;Ed.&nbsp;$(JDK_MINOR_VERSION)</strong>
# Java language specification cite # Java language specification cite
TAG_JLS3 = jls3:a:See <cite><a href="$(JLS3_URL)"> \ TAG_JLS = jls:a:See <cite> \
The Java Language Specification, Third Edition</a></cite>: The Java&trade; Language Specification</cite>:
# Overview file for core apis # Overview file for core apis
COREAPI_OVERVIEW = $(SHARE_SRC)/classes/overview-core.html COREAPI_OVERVIEW = $(SHARE_SRC)/classes/overview-core.html
...@@ -329,7 +329,7 @@ $(COREAPI_OPTIONS_FILE): $(COREAPI_OVERVIEW) ...@@ -329,7 +329,7 @@ $(COREAPI_OPTIONS_FILE): $(COREAPI_OVERVIEW)
$(call OptionPair,-tag,specdefault:X) ; \ $(call OptionPair,-tag,specdefault:X) ; \
$(call OptionPair,-tag,Note:X) ; \ $(call OptionPair,-tag,Note:X) ; \
$(call OptionPair,-tag,ToDo:X) ; \ $(call OptionPair,-tag,ToDo:X) ; \
$(call OptionPair,-tag,$(TAG_JLS3)) ; \ $(call OptionPair,-tag,$(TAG_JLS)) ; \
$(call OptionOnly,-splitIndex) ; \ $(call OptionOnly,-splitIndex) ; \
$(call OptionPair,-overview,$(COREAPI_OVERVIEW)) ; \ $(call OptionPair,-overview,$(COREAPI_OVERVIEW)) ; \
$(call OptionPair,-doctitle,$(COREAPI_DOCTITLE)) ; \ $(call OptionPair,-doctitle,$(COREAPI_DOCTITLE)) ; \
...@@ -1081,6 +1081,7 @@ $(TREEAPI_OPTIONS_FILE): ...@@ -1081,6 +1081,7 @@ $(TREEAPI_OPTIONS_FILE):
$(call OptionPair,-doctitle,$(TREEAPI_DOCTITLE)) ; \ $(call OptionPair,-doctitle,$(TREEAPI_DOCTITLE)) ; \
$(call OptionPair,-windowtitle,$(TREEAPI_WINDOWTITLE) $(DRAFT_WINTITLE));\ $(call OptionPair,-windowtitle,$(TREEAPI_WINDOWTITLE) $(DRAFT_WINTITLE));\
$(call OptionPair,-header,$(TREEAPI_HEADER)$(DRAFT_HEADER)) ; \ $(call OptionPair,-header,$(TREEAPI_HEADER)$(DRAFT_HEADER)) ; \
$(call OptionPair,-tag,$(TAG_JLS)) ; \
$(call OptionPair,-bottom,$(TREEAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \ $(call OptionPair,-bottom,$(TREEAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
$(call OptionTrip,-group,$(TREEAPI_GROUPNAME),$(TREEAPI_REGEXP)); \ $(call OptionTrip,-group,$(TREEAPI_GROUPNAME),$(TREEAPI_REGEXP)); \
$(call OptionTrip,-linkoffline,$(TREEAPI2COREAPI),$(COREAPI_DOCSDIR)/); \ $(call OptionTrip,-linkoffline,$(TREEAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
......
...@@ -189,7 +189,6 @@ JAVA_JAVA_java = \ ...@@ -189,7 +189,6 @@ JAVA_JAVA_java = \
java/util/ListResourceBundle.java \ java/util/ListResourceBundle.java \
sun/util/EmptyListResourceBundle.java \ sun/util/EmptyListResourceBundle.java \
java/util/Locale.java \ java/util/Locale.java \
sun/util/locale/AsciiUtil.java \
sun/util/locale/BaseLocale.java \ sun/util/locale/BaseLocale.java \
sun/util/locale/Extension.java \ sun/util/locale/Extension.java \
sun/util/locale/InternalLocaleBuilder.java \ sun/util/locale/InternalLocaleBuilder.java \
...@@ -197,6 +196,7 @@ JAVA_JAVA_java = \ ...@@ -197,6 +196,7 @@ JAVA_JAVA_java = \
sun/util/locale/LocaleExtensions.java \ sun/util/locale/LocaleExtensions.java \
sun/util/locale/LocaleObjectCache.java \ sun/util/locale/LocaleObjectCache.java \
sun/util/locale/LocaleSyntaxException.java \ sun/util/locale/LocaleSyntaxException.java \
sun/util/locale/LocaleUtils.java \
sun/util/locale/ParseStatus.java \ sun/util/locale/ParseStatus.java \
sun/util/locale/StringTokenIterator.java \ sun/util/locale/StringTokenIterator.java \
sun/util/locale/UnicodeLocaleExtension.java \ sun/util/locale/UnicodeLocaleExtension.java \
......
...@@ -61,5 +61,4 @@ OTHER_CPPFLAGS += -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' ...@@ -61,5 +61,4 @@ OTHER_CPPFLAGS += -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"'
ifeq ($(PLATFORM), solaris) ifeq ($(PLATFORM), solaris)
LDFLAGS += -R$(OPENWIN_LIB) LDFLAGS += -R$(OPENWIN_LIB)
LDFLAGS += -M mapfile-$(ARCH)
endif 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. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
# interested in declaring a version, simply scoping the file is sufficient. # interested in declaring a version, simply scoping the file is sufficient.
# #
{ SUNWprivate_1.1 {
global: global:
main; # Provides basic adb symbol offsets main; # Provides basic adb symbol offsets
environ; # Public symbols and required by Java run time 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. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
# interested in declaring a version, simply scoping the file is sufficient. # interested in declaring a version, simply scoping the file is sufficient.
# #
{ SUNWprivate_1.1 {
global: global:
main; # Provides basic adb symbol offsets main; # Provides basic adb symbol offsets
environ; # Public symbols and required by Java run time 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. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# interested in declaring a version, simply scoping the file is sufficient. # interested in declaring a version, simply scoping the file is sufficient.
# #
{ SUNWprivate_1.1 {
global: global:
main; # Provides basic adb symbol offsets main; # Provides basic adb symbol offsets
environ; # Public symbols and required by Java run time 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. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
# interested in declaring a version, simply scoping the file is sufficient. # interested in declaring a version, simply scoping the file is sufficient.
# #
{ SUNWprivate_1.1 {
global: global:
main; # Provides basic adb symbol offsets main; # Provides basic adb symbol offsets
environ; # Public symbols and required by Java run time environ; # Public symbols and required by Java run time
......
...@@ -58,7 +58,7 @@ endef ...@@ -58,7 +58,7 @@ endef
SIGNING_KEY_DIR = /security/ws/JCE-signing/src SIGNING_KEY_DIR = /security/ws/JCE-signing/src
SIGNING_KEYSTORE = $(SIGNING_KEY_DIR)/KeyStore.jks SIGNING_KEYSTORE = $(SIGNING_KEY_DIR)/KeyStore.jks
SIGNING_PASSPHRASE = $(SIGNING_KEY_DIR)/passphrase.txt SIGNING_PASSPHRASE = $(SIGNING_KEY_DIR)/passphrase.txt
SIGNING_ALIAS = jce_rsa SIGNING_ALIAS = oracle_jce_rsa
# #
# Defines for signing the various jar files. # Defines for signing the various jar files.
......
...@@ -519,9 +519,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -519,9 +519,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"Both the JNI signature and the generic signature are " "Both the JNI signature and the generic signature are "
"returned for each class. " "returned for each class. "
"Generic signatures are described in the signature attribute " "Generic signatures are described in the signature attribute "
"section in the " "section in "
"<a href=\"http://java.sun.com/docs/books/vmspec\"> "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Java Virtual Machine Specification, 3rd Edition.</a> "
"Since JDWP version 1.5." "Since JDWP version 1.5."
(Out (Out
) )
...@@ -623,8 +622,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -623,8 +622,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(referenceType refType "The reference type ID.") (referenceType refType "The reference type ID.")
) )
(Reply (Reply
(int modBits "Modifier bits as defined in the " (int modBits "Modifier bits as defined in Chapter 4 of "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>") "<cite>The Java&trade; Virtual Machine Specification</cite>")
) )
(ErrorSet (ErrorSet
(Error INVALID_CLASS "refType is not the ID of a reference " (Error INVALID_CLASS "refType is not the ID of a reference "
...@@ -651,8 +650,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -651,8 +650,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(int modBits "The modifier bit flags (also known as access flags) " (int modBits "The modifier bit flags (also known as access flags) "
"which provide additional information on the " "which provide additional information on the "
"field declaration. Individual flag values are " "field declaration. Individual flag values are "
"defined in the " "defined in Chapter 4 of "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>." "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"In addition, The <code>0xf0000000</code> bit identifies " "In addition, The <code>0xf0000000</code> bit identifies "
"the field as synthetic, if the synthetic attribute " "the field as synthetic, if the synthetic attribute "
"<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.") "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
...@@ -686,8 +685,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -686,8 +685,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(int modBits "The modifier bit flags (also known as access flags) " (int modBits "The modifier bit flags (also known as access flags) "
"which provide additional information on the " "which provide additional information on the "
"method declaration. Individual flag values are " "method declaration. Individual flag values are "
"defined in the " "defined in Chapter 4 of "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>." "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"In addition, The <code>0xf0000000</code> bit identifies " "In addition, The <code>0xf0000000</code> bit identifies "
"the method as synthetic, if the synthetic attribute " "the method as synthetic, if the synthetic attribute "
"<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.") "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
...@@ -773,8 +772,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -773,8 +772,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(Command Status=9 (Command Status=9
"Returns the current status of the reference type. The status " "Returns the current status of the reference type. The status "
"indicates the extent to which the reference type has been " "indicates the extent to which the reference type has been "
"initialized, as described in the " "initialized, as described in section 2.1.6 of "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/Concepts.doc.html#16491\">VM specification</a>. " "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"If the class is linked the PREPARED and VERIFIED bits in the returned status bits " "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 " "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 " "status bits will be set. If an error occured during initialization then the "
...@@ -852,9 +851,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -852,9 +851,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"Returns the JNI signature of a reference type along with the " "Returns the JNI signature of a reference type along with the "
"generic signature if there is one. " "generic signature if there is one. "
"Generic signatures are described in the signature attribute " "Generic signatures are described in the signature attribute "
"section in the " "section in "
"<a href=\"http://java.sun.com/docs/books/vmspec\"> "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Java Virtual Machine Specification, 3rd Edition.</a> "
"Since JDWP version 1.5." "Since JDWP version 1.5."
"<p> "<p>
(Out (Out
...@@ -882,9 +880,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -882,9 +880,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"by the compiler. " "by the compiler. "
"Fields are returned in the order they occur in the class file. " "Fields are returned in the order they occur in the class file. "
"Generic signatures are described in the signature attribute " "Generic signatures are described in the signature attribute "
"section in the " "section in "
"<a href=\"http://java.sun.com/docs/books/vmspec\"> "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Java Virtual Machine Specification, 3rd Edition.</a> "
"Since JDWP version 1.5." "Since JDWP version 1.5."
(Out (Out
(referenceType refType "The reference type ID.") (referenceType refType "The reference type ID.")
...@@ -900,8 +897,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -900,8 +897,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(int modBits "The modifier bit flags (also known as access flags) " (int modBits "The modifier bit flags (also known as access flags) "
"which provide additional information on the " "which provide additional information on the "
"field declaration. Individual flag values are " "field declaration. Individual flag values are "
"defined in the " "defined in Chapter 4 of "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>." "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"In addition, The <code>0xf0000000</code> bit identifies " "In addition, The <code>0xf0000000</code> bit identifies "
"the field as synthetic, if the synthetic attribute " "the field as synthetic, if the synthetic attribute "
"<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.") "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
...@@ -925,9 +922,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -925,9 +922,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"if present, and any synthetic methods created by the compiler. " "if present, and any synthetic methods created by the compiler. "
"Methods are returned in the order they occur in the class file. " "Methods are returned in the order they occur in the class file. "
"Generic signatures are described in the signature attribute " "Generic signatures are described in the signature attribute "
"section in the " "section in "
"<a href=\"http://java.sun.com/docs/books/vmspec\"> "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Java Virtual Machine Specification, 3rd Edition.</a> "
"Since JDWP version 1.5." "Since JDWP version 1.5."
(Out (Out
(referenceType refType "The reference type ID.") (referenceType refType "The reference type ID.")
...@@ -943,8 +939,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -943,8 +939,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(int modBits "The modifier bit flags (also known as access flags) " (int modBits "The modifier bit flags (also known as access flags) "
"which provide additional information on the " "which provide additional information on the "
"method declaration. Individual flag values are " "method declaration. Individual flag values are "
"defined in the " "defined in Chapter 4 of "
"<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>." "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"In addition, The <code>0xf0000000</code> bit identifies " "In addition, The <code>0xf0000000</code> bit identifies "
"the method as synthetic, if the synthetic attribute " "the method as synthetic, if the synthetic attribute "
"<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.") "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
...@@ -1006,8 +1002,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -1006,8 +1002,8 @@ JDWP "Java(tm) Debug Wire Protocol"
) )
(Command ConstantPool=18 (Command ConstantPool=18
"Return the raw bytes of the constant pool in the format of the " "Return the raw bytes of the constant pool in the format of the "
"constant_pool item of the Class File Format in the " "constant_pool item of the Class File Format in "
"Java Virtual Machine Specification. " "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"<p>Since JDWP version 1.6. Requires canGetConstantPool capability - see " "<p>Since JDWP version 1.6. Requires canGetConstantPool capability - see "
"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."" "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>.""
(Out (Out
...@@ -1016,7 +1012,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -1016,7 +1012,8 @@ JDWP "Java(tm) Debug Wire Protocol"
(Reply (Reply
(int count "Total number of constant pool entries plus one. This " (int count "Total number of constant pool entries plus one. This "
"corresponds to the constant_pool_count item of the " "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 (Repeat bytes
(byte cpbytes "Raw bytes of constant pool") (byte cpbytes "Raw bytes of constant pool")
) )
...@@ -1324,7 +1321,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -1324,7 +1321,8 @@ JDWP "Java(tm) Debug Wire Protocol"
) )
) )
(Command Bytecodes=3 (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 " "Requires canGetBytecodes capability - see "
"<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>." "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
(Out (Out
...@@ -1379,9 +1377,8 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -1379,9 +1377,8 @@ JDWP "Java(tm) Debug Wire Protocol"
"instance methods, the \"this\" reference is included in the " "instance methods, the \"this\" reference is included in the "
"table. Also, synthetic variables may be present. " "table. Also, synthetic variables may be present. "
"Generic signatures are described in the signature attribute " "Generic signatures are described in the signature attribute "
"section in the " "section in "
"<a href=\"http://java.sun.com/docs/books/vmspec\"> "<cite>The Java&trade; Virtual Machine Specification</cite>. "
"Java Virtual Machine Specification, 3rd Edition.</a> "
"Since JDWP version 1.5." "Since JDWP version 1.5."
(Out (Out
(referenceType refType "The class.") (referenceType refType "The class.")
...@@ -1970,8 +1967,9 @@ JDWP "Java(tm) Debug Wire Protocol" ...@@ -1970,8 +1967,9 @@ JDWP "Java(tm) Debug Wire Protocol"
"<p>" "<p>"
"The method which will return early is referred to as the " "The method which will return early is referred to as the "
"called method. The called method is the current method (as " "called method. The called method is the current method (as "
"defined by the Frames section in the Java Virtual Machine " "defined by the Frames section in "
"Specification) for the specified thread at the time this command " "<cite>The Java&trade; Virtual Machine Specification</cite>) "
"for the specified thread at the time this command "
"is received. " "is received. "
"<p>" "<p>"
"The specified thread must be suspended. " "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. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -38,7 +38,7 @@ else ...@@ -38,7 +38,7 @@ else
endif endif
SUBDIRS = SUBDIRS =
SUBDIRS_misc = nio scripting nbproject SUBDIRS_misc = nio scripting nbproject forkjoin
SUBDIRS_enterprise = $(WEBSERVICES_SUBDIR) SUBDIRS_enterprise = $(WEBSERVICES_SUBDIR)
SUBDIRS_management = jmx 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. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -31,7 +31,7 @@ BUILDDIR = ../.. ...@@ -31,7 +31,7 @@ BUILDDIR = ../..
PRODUCT = java PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = file multicast server SUBDIRS = chatserver file multicast server
include $(BUILDDIR)/common/Subdirs.gmk include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber:: 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
/* /*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -35,7 +35,6 @@ char *JLI_StringDup(const char *s1); ...@@ -35,7 +35,6 @@ char *JLI_StringDup(const char *s1);
void JLI_MemFree(void *ptr); void JLI_MemFree(void *ptr);
int JLI_StrCCmp(const char *s1, const char* s2); int JLI_StrCCmp(const char *s1, const char* s2);
#define JLI_StrLen(p1) strlen((p1)) #define JLI_StrLen(p1) strlen((p1))
#define JLI_StrChr(p1, p2) strchr((p1), (p2)) #define JLI_StrChr(p1, p2) strchr((p1), (p2))
#define JLI_StrRChr(p1, p2) strrchr((p1), (p2)) #define JLI_StrRChr(p1, p2) strrchr((p1), (p2))
...@@ -48,6 +47,7 @@ int JLI_StrCCmp(const char *s1, const char* s2); ...@@ -48,6 +47,7 @@ int JLI_StrCCmp(const char *s1, const char* s2);
#define JLI_StrSpn(p1, p2) strspn((p1), (p2)) #define JLI_StrSpn(p1, p2) strspn((p1), (p2))
#define JLI_StrCSpn(p1, p2) strcspn((p1), (p2)) #define JLI_StrCSpn(p1, p2) strcspn((p1), (p2))
#define JLI_StrPBrk(p1, p2) strpbrk((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. */ /* On Windows lseek() is in io.h rather than the location dictated by POSIX. */
#ifdef _WIN32 #ifdef _WIN32
......
...@@ -175,8 +175,8 @@ public final class TypeResolver { ...@@ -175,8 +175,8 @@ public final class TypeResolver {
/** /**
* Converts the given {@code type} to the corresponding class. * Converts the given {@code type} to the corresponding class.
* This method implements the concept of type erasure, * 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> * that is described in section 4.6 of
* of Java Language Specification. * <cite>The Java&trade; Language Specification</cite>.
* *
* @param type the array of types to convert * @param type the array of types to convert
* @return a corresponding class * @return a corresponding class
......
...@@ -88,8 +88,8 @@ Jar File Specification :<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar ...@@ -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> http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html</a></li>
<li> <li>
Java Virtual Machine Specification : <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html"> Class File Specification: Chapter 4 of
http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html</a></li> <em>The Java&trade; Virtual Machine Specification</em>
<li> <li>
Hypertext Transfer Protocol -- HTTP/1.1 : <a href="http://www.ietf.org/rfc/rfc2616.txt"> Hypertext Transfer Protocol -- HTTP/1.1 : <a href="http://www.ietf.org/rfc/rfc2616.txt">
......
...@@ -42,12 +42,9 @@ public interface Accessible { ...@@ -42,12 +42,9 @@ public interface Accessible {
* Returns the Java<sup><font size=-2>TM</font></sup> * Returns the Java<sup><font size=-2>TM</font></sup>
* programming language modifiers, encoded in an integer. * programming language modifiers, encoded in an integer.
* <p> * <p>
* The modifier encodings are defined in the * The modifier encodings are defined in
* <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine * <cite>The Java&trade; Virtual Machine Specification</cite>
* Specification</a>, in the <code>access_flag</code> tables for * in the <code>access_flag</code> tables for classes(section 4.1), fields(section 4.5), and methods(section 4.6).
* <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>.
*/ */
public int modifiers(); public int modifiers();
......
...@@ -77,11 +77,9 @@ public interface ArrayType extends ReferenceType { ...@@ -77,11 +77,9 @@ public interface ArrayType extends ReferenceType {
* as specified in the array declaration. * as specified in the array declaration.
* <P> * <P>
* Note: The component type of a array will always be * Note: The component type of a array will always be
* created or loaded before the array - see the * created or loaded before the array - see
* <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual * <cite>The Java&trade; Virtual Machine Specification</cite>,
* Machine Specification</a>, section * section 5.3.3 - Creating Array Classes.
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ConstantPool.doc.html#79473">5.3.3
* Creating Array Classes</a>.
* However, although the component type will be loaded it may * However, although the component type will be loaded it may
* not yet be prepared, in which case the type will be returned * not yet be prepared, in which case the type will be returned
* but attempts to perform some operations on the returned type * but attempts to perform some operations on the returned type
......
...@@ -71,11 +71,9 @@ public interface ClassLoaderReference extends ObjectReference { ...@@ -71,11 +71,9 @@ public interface ClassLoaderReference extends ObjectReference {
* <p> * <p>
* No ordering of the returned list is guaranteed. * No ordering of the returned list is guaranteed.
* <p> * <p>
* See the revised * See
* <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>,
* Virtual Machine Specification</a> section * section 5.3 - Creation and Loading
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ConstantPool.doc.html#72007">5.3
* Creation and Loading</a>
* for more information on the initiating classloader. * for more information on the initiating classloader.
* <p> * <p>
* Note that unlike {@link #definedClasses()} * Note that unlike {@link #definedClasses()}
......
...@@ -60,9 +60,9 @@ package com.sun.jdi; ...@@ -60,9 +60,9 @@ package com.sun.jdi;
* is visible to the class loader of enclosing class. (That is, the * 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 * class loader of the enclosing class must be an <i>initiating</i> class
* loader for the class in question.) * loader for the class in question.)
* See the <a href="http://java.sun.com/docs/books/vmspec/">Java * See
* Virtual Machine Specification</a> for * <cite>The Java&trade; Virtual Machine Specification</cite>
* more details. * for more details.
* *
* @author Gordon Hirsch * @author Gordon Hirsch
* @since 1.3 * @since 1.3
......
...@@ -164,10 +164,8 @@ public interface ClassType extends ReferenceType { ...@@ -164,10 +164,8 @@ public interface ClassType extends ReferenceType {
* component type is passed. The component type can be a primitive type. * component type is passed. The component type can be a primitive type.
* Autoboxing is not supported. * Autoboxing is not supported.
* *
* See the <a href="http://java.sun.com/docs/books/jls/"> * See Section 5.2 of
* Java Language Specification</a>. * <cite>The Java&trade; Language Specification</cite>
* section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a>
* for more information on assignment compatibility. * for more information on assignment compatibility.
* <p> * <p>
* By default, all threads in the target VM are resumed while * By default, all threads in the target VM are resumed while
...@@ -280,10 +278,8 @@ public interface ClassType extends ReferenceType { ...@@ -280,10 +278,8 @@ public interface ClassType extends ReferenceType {
* component type is passed. The component type can be a primitive type. * component type is passed. The component type can be a primitive type.
* Autoboxing is not supported. * Autoboxing is not supported.
* *
* See the <a href="http://java.sun.com/docs/books/jls/"> * See section 5.2 of
* Java Language Specification</a>. * <cite>The Java&trade; Language Specification</cite>
* section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a>
* for more information on assignment compatibility. * for more information on assignment compatibility.
* <p> * <p>
* By default, all threads in the target VM are resumed while * By default, all threads in the target VM are resumed while
......
...@@ -102,9 +102,7 @@ public interface LocalVariable extends Mirror, Comparable<LocalVariable> { ...@@ -102,9 +102,7 @@ public interface LocalVariable extends Mirror, Comparable<LocalVariable> {
/** /**
* Gets the generic signature for this variable if there is one. * Gets the generic signature for this variable if there is one.
* Generic signatures are described in the * Generic signatures are described in the
* <a href="http://java.sun.com/docs/books/vmspec"> * <cite>The Java&trade; Virtual Machine Specification</cite>.
* "Java<sup><font size=-2>TM</font></sup>
* Virtual Machine Specification, 3rd Edition.</a>
* *
* @return a string containing the generic signature, or <code>null</code> * @return a string containing the generic signature, or <code>null</code>
* if there is no generic signature. * if there is no generic signature.
......
...@@ -164,10 +164,8 @@ public interface Method extends TypeComponent, Locatable, Comparable<Method> { ...@@ -164,10 +164,8 @@ public interface Method extends TypeComponent, Locatable, Comparable<Method> {
/** /**
* Determine if this method is a bridge method. Bridge * Determine if this method is a bridge method. Bridge
* methods are defined in the * methods are defined in
* <a href="http://java.sun.com/docs/books/jls"> * <cite>The Java&trade; Language Specification</cite>.
* "Java<sup><font size=-2>TM</font></sup>
* Language Specification, 3rd Edition.</a>
* *
* @return <code>true</code> if the method is a bridge method, * @return <code>true</code> if the method is a bridge method,
* false otherwise. * false otherwise.
......
...@@ -118,10 +118,8 @@ public interface ObjectReference extends Value ...@@ -118,10 +118,8 @@ public interface ObjectReference extends Value
* enclosing class's class loader). Primitive values must be * enclosing class's class loader). Primitive values must be
* either assignment compatible with the field type or must be * either assignment compatible with the field type or must be
* convertible to the field type without loss of information. * convertible to the field type without loss of information.
* See the <a href="http://java.sun.com/docs/books/jls/"> * See section 5.2 of
* Java<sup><font size=-2>TM</font></sup> Language Specification</a>. * <cite>The Java&trade; Language Specification</cite>
* section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a>
* for more information on assignment * for more information on assignment
* compatibility. * compatibility.
* *
...@@ -182,18 +180,13 @@ public interface ObjectReference extends Value ...@@ -182,18 +180,13 @@ public interface ObjectReference extends Value
* component type is passed. The component type can be a primitive type. * component type is passed. The component type can be a primitive type.
* Autoboxing is not supported. * Autoboxing is not supported.
* *
* See the <a href="http://java.sun.com/docs/books/jls/"> * See section 5.2 of
* Java Language Specification</a>. * <cite>The Java&trade; Language Specification</cite>
* section
* <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a>
* for more information on assignment compatibility. * for more information on assignment compatibility.
* <p> * <p>
* By default, the method is invoked using dynamic lookup as * By default, the method is invoked using dynamic lookup as
* documented in the * documented in section 15.12.4.4 of
* <a href="http://java.sun.com/docs/books/jls/"> * <cite>The Java&trade; Language Specification</cite>
* 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>;
* in particular, overriding based on the runtime type of the object * in particular, overriding based on the runtime type of the object
* mirrored by this {@link ObjectReference} will occur. This * mirrored by this {@link ObjectReference} will occur. This
* behavior can be changed by specifying the * behavior can be changed by specifying the
......
...@@ -30,9 +30,8 @@ import java.util.Map; ...@@ -30,9 +30,8 @@ import java.util.Map;
/** /**
* The type of an object in a target VM. ReferenceType encompasses * The type of an object in a target VM. ReferenceType encompasses
* classes, interfaces, and array types as defined in the * classes, interfaces, and array types as defined in
* <a href="http://java.sun.com/docs/books/jls/"> * <cite>The Java&trade; Language Specification</cite>.
* Java<sup><font size=-2>TM</font></sup> Language Specification</a>.
* All ReferenceType objects belong to one of the following * All ReferenceType objects belong to one of the following
* subinterfaces: * subinterfaces:
* {@link ClassType} for classes, * {@link ClassType} for classes,
...@@ -98,9 +97,7 @@ public interface ReferenceType ...@@ -98,9 +97,7 @@ public interface ReferenceType
/** /**
* Gets the generic signature for this type if there is one. * Gets the generic signature for this type if there is one.
* Generic signatures are described in the * Generic signatures are described in the
* <a href="http://java.sun.com/docs/books/vmspec"> * <cite>The Java&trade; Virtual Machine Specification</cite>.
* "Java<sup><font size=-2>TM</font></sup>
* Virtual Machine Specification, 3rd Edition.</a>
* *
* @return a string containing the generic signature, or <code>null</code> * @return a string containing the generic signature, or <code>null</code>
* if there is no generic signature. * if there is no generic signature.
......
...@@ -74,9 +74,7 @@ public interface TypeComponent extends Mirror, Accessible { ...@@ -74,9 +74,7 @@ public interface TypeComponent extends Mirror, Accessible {
/** /**
* Gets the generic signature for this TypeComponent if there is one. * Gets the generic signature for this TypeComponent if there is one.
* Generic signatures are described in the * Generic signatures are described in the
* <a href="http://java.sun.com/docs/books/vmspec"> * <cite>The Java&trade; Virtual Machine Specification</cite>.
* "Java<sup><font size=-2>TM</font></sup>
* Virtual Machine Specification, 3rd Edition.</a>
* *
* @return a string containing the generic signature, or <code>null</code> * @return a string containing the generic signature, or <code>null</code>
* if there is no generic signature. * if there is no generic signature.
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
package com.sun.media.sound; package com.sun.media.sound;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -439,10 +440,10 @@ public class DLSInstrument extends ModelInstrument { ...@@ -439,10 +440,10 @@ public class DLSInstrument extends ModelInstrument {
} }
public byte[] getGuid() { public byte[] getGuid() {
return guid; return guid == null ? null : Arrays.copyOf(guid, guid.length);
} }
public void setGuid(byte[] guid) { public void setGuid(byte[] guid) {
this.guid = guid; this.guid = guid == null ? null : Arrays.copyOf(guid, guid.length);
} }
} }
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
package com.sun.media.sound; package com.sun.media.sound;
import java.io.InputStream; import java.io.InputStream;
import java.util.Arrays;
import javax.sound.midi.Soundbank; import javax.sound.midi.Soundbank;
import javax.sound.midi.SoundbankResource; import javax.sound.midi.SoundbankResource;
import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioFormat;
...@@ -113,10 +114,10 @@ public class DLSSample extends SoundbankResource { ...@@ -113,10 +114,10 @@ public class DLSSample extends SoundbankResource {
} }
public byte[] getGuid() { public byte[] getGuid() {
return guid; return guid == null ? null : Arrays.copyOf(guid, guid.length);
} }
public void setGuid(byte[] guid) { public void setGuid(byte[] guid) {
this.guid = guid; this.guid = guid == null ? null : Arrays.copyOf(guid, guid.length);
} }
} }
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
*/ */
package com.sun.media.sound; package com.sun.media.sound;
import java.util.Arrays;
/** /**
* Connection blocks are used to connect source variable * Connection blocks are used to connect source variable
* to a destination variable. * to a destination variable.
...@@ -117,19 +119,17 @@ public class ModelConnectionBlock { ...@@ -117,19 +119,17 @@ public class ModelConnectionBlock {
} }
public ModelSource[] getSources() { public ModelSource[] getSources() {
return sources; return Arrays.copyOf(sources, sources.length);
} }
public void setSources(ModelSource[] source) { public void setSources(ModelSource[] source) {
this.sources = source; this.sources = source == null ? no_sources : Arrays.copyOf(source, source.length);
} }
public void addSource(ModelSource source) { public void addSource(ModelSource source) {
ModelSource[] oldsources = sources; ModelSource[] oldsources = sources;
sources = new ModelSource[oldsources.length + 1]; sources = new ModelSource[oldsources.length + 1];
for (int i = 0; i < oldsources.length; i++) { System.arraycopy(oldsources, 0, sources, 0, oldsources.length);
sources[i] = oldsources[i];
}
sources[sources.length - 1] = source; sources[sources.length - 1] = source;
} }
} }
...@@ -503,7 +503,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer { ...@@ -503,7 +503,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer {
firstVoice = true; firstVoice = true;
voiceNo = 0; 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_noteNumber = noteNumber;
play_velocity = velocity; play_velocity = velocity;
play_delay = delay; play_delay = delay;
...@@ -607,7 +607,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer { ...@@ -607,7 +607,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer {
firstVoice = true; firstVoice = true;
voiceNo = 0; 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_noteNumber = noteNumber;
play_velocity = lastVelocity[noteNumber]; play_velocity = lastVelocity[noteNumber];
play_releasetriggered = true; play_releasetriggered = true;
...@@ -632,7 +632,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer { ...@@ -632,7 +632,7 @@ public class SoftChannel implements MidiChannel, ModelDirectedPlayer {
int delay = play_delay; int delay = play_delay;
boolean releasetriggered = play_releasetriggered; boolean releasetriggered = play_releasetriggered;
SoftPerformer p = current_instrument.getPerformers()[performerIndex]; SoftPerformer p = current_instrument.getPerformer(performerIndex);
if (firstVoice) { if (firstVoice) {
firstVoice = false; firstVoice = false;
......
...@@ -76,7 +76,12 @@ public class SoftInstrument extends Instrument { ...@@ -76,7 +76,12 @@ public class SoftInstrument extends Instrument {
return data; return data;
} }
/* am: currently getPerformers() is not used (replaced with getPerformer(int))
public SoftPerformer[] getPerformers() { public SoftPerformer[] getPerformers() {
return performers; return performers;
} }
*/
public SoftPerformer getPerformer(int index) {
return performers[index];
}
} }
...@@ -505,7 +505,7 @@ public abstract class SoftMixingDataLine implements DataLine { ...@@ -505,7 +505,7 @@ public abstract class SoftMixingDataLine implements DataLine {
} }
public Control[] getControls() { public Control[] getControls() {
return controls; return Arrays.copyOf(controls, controls.length);
} }
public boolean isControlSupported(Type control) { public boolean isControlSupported(Type control) {
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
*/ */
package com.sun.media.sound; package com.sun.media.sound;
import java.util.Arrays;
import javax.sound.midi.MidiDevice; import javax.sound.midi.MidiDevice;
import javax.sound.midi.MidiDevice.Info; import javax.sound.midi.MidiDevice.Info;
import javax.sound.midi.spi.MidiDeviceProvider; import javax.sound.midi.spi.MidiDeviceProvider;
...@@ -39,7 +40,7 @@ public class SoftProvider extends MidiDeviceProvider { ...@@ -39,7 +40,7 @@ public class SoftProvider extends MidiDeviceProvider {
private static Info[] softinfos = {softinfo}; private static Info[] softinfos = {softinfo};
public MidiDevice.Info[] getDeviceInfo() { public MidiDevice.Info[] getDeviceInfo() {
return softinfos; return Arrays.copyOf(softinfos, softinfos.length);
} }
public MidiDevice getDevice(MidiDevice.Info info) { public MidiDevice getDevice(MidiDevice.Info info) {
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
package com.sun.media.sound; package com.sun.media.sound;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import javax.sound.midi.Patch; import javax.sound.midi.Patch;
...@@ -234,8 +235,10 @@ public class SoftTuning { ...@@ -234,8 +235,10 @@ public class SoftTuning {
} }
} }
// am: getTuning(int) is more effective.
// currently getTuning() is used only by tests
public double[] getTuning() { public double[] getTuning() {
return tuning; return Arrays.copyOf(tuning, tuning.length);
} }
public double getTuning(int noteNumber) { 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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -111,13 +111,13 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -111,13 +111,13 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/ */
private String tableName; private String tableName;
/** /**
* A <code>Vector</code> object containing the <code>Row</code> * A <code>Vector</code> object containing the <code>Row</code>
* objects that comprise this <code>CachedRowSetImpl</code> object. * objects that comprise this <code>CachedRowSetImpl</code> object.
* @serial * @serial
*/ */
private Vector rvh; private Vector<Object> rvh;
/** /**
* The current postion of the cursor in this <code>CachedRowSetImpl</code> * The current postion of the cursor in this <code>CachedRowSetImpl</code>
* object. * object.
...@@ -293,12 +293,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -293,12 +293,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
/** /**
* The Vector holding the Match Columns * The Vector holding the Match Columns
*/ */
private Vector iMatchColumns; private Vector<Integer> iMatchColumns;
/** /**
* The Vector that will hold the Match Column names. * 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 * Trigger that indicates whether the active SyncProvider is exposes the
...@@ -484,7 +484,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -484,7 +484,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/ */
private void initContainer() { private void initContainer() {
rvh = new Vector(100); rvh = new Vector<Object>(100);
cursorPos = 0; cursorPos = 0;
absolutePos = 0; absolutePos = 0;
numRows = 0; numRows = 0;
...@@ -523,12 +523,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -523,12 +523,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
//Instantiating the vector for MatchColumns //Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10); iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) { for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1)); iMatchColumns.add(i,Integer.valueOf(-1));
} }
strMatchColumns = new Vector(10); strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) { for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null); strMatchColumns.add(j,null);
} }
...@@ -622,7 +622,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -622,7 +622,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
Row currentRow; Row currentRow;
int numCols; int numCols;
int i; int i;
Map map = getTypeMap(); Map<String, Class<?>> map = getTypeMap();
Object obj; Object obj;
int mRows; int mRows;
...@@ -939,14 +939,9 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -939,14 +939,9 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/ */
public void acceptChanges(Connection con) throws SyncProviderException{ public void acceptChanges(Connection con) throws SyncProviderException{
try{ setConnection(con);
setConnection(con); acceptChanges();
acceptChanges();
} catch (SyncProviderException spe) {
throw spe;
} catch(SQLException sqle){
throw new SyncProviderException(sqle.getMessage());
}
} }
/** /**
...@@ -1289,14 +1284,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -1289,14 +1284,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/ */
public Collection<?> toCollection() throws SQLException { public Collection<?> toCollection() throws SQLException {
TreeMap tMap; TreeMap<Integer, Object> tMap = new TreeMap<>();
int count = 0;
Row origRow;
Vector newRow;
int colCount = ((RowSetMetaDataImpl)this.getMetaData()).getColumnCount();
tMap = new TreeMap();
for (int i = 0; i<numRows; i++) { for (int i = 0; i<numRows; i++) {
tMap.put(Integer.valueOf(i), rvh.get(i)); tMap.put(Integer.valueOf(i), rvh.get(i));
...@@ -1325,10 +1313,8 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -1325,10 +1313,8 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/ */
public Collection<?> toCollection(int column) throws SQLException { public Collection<?> toCollection(int column) throws SQLException {
Vector vec;
Row origRow;
int nRows = numRows; int nRows = numRows;
vec = new Vector(nRows); Vector<Object> vec = new Vector<>(nRows);
// create a copy // create a copy
CachedRowSetImpl crsTemp; CachedRowSetImpl crsTemp;
...@@ -2953,7 +2939,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -2953,7 +2939,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
*/ */
public Object getObject(int columnIndex) throws SQLException { public Object getObject(int columnIndex) throws SQLException {
Object value; Object value;
java.util.Map map; Map<String, Class<?>> map;
// sanity check. // sanity check.
checkIndex(columnIndex); checkIndex(columnIndex);
...@@ -7257,7 +7243,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -7257,7 +7243,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
Row currentRow; Row currentRow;
int numCols; int numCols;
int i; int i;
Map map = getTypeMap(); Map<String, Class<?>> map = getTypeMap();
Object obj; Object obj;
int mRows; int mRows;
...@@ -7304,11 +7290,11 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern ...@@ -7304,11 +7290,11 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern
resultSet.absolute(start -1); resultSet.absolute(start -1);
} }
if( pageSize == 0) { if( pageSize == 0) {
rvh = new Vector(getMaxRows()); rvh = new Vector<Object>(getMaxRows());
} }
else{ else{
rvh = new Vector(getPageSize()); rvh = new Vector<Object>(getPageSize());
} }
if (data == null) { 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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -93,12 +93,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { ...@@ -93,12 +93,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
/** /**
* The Vector holding the Match Columns * The Vector holding the Match Columns
*/ */
private Vector iMatchColumns; private Vector<Integer> iMatchColumns;
/** /**
* The Vector that will hold the Match Column names. * The Vector that will hold the Match Column names.
*/ */
private Vector strMatchColumns; private Vector<String> strMatchColumns;
protected transient JdbcRowSetResourceBundle resBundle; protected transient JdbcRowSetResourceBundle resBundle;
...@@ -213,12 +213,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { ...@@ -213,12 +213,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
//Instantiating the vector for MatchColumns //Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10); iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) { for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1)); iMatchColumns.add(i,Integer.valueOf(-1));
} }
strMatchColumns = new Vector(10); strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) { for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null); strMatchColumns.add(j,null);
} }
...@@ -286,12 +286,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { ...@@ -286,12 +286,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
//Instantiating the vector for MatchColumns //Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10); iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) { for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1)); iMatchColumns.add(i,Integer.valueOf(-1));
} }
strMatchColumns = new Vector(10); strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) { for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null); strMatchColumns.add(j,null);
} }
...@@ -373,12 +373,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { ...@@ -373,12 +373,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
//Instantiating the vector for MatchColumns //Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10); iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) { for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1)); iMatchColumns.add(i,Integer.valueOf(-1));
} }
strMatchColumns = new Vector(10); strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) { for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null); strMatchColumns.add(j,null);
} }
...@@ -463,12 +463,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { ...@@ -463,12 +463,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
//Instantiating the vector for MatchColumns //Instantiating the vector for MatchColumns
iMatchColumns = new Vector(10); iMatchColumns = new Vector<Integer>(10);
for(int i = 0; i < 10 ; i++) { for(int i = 0; i < 10 ; i++) {
iMatchColumns.add(i,Integer.valueOf(-1)); iMatchColumns.add(i,Integer.valueOf(-1));
} }
strMatchColumns = new Vector(10); strMatchColumns = new Vector<String>(10);
for(int j = 0; j < 10; j++) { for(int j = 0; j < 10; j++) {
strMatchColumns.add(j,null); strMatchColumns.add(j,null);
} }
...@@ -675,7 +675,7 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { ...@@ -675,7 +675,7 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
try { try {
Map aMap = getTypeMap(); Map<String, Class<?>> aMap = getTypeMap();
if( aMap != null) { if( aMap != null) {
conn.setTypeMap(aMap); 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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -59,8 +59,8 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { ...@@ -59,8 +59,8 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet {
/** /**
* A <code>Vector</code> object that contains the <code>RowSet</code> objects * A <code>Vector</code> object that contains the <code>RowSet</code> objects
* that have been added to this <code>JoinRowSet</code> object. * 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 * The <code>CachedRowSet</code> object that encapsulates this
...@@ -78,13 +78,13 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { ...@@ -78,13 +78,13 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet {
* for this <code>JoinRowSet</code> object. * for this <code>JoinRowSet</code> object.
* The last join type set forms the basis of succeeding joins. * 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 * A <code>Vector</code> object containing the names of all the tables entering
* the join. * the join.
*/ */
private Vector vecTableNames; private Vector<String> vecTableNames;
/** /**
* An <code>int</code> that indicates the column index of the match column. * An <code>int</code> that indicates the column index of the match column.
...@@ -121,10 +121,10 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { ...@@ -121,10 +121,10 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet {
*/ */
public JoinRowSetImpl() throws SQLException { public JoinRowSetImpl() throws SQLException {
vecRowSetsInJOIN = new Vector(); vecRowSetsInJOIN = new Vector<CachedRowSetImpl>();
crsInternal = new CachedRowSetImpl(); crsInternal = new CachedRowSetImpl();
vecJoinType = new Vector(); vecJoinType = new Vector<Integer>();
vecTableNames = new Vector(); vecTableNames = new Vector<String>();
iMatchKey = -1; iMatchKey = -1;
strMatchKey = null; strMatchKey = null;
supportedJOINs = supportedJOINs =
...@@ -222,7 +222,7 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { ...@@ -222,7 +222,7 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet {
// either of the setter methods have been set. // either of the setter methods have been set.
if(boolColId){ if(boolColId){
// //
ArrayList indices = new ArrayList(); ArrayList<Integer> indices = new ArrayList<>();
for(int i=0;i<cRowset.getMatchColumnNames().length;i++) { for(int i=0;i<cRowset.getMatchColumnNames().length;i++) {
if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) { if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) {
iMatchKey = cRowset.findColumn(strMatchKey); iMatchKey = cRowset.findColumn(strMatchKey);
......
...@@ -903,7 +903,7 @@ public class Dialog extends Window { ...@@ -903,7 +903,7 @@ public class Dialog extends Window {
if (peer == null) { if (peer == null) {
addNotify(); addNotify();
} }
validate(); validateUnconditionally();
if (visible) { if (visible) {
toFront(); toFront();
retval = false; retval = false;
......
...@@ -243,8 +243,10 @@ public abstract class GraphicsDevice { ...@@ -243,8 +243,10 @@ public abstract class GraphicsDevice {
* a non-client of the input method framework. * a non-client of the input method framework.
* </ul> * </ul>
* <p> * <p>
* Simulated full-screen mode resizes * The simulated full-screen mode places and resizes the window to the maximum
* the window to the size of the screen and positions it at (0,0). * 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> * <p>
* When entering full-screen mode, if the window to be used as a * 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. * full-screen window is not visible, this method will make it visible.
......
...@@ -466,6 +466,10 @@ public abstract class Toolkit { ...@@ -466,6 +466,10 @@ public abstract class Toolkit {
*/ */
protected void loadSystemColors(int[] systemColors) protected void loadSystemColors(int[] systemColors)
throws HeadlessException { throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
} }
/** /**
...@@ -500,6 +504,10 @@ public abstract class Toolkit { ...@@ -500,6 +504,10 @@ public abstract class Toolkit {
*/ */
public void setDynamicLayout(boolean dynamic) public void setDynamicLayout(boolean dynamic)
throws HeadlessException { throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
} }
/** /**
...@@ -523,6 +531,9 @@ public abstract class Toolkit { ...@@ -523,6 +531,9 @@ public abstract class Toolkit {
*/ */
protected boolean isDynamicLayoutSet() protected boolean isDynamicLayoutSet()
throws HeadlessException { throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
if (this != Toolkit.getDefaultToolkit()) { if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().isDynamicLayoutSet(); return Toolkit.getDefaultToolkit().isDynamicLayoutSet();
} else { } else {
...@@ -558,6 +569,9 @@ public abstract class Toolkit { ...@@ -558,6 +569,9 @@ public abstract class Toolkit {
*/ */
public boolean isDynamicLayoutActive() public boolean isDynamicLayoutActive()
throws HeadlessException { throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
if (this != Toolkit.getDefaultToolkit()) { if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().isDynamicLayoutActive(); return Toolkit.getDefaultToolkit().isDynamicLayoutActive();
} else { } else {
...@@ -601,6 +615,9 @@ public abstract class Toolkit { ...@@ -601,6 +615,9 @@ public abstract class Toolkit {
*/ */
public Insets getScreenInsets(GraphicsConfiguration gc) public Insets getScreenInsets(GraphicsConfiguration gc)
throws HeadlessException { throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
if (this != Toolkit.getDefaultToolkit()) { if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().getScreenInsets(gc); return Toolkit.getDefaultToolkit().getScreenInsets(gc);
} else { } else {
...@@ -1342,6 +1359,9 @@ public abstract class Toolkit { ...@@ -1342,6 +1359,9 @@ public abstract class Toolkit {
* @since 1.4 * @since 1.4
*/ */
public Clipboard getSystemSelection() throws HeadlessException { public Clipboard getSystemSelection() throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
if (this != Toolkit.getDefaultToolkit()) { if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().getSystemSelection(); return Toolkit.getDefaultToolkit().getSystemSelection();
} else { } else {
...@@ -1371,6 +1391,10 @@ public abstract class Toolkit { ...@@ -1371,6 +1391,10 @@ public abstract class Toolkit {
* @since JDK1.1 * @since JDK1.1
*/ */
public int getMenuShortcutKeyMask() throws HeadlessException { public int getMenuShortcutKeyMask() throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
return Event.CTRL_MASK; return Event.CTRL_MASK;
} }
...@@ -1499,6 +1523,9 @@ public abstract class Toolkit { ...@@ -1499,6 +1523,9 @@ public abstract class Toolkit {
*/ */
public Dimension getBestCursorSize(int preferredWidth, public Dimension getBestCursorSize(int preferredWidth,
int preferredHeight) throws HeadlessException { int preferredHeight) throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
// Override to implement custom cursor support. // Override to implement custom cursor support.
if (this != Toolkit.getDefaultToolkit()) { if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit(). return Toolkit.getDefaultToolkit().
...@@ -1526,6 +1553,9 @@ public abstract class Toolkit { ...@@ -1526,6 +1553,9 @@ public abstract class Toolkit {
* @since 1.2 * @since 1.2
*/ */
public int getMaximumCursorColors() throws HeadlessException { public int getMaximumCursorColors() throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
// Override to implement custom cursor support. // Override to implement custom cursor support.
if (this != Toolkit.getDefaultToolkit()) { if (this != Toolkit.getDefaultToolkit()) {
return Toolkit.getDefaultToolkit().getMaximumCursorColors(); return Toolkit.getDefaultToolkit().getMaximumCursorColors();
...@@ -2561,8 +2591,6 @@ public abstract class Toolkit { ...@@ -2561,8 +2591,6 @@ public abstract class Toolkit {
* initialized with {@code true}. * initialized with {@code true}.
* Changing this value after the {@code Toolkit} class initialization will have no effect. * Changing this value after the {@code Toolkit} class initialization will have no effect.
* <p> * <p>
* The current value could be queried by using the
* {@code System.getProperty("sun.awt.enableExtraMouseButtons")} method.
* @exception HeadlessException if GraphicsEnvironment.isHeadless() returns true * @exception HeadlessException if GraphicsEnvironment.isHeadless() returns true
* @return {@code true} if events from extra mouse buttons are allowed to be processed and posted; * @return {@code true} if events from extra mouse buttons are allowed to be processed and posted;
* {@code false} otherwise * {@code false} otherwise
...@@ -2572,6 +2600,9 @@ public abstract class Toolkit { ...@@ -2572,6 +2600,9 @@ public abstract class Toolkit {
* @since 1.7 * @since 1.7
*/ */
public boolean areExtraMouseButtonsEnabled() throws HeadlessException { public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
if (GraphicsEnvironment.isHeadless()){
throw new HeadlessException();
}
return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled(); return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled();
} }
} }
...@@ -870,6 +870,11 @@ public class Window extends Container implements Accessible { ...@@ -870,6 +870,11 @@ public class Window extends Container implements Accessible {
* are automatically enlarged if either is less than * are automatically enlarged if either is less than
* the minimum size as specified by previous call to * the minimum size as specified by previous call to
* {@code setMinimumSize}. * {@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 #getSize
* @see #setBounds * @see #setBounds
...@@ -887,6 +892,11 @@ public class Window extends Container implements Accessible { ...@@ -887,6 +892,11 @@ public class Window extends Container implements Accessible {
* are automatically enlarged if either is less than * are automatically enlarged if either is less than
* the minimum size as specified by previous call to * the minimum size as specified by previous call to
* {@code setMinimumSize}. * {@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 #getSize
* @see #setBounds * @see #setBounds
...@@ -897,6 +907,32 @@ public class Window extends Container implements Accessible { ...@@ -897,6 +907,32 @@ public class Window extends Container implements Accessible {
super.setSize(width, height); 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, * @deprecated As of JDK version 1.1,
* replaced by <code>setBounds(int, int, int, int)</code>. * replaced by <code>setBounds(int, int, int, int)</code>.
...@@ -3147,6 +3183,11 @@ public class Window extends Container implements Accessible { ...@@ -3147,6 +3183,11 @@ public class Window extends Container implements Accessible {
* placed at the left side of the screen. The similar placement * placed at the left side of the screen. The similar placement
* will occur if both top and bottom edges are out of the screen. * 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. * 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 * @param c the component in relation to which the window's location
* is determined * is determined
...@@ -3395,6 +3436,11 @@ public class Window extends Container implements Accessible { ...@@ -3395,6 +3436,11 @@ public class Window extends Container implements Accessible {
* are automatically enlarged if either is less than * are automatically enlarged if either is less than
* the minimum size as specified by previous call to * the minimum size as specified by previous call to
* {@code setMinimumSize}. * {@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 #getBounds
* @see #setLocation(int, int) * @see #setLocation(int, int)
...@@ -3424,6 +3470,11 @@ public class Window extends Container implements Accessible { ...@@ -3424,6 +3470,11 @@ public class Window extends Container implements Accessible {
* will be automatically enlarged if either is less than * will be automatically enlarged if either is less than
* the minimum size as specified by previous call to * the minimum size as specified by previous call to
* {@code setMinimumSize}. * {@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 #getBounds
* @see #setLocation(int, int) * @see #setLocation(int, int)
......
...@@ -40,10 +40,9 @@ newly added listener is only notified on subsequent key events. ...@@ -40,10 +40,9 @@ newly added listener is only notified on subsequent key events.
<a name="Autoshutdown"></a> <a name="Autoshutdown"></a>
<h2>Auto-shutdown</h2> <h2>Auto-shutdown</h2>
According to <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html"><i>The According to
Java</i><sup><small>TM</small></sup> <i>Virtual Machine Specification, <cite>The Java&trade; Virtual Machine Specification</cite>,
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> sections 2.17.9 and 2.19,
and <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/Concepts.doc.html#33308">§2.19</a>),
the Java virtual machine (JVM) initially starts up with a single non-daemon 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. thread, which typically calls the <code>main</code> method of some class.
The virtual machine terminates all its activity and exits when The virtual machine terminates all its activity and exits when
...@@ -183,7 +182,8 @@ non-daemon thread that blocks forever. ...@@ -183,7 +182,8 @@ non-daemon thread that blocks forever.
<...> <...>
</pre> </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. that the JVM doesn't exit until this thread terminates.
</body> </body>
</html> </html>
...@@ -148,8 +148,8 @@ public final class Console implements Flushable ...@@ -148,8 +148,8 @@ public final class Console implements Flushable
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -187,8 +187,8 @@ public final class Console implements Flushable ...@@ -187,8 +187,8 @@ public final class Console implements Flushable
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -220,8 +220,7 @@ public final class Console implements Flushable ...@@ -220,8 +220,7 @@ public final class Console implements Flushable
* string. If there are more arguments than format specifiers, the * string. If there are more arguments than format specifiers, the
* extra arguments are ignored. The maximum number of arguments is * extra arguments are ignored. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>.
* *
* @throws IllegalFormatException * @throws IllegalFormatException
* If a format string contains an illegal syntax, a format * If a format string contains an illegal syntax, a format
...@@ -285,8 +284,7 @@ public final class Console implements Flushable ...@@ -285,8 +284,7 @@ public final class Console implements Flushable
* string. If there are more arguments than format specifiers, the * string. If there are more arguments than format specifiers, the
* extra arguments are ignored. The maximum number of arguments is * extra arguments are ignored. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>.
* *
* @throws IllegalFormatException * @throws IllegalFormatException
* If a format string contains an illegal syntax, a format * If a format string contains an illegal syntax, a format
......
...@@ -846,8 +846,8 @@ public class PrintStream extends FilterOutputStream ...@@ -846,8 +846,8 @@ public class PrintStream extends FilterOutputStream
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -896,8 +896,8 @@ public class PrintStream extends FilterOutputStream ...@@ -896,8 +896,8 @@ public class PrintStream extends FilterOutputStream
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -939,8 +939,8 @@ public class PrintStream extends FilterOutputStream ...@@ -939,8 +939,8 @@ public class PrintStream extends FilterOutputStream
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -996,8 +996,8 @@ public class PrintStream extends FilterOutputStream ...@@ -996,8 +996,8 @@ public class PrintStream extends FilterOutputStream
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
......
...@@ -779,8 +779,8 @@ public class PrintWriter extends Writer { ...@@ -779,8 +779,8 @@ public class PrintWriter extends Writer {
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -830,8 +830,8 @@ public class PrintWriter extends Writer { ...@@ -830,8 +830,8 @@ public class PrintWriter extends Writer {
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -874,8 +874,8 @@ public class PrintWriter extends Writer { ...@@ -874,8 +874,8 @@ public class PrintWriter extends Writer {
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -934,8 +934,8 @@ public class PrintWriter extends Writer { ...@@ -934,8 +934,8 @@ public class PrintWriter extends Writer {
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
......
...@@ -34,11 +34,9 @@ package java.lang; ...@@ -34,11 +34,9 @@ package java.lang;
* new AssertionError(<i>expression</i>) * new AssertionError(<i>expression</i>)
* </pre> * </pre>
* has as its detail message the <i>string conversion</i> of * has as its detail message the <i>string conversion</i> of
* <i>expression</i> (as defined in <a * <i>expression</i> (as defined in section 15.18.1.1 of
* href="http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html"> * <cite>The Java&trade; Language Specification</cite>),
* <i>The Java Language Specification, Second Edition</i></a>, * regardless of the type of <i>expression</i>.
* <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>.
* *
* @since 1.4 * @since 1.4
*/ */
...@@ -63,8 +61,8 @@ public class AssertionError extends Error { ...@@ -63,8 +61,8 @@ public class AssertionError extends Error {
/** /**
* Constructs an AssertionError with its detail message derived * Constructs an AssertionError with its detail message derived
* from the specified object, which is converted to a string as * from the specified object, which is converted to a string as
* defined in <i>The Java Language Specification, Second * defined in section 15.18.1.1 of
* Edition</i>, Section 15.18.1.1. * <cite>The Java&trade; Language Specification</cite>.
*<p> *<p>
* If the specified object is an instance of {@code Throwable}, it * If the specified object is an instance of {@code Throwable}, it
* becomes the <i>cause</i> of the newly constructed assertion error. * becomes the <i>cause</i> of the newly constructed assertion error.
...@@ -81,8 +79,8 @@ public class AssertionError extends Error { ...@@ -81,8 +79,8 @@ public class AssertionError extends Error {
/** /**
* Constructs an AssertionError with its detail message derived * Constructs an AssertionError with its detail message derived
* from the specified <code>boolean</code>, which is converted to * from the specified <code>boolean</code>, which is converted to
* a string as defined in <i>The Java Language Specification, * a string as defined in section 15.18.1.1 of
* Second Edition</i>, Section 15.18.1.1. * <cite>The Java&trade; Language Specification</cite>.
* *
* @param detailMessage value to be used in constructing detail message * @param detailMessage value to be used in constructing detail message
*/ */
...@@ -93,8 +91,8 @@ public class AssertionError extends Error { ...@@ -93,8 +91,8 @@ public class AssertionError extends Error {
/** /**
* Constructs an AssertionError with its detail message derived * Constructs an AssertionError with its detail message derived
* from the specified <code>char</code>, which is converted to a * from the specified <code>char</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second * string as defined in section 15.18.1.1 of
* Edition</i>, Section 15.18.1.1. * <cite>The Java&trade; Language Specification</cite>.
* *
* @param detailMessage value to be used in constructing detail message * @param detailMessage value to be used in constructing detail message
*/ */
...@@ -105,8 +103,8 @@ public class AssertionError extends Error { ...@@ -105,8 +103,8 @@ public class AssertionError extends Error {
/** /**
* Constructs an AssertionError with its detail message derived * Constructs an AssertionError with its detail message derived
* from the specified <code>int</code>, which is converted to a * from the specified <code>int</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second * string as defined in section 15.18.1.1 of
* Edition</i>, Section 15.18.1.1. * <cite>The Java&trade; Language Specification</cite>.
* *
* @param detailMessage value to be used in constructing detail message * @param detailMessage value to be used in constructing detail message
*/ */
...@@ -117,8 +115,8 @@ public class AssertionError extends Error { ...@@ -117,8 +115,8 @@ public class AssertionError extends Error {
/** /**
* Constructs an AssertionError with its detail message derived * Constructs an AssertionError with its detail message derived
* from the specified <code>long</code>, which is converted to a * from the specified <code>long</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second * string as defined in section 15.18.1.1 of
* Edition</i>, Section 15.18.1.1. * <cite>The Java&trade; Language Specification</cite>.
* *
* @param detailMessage value to be used in constructing detail message * @param detailMessage value to be used in constructing detail message
*/ */
...@@ -129,8 +127,8 @@ public class AssertionError extends Error { ...@@ -129,8 +127,8 @@ public class AssertionError extends Error {
/** /**
* Constructs an AssertionError with its detail message derived * Constructs an AssertionError with its detail message derived
* from the specified <code>float</code>, which is converted to a * from the specified <code>float</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second * string as defined in section 15.18.1.1 of
* Edition</i>, Section 15.18.1.1. * <cite>The Java&trade; Language Specification</cite>.
* *
* @param detailMessage value to be used in constructing detail message * @param detailMessage value to be used in constructing detail message
*/ */
...@@ -141,8 +139,8 @@ public class AssertionError extends Error { ...@@ -141,8 +139,8 @@ public class AssertionError extends Error {
/** /**
* Constructs an AssertionError with its detail message derived * Constructs an AssertionError with its detail message derived
* from the specified <code>double</code>, which is converted to a * from the specified <code>double</code>, which is converted to a
* string as defined in <i>The Java Language Specification, Second * string as defined in section 15.18.1.1 of
* Edition</i>, Section 15.18.1.1. * <cite>The Java&trade; Language Specification</cite>.
* *
* @param detailMessage value to be used in constructing detail message * @param detailMessage value to be used in constructing detail message
*/ */
......
...@@ -251,9 +251,9 @@ public final class Byte extends Number implements Comparable<Byte> { ...@@ -251,9 +251,9 @@ public final class Byte extends Number implements Comparable<Byte> {
* </blockquote> * </blockquote>
* *
* <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> * <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> * are as defined in section 3.10.1 of
* of the <a href="http://java.sun.com/docs/books/jls/html/">Java * <cite>The Java&trade; Language Specification</cite>,
* Language Specification</a>. * except that underscores are not accepted between digits.
* *
* <p>The sequence of characters following an optional * <p>The sequence of characters following an optional
* sign and/or radix specifier ("{@code 0x}", "{@code 0X}", * sign and/or radix specifier ("{@code 0x}", "{@code 0X}",
......
...@@ -4182,9 +4182,11 @@ class Character implements java.io.Serializable, Comparable<Character> { ...@@ -4182,9 +4182,11 @@ class Character implements java.io.Serializable, Comparable<Character> {
aliases.put("AVST", AVESTAN); aliases.put("AVST", AVESTAN);
aliases.put("BALI", BALINESE); aliases.put("BALI", BALINESE);
aliases.put("BAMU", BAMUM); aliases.put("BAMU", BAMUM);
aliases.put("BATK", BATAK);
aliases.put("BENG", BENGALI); aliases.put("BENG", BENGALI);
aliases.put("BOPO", BOPOMOFO); aliases.put("BOPO", BOPOMOFO);
aliases.put("BRAI", BRAILLE); aliases.put("BRAI", BRAILLE);
aliases.put("BRAH", BRAHMI);
aliases.put("BUGI", BUGINESE); aliases.put("BUGI", BUGINESE);
aliases.put("BUHD", BUHID); aliases.put("BUHD", BUHID);
aliases.put("CANS", CANADIAN_ABORIGINAL); aliases.put("CANS", CANADIAN_ABORIGINAL);
...@@ -4228,6 +4230,7 @@ class Character implements java.io.Serializable, Comparable<Character> { ...@@ -4228,6 +4230,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
aliases.put("LISU", LISU); aliases.put("LISU", LISU);
aliases.put("LYCI", LYCIAN); aliases.put("LYCI", LYCIAN);
aliases.put("LYDI", LYDIAN); aliases.put("LYDI", LYDIAN);
aliases.put("MAND", MANDAIC);
aliases.put("MLYM", MALAYALAM); aliases.put("MLYM", MALAYALAM);
aliases.put("MONG", MONGOLIAN); aliases.put("MONG", MONGOLIAN);
aliases.put("MTEI", MEETEI_MAYEK); aliases.put("MTEI", MEETEI_MAYEK);
......
...@@ -95,8 +95,8 @@ import sun.reflect.annotation.*; ...@@ -95,8 +95,8 @@ import sun.reflect.annotation.*;
* </pre></blockquote> * </pre></blockquote>
* *
* <p> It is also possible to get the {@code Class} object for a named * <p> It is also possible to get the {@code Class} object for a named
* type (or for void) using a class literal * type (or for void) using a class literal. See Section 15.8.2 of
* (JLS Section <A HREF="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530">15.8.2</A>). * <cite>The Java&trade; Language Specification</cite>.
* For example: * For example:
* *
* <p> <blockquote> * <p> <blockquote>
...@@ -521,7 +521,8 @@ public final ...@@ -521,7 +521,8 @@ public final
* *
* <p> If this class object represents a reference type that is not an * <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 * 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 * <p> If this class object represents a primitive type or void, then the
* name returned is a {@code String} equal to the Java language * name returned is a {@code String} equal to the Java language
...@@ -630,8 +631,8 @@ public final ...@@ -630,8 +631,8 @@ public final
* the type variables declared by this generic declaration * the type variables declared by this generic declaration
* @throws java.lang.reflect.GenericSignatureFormatError if the generic * @throws java.lang.reflect.GenericSignatureFormatError if the generic
* signature of this generic declaration does not conform to * signature of this generic declaration does not conform to
* the format specified in the Java Virtual Machine Specification, * the format specified in
* 3rd edition * <cite>The Java&trade; Virtual Machine Specification</cite>
* @since 1.5 * @since 1.5
*/ */
public TypeVariable<Class<T>>[] getTypeParameters() { public TypeVariable<Class<T>>[] getTypeParameters() {
...@@ -675,8 +676,8 @@ public final ...@@ -675,8 +676,8 @@ public final
* returned. * returned.
* *
* @throws java.lang.reflect.GenericSignatureFormatError if the generic * @throws java.lang.reflect.GenericSignatureFormatError if the generic
* class signature does not conform to the format specified in the * class signature does not conform to the format specified in
* Java Virtual Machine Specification, 3rd edition * <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if the generic superclass * @throws TypeNotPresentException if the generic superclass
* refers to a non-existent type declaration * refers to a non-existent type declaration
* @throws java.lang.reflect.MalformedParameterizedTypeException if the * @throws java.lang.reflect.MalformedParameterizedTypeException if the
...@@ -798,7 +799,8 @@ public final ...@@ -798,7 +799,8 @@ public final
* *
* @throws java.lang.reflect.GenericSignatureFormatError * @throws java.lang.reflect.GenericSignatureFormatError
* if the generic class signature does not conform to the format * 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 * @throws TypeNotPresentException if any of the generic
* superinterfaces refers to a non-existent type declaration * superinterfaces refers to a non-existent type declaration
* @throws java.lang.reflect.MalformedParameterizedTypeException * @throws java.lang.reflect.MalformedParameterizedTypeException
......
...@@ -160,8 +160,8 @@ import sun.security.util.SecurityConstants; ...@@ -160,8 +160,8 @@ import sun.security.util.SecurityConstants;
* <h4> <a name="name">Binary names</a> </h4> * <h4> <a name="name">Binary names</a> </h4>
* *
* <p> Any class name provided as a {@link String} parameter to methods in * <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 * <tt>ClassLoader</tt> must be a binary name as defined by
* href="http://java.sun.com/docs/books/jls/">Java Language Specification</a>. * <cite>The Java&trade; Language Specification</cite>.
* *
* <p> Examples of valid class names include: * <p> Examples of valid class names include:
* <blockquote><pre> * <blockquote><pre>
...@@ -531,9 +531,8 @@ public abstract class ClassLoader { ...@@ -531,9 +531,8 @@ public abstract class ClassLoader {
* @param b * @param b
* The bytes that make up the class data. The bytes in positions * 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 * <tt>off</tt> through <tt>off+len-1</tt> should have the format
* of a valid class file as defined by the <a * of a valid class file as defined by
* href="http://java.sun.com/docs/books/vmspec/">Java Virtual * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Machine Specification</a>.
* *
* @param off * @param off
* The start offset in <tt>b</tt> of the class data * The start offset in <tt>b</tt> of the class data
...@@ -597,9 +596,8 @@ public abstract class ClassLoader { ...@@ -597,9 +596,8 @@ public abstract class ClassLoader {
* @param b * @param b
* The bytes that make up the class data. The bytes in positions * 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 * <tt>off</tt> through <tt>off+len-1</tt> should have the format
* of a valid class file as defined by the <a * of a valid class file as defined by
* href="http://java.sun.com/docs/books/vmspec/">Java Virtual * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Machine Specification</a>.
* *
* @param off * @param off
* The start offset in <tt>b</tt> of the class data * The start offset in <tt>b</tt> of the class data
...@@ -748,9 +746,8 @@ public abstract class ClassLoader { ...@@ -748,9 +746,8 @@ public abstract class ClassLoader {
* @param b * @param b
* The bytes that make up the class data. The bytes in positions * 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 * <tt>off</tt> through <tt>off+len-1</tt> should have the format
* of a valid class file as defined by the <a * of a valid class file as defined by
* href="http://java.sun.com/docs/books/vmspec/">Java Virtual * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Machine Specification</a>.
* *
* @param off * @param off
* The start offset in <tt>b</tt> of the class data * The start offset in <tt>b</tt> of the class data
...@@ -838,8 +835,7 @@ public abstract class ClassLoader { ...@@ -838,8 +835,7 @@ public abstract class ClassLoader {
* The bytes that make up the class data. The bytes from positions * The bytes that make up the class data. The bytes from positions
* <tt>b.position()</tt> through <tt>b.position() + b.limit() -1 * <tt>b.position()</tt> through <tt>b.position() + b.limit() -1
* </tt> should have the format of a valid class file as defined by * </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 * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Machine Specification</a>.
* *
* @param protectionDomain * @param protectionDomain
* The ProtectionDomain of the class, or <tt>null</tt>. * The ProtectionDomain of the class, or <tt>null</tt>.
...@@ -998,9 +994,8 @@ public abstract class ClassLoader { ...@@ -998,9 +994,8 @@ public abstract class ClassLoader {
* Links the specified class. This (misleadingly named) method may be * 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 * 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 * already been linked, then this method simply returns. Otherwise, the
* class is linked as described in the "Execution" chapter of the <a * class is linked as described in the "Execution" chapter of
* href="http://java.sun.com/docs/books/jls/">Java Language * <cite>The Java&trade; Language Specification</cite>.
* Specification</a>.
* </p> * </p>
* *
* @param c * @param c
...@@ -2034,8 +2029,8 @@ public abstract class ClassLoader { ...@@ -2034,8 +2029,8 @@ public abstract class ClassLoader {
* The name of the package whose package default assertion status * The name of the package whose package default assertion status
* is to be set. A <tt>null</tt> value indicates the unnamed * is to be set. A <tt>null</tt> value indicates the unnamed
* package that is "current" * package that is "current"
* (<a href="http://java.sun.com/docs/books/jls/">Java Language * (see section 7.4.2 of
* Specification</a>, section 7.4.2). * <cite>The Java&trade; Language Specification</cite>.)
* *
* @param enabled * @param enabled
* <tt>true</tt> if classes loaded by this classloader and * <tt>true</tt> if classes loaded by this classloader and
......
...@@ -392,9 +392,10 @@ public final class Double extends Number implements Comparable<Double> { ...@@ -392,9 +392,10 @@ public final class Double extends Number implements Comparable<Double> {
* where <i>Sign</i>, <i>FloatingPointLiteral</i>, * where <i>Sign</i>, <i>FloatingPointLiteral</i>,
* <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and * <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and
* <i>FloatTypeSuffix</i> are as defined in the lexical structure * <i>FloatTypeSuffix</i> are as defined in the lexical structure
* sections of the <a * sections of
* href="http://java.sun.com/docs/books/jls/html/">Java Language * <cite>The Java&trade; Language Specification</cite>,
* Specification</a>. If {@code s} does not have the form of * 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} * a <i>FloatValue</i>, then a {@code NumberFormatException}
* is thrown. Otherwise, {@code s} is regarded as * is thrown. Otherwise, {@code s} is regarded as
* representing an exact decimal value in the usual * representing an exact decimal value in the usual
...@@ -464,8 +465,8 @@ public final class Double extends Number implements Comparable<Double> { ...@@ -464,8 +465,8 @@ public final class Double extends Number implements Comparable<Double> {
* // Since this method allows integer-only strings as input * // Since this method allows integer-only strings as input
* // in addition to strings of floating-point literals, the * // in addition to strings of floating-point literals, the
* // two sub-patterns below are simplifications of the grammar * // two sub-patterns below are simplifications of the grammar
* // productions from the Java Language Specification, 2nd * // productions from section 3.10.2 of
* // edition, section 3.10.2. * // <cite>The Java&trade; Language Specification</cite>.
* *
* // Digits ._opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt * // Digits ._opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt
* "((("+Digits+"(\\.)?("+Digits+"?)("+Exp+")?)|"+ * "((("+Digits+"(\\.)?("+Digits+"?)("+Exp+")?)|"+
......
...@@ -36,9 +36,8 @@ import java.io.ObjectStreamException; ...@@ -36,9 +36,8 @@ import java.io.ObjectStreamException;
* *
* More information about enums, including descriptions of the * More information about enums, including descriptions of the
* implicitly declared methods synthesized by the compiler, can be * implicitly declared methods synthesized by the compiler, can be
* found in <i>The Java&trade; Language Specification, Third * found in section 8.9 of
* Edition</i>, <a * <cite>The Java&trade; Language Specification</cite>.
* href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.9">&sect;8.9</a>.
* *
* <p> Note that when using an enumeration type as the type of a set * <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 * or as the type of the keys in a map, specialized and efficient
......
...@@ -43,7 +43,7 @@ package java.lang; ...@@ -43,7 +43,7 @@ package java.lang;
* *
* @author Frank Yellin * @author Frank Yellin
* @see java.lang.ThreadDeath * @see java.lang.ThreadDeath
* @jls3 11.2 Compile-Time Checking of Exceptions * @jls 11.2 Compile-Time Checking of Exceptions
* @since JDK1.0 * @since JDK1.0
*/ */
public class Error extends Throwable { public class Error extends Throwable {
......
...@@ -39,7 +39,7 @@ package java.lang; ...@@ -39,7 +39,7 @@ package java.lang;
* *
* @author Frank Yellin * @author Frank Yellin
* @see java.lang.Error * @see java.lang.Error
* @jls3 11.2 Compile-Time Checking of Exceptions * @jls 11.2 Compile-Time Checking of Exceptions
* @since JDK1.0 * @since JDK1.0
*/ */
public class Exception extends Throwable { public class Exception extends Throwable {
......
...@@ -353,9 +353,10 @@ public final class Float extends Number implements Comparable<Float> { ...@@ -353,9 +353,10 @@ public final class Float extends Number implements Comparable<Float> {
* where <i>Sign</i>, <i>FloatingPointLiteral</i>, * where <i>Sign</i>, <i>FloatingPointLiteral</i>,
* <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and * <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and
* <i>FloatTypeSuffix</i> are as defined in the lexical structure * <i>FloatTypeSuffix</i> are as defined in the lexical structure
* sections of the <a * sections of
* href="http://java.sun.com/docs/books/jls/html/">Java Language * <cite>The Java&trade; Language Specification</cite>,
* Specification</a>. If {@code s} does not have the form of * 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} * a <i>FloatValue</i>, then a {@code NumberFormatException}
* is thrown. Otherwise, {@code s} is regarded as * is thrown. Otherwise, {@code s} is regarded as
* representing an exact decimal value in the usual * representing an exact decimal value in the usual
......
...@@ -918,9 +918,9 @@ public final class Integer extends Number implements Comparable<Integer> { ...@@ -918,9 +918,9 @@ public final class Integer extends Number implements Comparable<Integer> {
* </blockquote> * </blockquote>
* *
* <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> * <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> * are as defined in section 3.10.1 of
* of the <a href="http://java.sun.com/docs/books/jls/html/">Java * <cite>The Java&trade; Language Specification</cite>,
* Language Specification</a>. * except that underscores are not accepted between digits.
* *
* <p>The sequence of characters following an optional * <p>The sequence of characters following an optional
* sign and/or radix specifier ("{@code 0x}", "{@code 0X}", * sign and/or radix specifier ("{@code 0x}", "{@code 0X}",
......
...@@ -598,9 +598,9 @@ public final class Long extends Number implements Comparable<Long> { ...@@ -598,9 +598,9 @@ public final class Long extends Number implements Comparable<Long> {
* </blockquote> * </blockquote>
* *
* <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> * <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> * are as defined in section 3.10.1 of
* of the <a href="http://java.sun.com/docs/books/jls/html/">Java * <cite>The Java&trade; Language Specification</cite>,
* Language Specification</a>. * except that underscores are not accepted between digits.
* *
* <p>The sequence of characters following an optional * <p>The sequence of characters following an optional
* sign and/or radix specifier ("{@code 0x}", "{@code 0X}", * 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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -627,11 +627,9 @@ public final class Math { ...@@ -627,11 +627,9 @@ public final class Math {
} }
/** /**
* Returns the closest {@code int} to the argument. The * Returns the closest {@code int} to the argument, with ties
* result is rounded to an integer by adding 1/2, taking the * rounding up.
* 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)}
* <p> * <p>
* Special cases: * Special cases:
* <ul><li>If the argument is NaN, the result is 0. * <ul><li>If the argument is NaN, the result is 0.
...@@ -649,17 +647,17 @@ public final class Math { ...@@ -649,17 +647,17 @@ public final class Math {
* @see java.lang.Integer#MIN_VALUE * @see java.lang.Integer#MIN_VALUE
*/ */
public static int round(float a) { 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 * Returns the closest {@code long} to the argument, with ties
* is rounded to an integer by adding 1/2, taking the floor of the * rounding up.
* result, and casting the result to type {@code long}. In other *
* words, the result is equal to the value of the expression: * <p>Special cases:
* <p>{@code (long)Math.floor(a + 0.5d)}
* <p>
* Special cases:
* <ul><li>If the argument is NaN, the result is 0. * <ul><li>If the argument is NaN, the result is 0.
* <li>If the argument is negative infinity or any value less than or * <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 * equal to the value of {@code Long.MIN_VALUE}, the result is
...@@ -676,7 +674,10 @@ public final class Math { ...@@ -676,7 +674,10 @@ public final class Math {
* @see java.lang.Long#MIN_VALUE * @see java.lang.Long#MIN_VALUE
*/ */
public static long round(double a) { 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; private static Random randomNumberGenerator;
......
...@@ -58,9 +58,8 @@ public class Object { ...@@ -58,9 +58,8 @@ public class Object {
* *
* @return The {@code Class} object that represents the runtime * @return The {@code Class} object that represents the runtime
* class of this object. * class of this object.
* @see <a href="http://java.sun.com/docs/books/jls/">The Java * @see Class Literals, section 15.8.2 of
* Language Specification, Third Edition (15.8.2 Class * <cite>The Java&trade; Language Specification</cite>.
* Literals)</a>
*/ */
public final native Class<?> getClass(); public final native Class<?> getClass();
......
...@@ -43,7 +43,7 @@ import java.lang.annotation.*; ...@@ -43,7 +43,7 @@ import java.lang.annotation.*;
* *
* @author Peter von der Ah&eacute; * @author Peter von der Ah&eacute;
* @author Joshua Bloch * @author Joshua Bloch
* @jls3 9.6.1.4 Override * @jls 9.6.1.4 Override
* @since 1.5 * @since 1.5
*/ */
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
......
...@@ -109,10 +109,9 @@ public class Package implements java.lang.reflect.AnnotatedElement { ...@@ -109,10 +109,9 @@ public class Package implements java.lang.reflect.AnnotatedElement {
/** /**
* Return the name of this package. * Return the name of this package.
* *
* @return The fully-qualified name of this package as defined in the * @return The fully-qualified name of this package as defined in section 6.5.3 of
* <em>Java Language Specification, Third Edition</em> * <cite>The Java&trade; Language Specification</cite>,
* <a href="http://java.sun.com/docs/books/jls/third_edition/html/names.html#6.5.3"> * for example, {@code java.lang}
* &sect;6.5.3</a>, for example, {@code java.lang}
*/ */
public String getName() { public String getName() {
return pkgName; return pkgName;
......
...@@ -37,7 +37,7 @@ package java.lang; ...@@ -37,7 +37,7 @@ package java.lang;
* propagate outside the method or constructor boundary. * propagate outside the method or constructor boundary.
* *
* @author Frank Yellin * @author Frank Yellin
* @jls3 11.2 Compile-Time Checking of Exceptions * @jls 11.2 Compile-Time Checking of Exceptions
* @since JDK1.0 * @since JDK1.0
*/ */
public class RuntimeException extends Exception { public class RuntimeException extends Exception {
......
...@@ -70,8 +70,8 @@ import java.lang.annotation.*; ...@@ -70,8 +70,8 @@ import java.lang.annotation.*;
* *
* </ul> * </ul>
* *
* @jls3 4.7 Reifiable Types * @jls 4.7 Reifiable Types
* @jls3 8.4.1 Formal Parameters * @jls 8.4.1 Formal Parameters
*/ */
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
......
...@@ -256,9 +256,9 @@ public final class Short extends Number implements Comparable<Short> { ...@@ -256,9 +256,9 @@ public final class Short extends Number implements Comparable<Short> {
* </blockquote> * </blockquote>
* *
* <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> * <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> * are as defined in section 3.10.1 of
* of the <a href="http://java.sun.com/docs/books/jls/html/">Java * <cite>The Java&trade; Language Specification</cite>,
* Language Specification</a>. * except that underscores are not accepted between digits.
* *
* <p>The sequence of characters following an optional * <p>The sequence of characters following an optional
* sign and/or radix specifier ("{@code 0x}", "{@code 0X}", * 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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -613,11 +613,8 @@ public final class StrictMath { ...@@ -613,11 +613,8 @@ public final class StrictMath {
public static native double pow(double a, double b); public static native double pow(double a, double b);
/** /**
* Returns the closest {@code int} to the argument. The * Returns the closest {@code int} to the argument, with ties
* result is rounded to an integer by adding 1/2, taking the * rounding up.
* 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)}
* *
* <p>Special cases: * <p>Special cases:
* <ul><li>If the argument is NaN, the result is 0. * <ul><li>If the argument is NaN, the result is 0.
...@@ -635,15 +632,12 @@ public final class StrictMath { ...@@ -635,15 +632,12 @@ public final class StrictMath {
* @see java.lang.Integer#MIN_VALUE * @see java.lang.Integer#MIN_VALUE
*/ */
public static int round(float a) { 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 * Returns the closest {@code long} to the argument, with ties
* is rounded to an integer by adding 1/2, taking the floor of the * rounding up.
* 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: * <p>Special cases:
* <ul><li>If the argument is NaN, the result is 0. * <ul><li>If the argument is NaN, the result is 0.
...@@ -662,7 +656,7 @@ public final class StrictMath { ...@@ -662,7 +656,7 @@ public final class StrictMath {
* @see java.lang.Long#MIN_VALUE * @see java.lang.Long#MIN_VALUE
*/ */
public static long round(double a) { public static long round(double a) {
return (long)floor(a + 0.5d); return Math.round(a);
} }
private static Random randomNumberGenerator; private static Random randomNumberGenerator;
......
...@@ -2819,8 +2819,8 @@ public final class String ...@@ -2819,8 +2819,8 @@ public final class String
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -2863,8 +2863,8 @@ public final class String ...@@ -2863,8 +2863,8 @@ public final class String
* extra arguments are ignored. The number of arguments is * extra arguments are ignored. The number of arguments is
* variable and may be zero. The maximum 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 * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>. The behaviour on a * The behaviour on a
* <tt>null</tt> argument depends on the <a * <tt>null</tt> argument depends on the <a
* href="../util/Formatter.html#syntax">conversion</a>. * href="../util/Formatter.html#syntax">conversion</a>.
* *
...@@ -3066,9 +3066,8 @@ public final class String ...@@ -3066,9 +3066,8 @@ public final class String
* if and only if <code>s.equals(t)</code> is <code>true</code>. * if and only if <code>s.equals(t)</code> is <code>true</code>.
* <p> * <p>
* All literal strings and string-valued constant expressions are * All literal strings and string-valued constant expressions are
* interned. String literals are defined in &sect;3.10.5 of the * interned. String literals are defined in section 3.10.5 of the
* <a href="http://java.sun.com/docs/books/jls/html/">Java Language * <cite>The Java&trade; Language Specification</cite>.
* Specification</a>
* *
* @return a string that has the same contents as this string, but is * @return a string that has the same contents as this string, but is
* guaranteed to be from a pool of unique strings. * guaranteed to be from a pool of unique strings.
......
...@@ -108,7 +108,7 @@ import java.util.*; ...@@ -108,7 +108,7 @@ import java.util.*;
* @author unascribed * @author unascribed
* @author Josh Bloch (Added exception chaining and programmatic access to * @author Josh Bloch (Added exception chaining and programmatic access to
* stack trace in 1.4.) * stack trace in 1.4.)
* @jls3 11.2 Compile-Time Checking of Exceptions * @jls 11.2 Compile-Time Checking of Exceptions
* @since JDK1.0 * @since JDK1.0
*/ */
public class Throwable implements Serializable { public class Throwable implements Serializable {
......
...@@ -31,9 +31,8 @@ package java.lang.annotation; ...@@ -31,9 +31,8 @@ package java.lang.annotation;
* an annotation type. Also note that this interface does not itself * an annotation type. Also note that this interface does not itself
* define an annotation type. * define an annotation type.
* *
* More information about annotation types can be found in <i>The * More information about annotation types can be found in section 9.6 of
* Java&trade; Language Specification, Third Edition</i>, <a * <cite>The Java&trade; Language Specification</cite>.
* href="http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.6">&sect;9.6</a>.
* *
* @author Josh Bloch * @author Josh Bloch
* @since 1.5 * @since 1.5
......
...@@ -36,9 +36,9 @@ import java.security.ProtectionDomain; ...@@ -36,9 +36,9 @@ import java.security.ProtectionDomain;
* to transform class files. * to transform class files.
* The transformation occurs before the class is defined by the JVM. * The transformation occurs before the class is defined by the JVM.
* <P> * <P>
* Note the term <i>class file</i> is used as defined in the chapter * Note the term <i>class file</i> is used as defined in section 3.1 of
* <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#80959">The class File Format</a> * <cite>The Java&trade; Virtual Machine Specification</cite>,
* of <i>The Java Virtual Machine Specification</i>, to mean a sequence * to mean a sequence
* of bytes in class file format, whether or not they reside in a file. * of bytes in class file format, whether or not they reside in a file.
* *
* @see java.lang.instrument.Instrumentation * @see java.lang.instrument.Instrumentation
......
...@@ -434,8 +434,9 @@ public interface Instrumentation { ...@@ -434,8 +434,9 @@ public interface Instrumentation {
* avoiding these types of issues, is to use a unique package name for the * avoiding these types of issues, is to use a unique package name for the
* instrumentation classes. * instrumentation classes.
* *
* <p> The <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine * <p>
* Specification</a> specifies that a subsequent attempt to resolve a symbolic * <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 * 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 * 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 * initial resolution attempt. Consequently, if the JAR file contains an entry
...@@ -487,8 +488,9 @@ public interface Instrumentation { ...@@ -487,8 +488,9 @@ public interface Instrumentation {
* getName()} method on the <code>jarfile</code> and this is provided as the * getName()} method on the <code>jarfile</code> and this is provided as the
* parameter to the <code>appendToClassPathForInstrumentation</code> method. * parameter to the <code>appendToClassPathForInstrumentation</code> method.
* *
* <p> The <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine * <p>
* Specification</a> specifies that a subsequent attempt to resolve a symbolic * <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 * 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 * 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 * initial resolution attempt. Consequently, if the JAR file contains an entry
......
...@@ -194,8 +194,8 @@ ...@@ -194,8 +194,8 @@
* Method handle constants for subtags {@code REF_getStatic}, {@code REF_putStatic}, and {@code REF_invokeStatic} * 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. * may force class initialization on their first invocation, just like the corresponding bytecodes.
* <p> * <p>
* The rules of section 5.4.3 of the * The rules of section 5.4.3 of
* <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ConstantPool.doc.html#73492">JVM Specification</a> * <cite>The Java&trade; Virtual Machine Specification</cite>
* apply to the resolution of {@code CONSTANT_MethodType}, {@code CONSTANT_MethodHandle}, * apply to the resolution of {@code CONSTANT_MethodType}, {@code CONSTANT_MethodHandle},
* and {@code CONSTANT_InvokeDynamic} constants, * and {@code CONSTANT_InvokeDynamic} constants,
* by the execution of {@code invokedynamic} and {@code ldc} instructions. * by the execution of {@code invokedynamic} and {@code ldc} instructions.
......
...@@ -186,8 +186,8 @@ public final ...@@ -186,8 +186,8 @@ public final
* the type variables declared by this generic declaration * the type variables declared by this generic declaration
* @throws GenericSignatureFormatError if the generic * @throws GenericSignatureFormatError if the generic
* signature of this generic declaration does not conform to * signature of this generic declaration does not conform to
* the format specified in the Java Virtual Machine Specification, * the format specified in
* 3rd edition * <cite>The Java&trade; Virtual Machine Specification</cite>
* @since 1.5 * @since 1.5
*/ */
public TypeVariable<Constructor<T>>[] getTypeParameters() { public TypeVariable<Constructor<T>>[] getTypeParameters() {
...@@ -229,7 +229,8 @@ public final ...@@ -229,7 +229,8 @@ public final
* parameter types of the underlying method, in declaration order * parameter types of the underlying method, in declaration order
* @throws GenericSignatureFormatError * @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format * 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 * @throws TypeNotPresentException if any of the parameter
* types of the underlying method refers to a non-existent type * types of the underlying method refers to a non-existent type
* declaration * declaration
...@@ -273,7 +274,8 @@ public final ...@@ -273,7 +274,8 @@ public final
* thrown by the underlying method * thrown by the underlying method
* @throws GenericSignatureFormatError * @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format * 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 * @throws TypeNotPresentException if the underlying method's
* {@code throws} clause refers to a non-existent type declaration * {@code throws} clause refers to a non-existent type declaration
* @throws MalformedParameterizedTypeException if * @throws MalformedParameterizedTypeException if
...@@ -468,8 +470,8 @@ public final ...@@ -468,8 +470,8 @@ public final
* *
* <p>If the constructor's declaring class is an inner class in a * <p>If the constructor's declaring class is an inner class in a
* non-static context, the first argument to the constructor needs * non-static context, the first argument to the constructor needs
* to be the enclosing instance; see <i>The Java Language * to be the enclosing instance; see section 15.9.3 of
* Specification</i>, section 15.9.3. * <cite>The Java&trade; Language Specification</cite>.
* *
* <p>If the required access and argument checks succeed and the * <p>If the required access and argument checks succeed and the
* instantiation will proceed, the constructor's declaring class * instantiation will proceed, the constructor's declaring class
...@@ -541,7 +543,8 @@ public final ...@@ -541,7 +543,8 @@ public final
* constructor; returns {@code false} otherwise. * constructor; returns {@code false} otherwise.
* *
* @return true if and only if this constructor is a synthetic * @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 * @since 1.5
*/ */
public boolean isSynthetic() { public boolean isSynthetic() {
......
...@@ -221,8 +221,8 @@ class Field extends AccessibleObject implements Member { ...@@ -221,8 +221,8 @@ class Field extends AccessibleObject implements Member {
* @return a {@code Type} object that represents the declared type for * @return a {@code Type} object that represents the declared type for
* the field represented by this {@code Field} object * the field represented by this {@code Field} object
* @throws GenericSignatureFormatError if the generic field * @throws GenericSignatureFormatError if the generic field
* signature does not conform to the format specified in the Java * signature does not conform to the format specified in
* Virtual Machine Specification, 3rd edition * <cite>The Java&trade; Virtual Machine Specification</cite>
* @throws TypeNotPresentException if the generic type * @throws TypeNotPresentException if the generic type
* signature of the underlying field refers to a non-existent * signature of the underlying field refers to a non-existent
* type declaration * type declaration
......
...@@ -42,8 +42,8 @@ public interface GenericDeclaration { ...@@ -42,8 +42,8 @@ public interface GenericDeclaration {
* the type variables declared by this generic declaration * the type variables declared by this generic declaration
* @throws GenericSignatureFormatError if the generic * @throws GenericSignatureFormatError if the generic
* signature of this generic declaration does not conform to * signature of this generic declaration does not conform to
* the format specified in the Java Virtual Machine Specification, * the format specified in
* 3rd edition * <cite>The Java&trade; Virtual Machine Specification</cite>
*/ */
public TypeVariable<?>[] getTypeParameters(); public TypeVariable<?>[] getTypeParameters();
} }
...@@ -194,8 +194,8 @@ public final ...@@ -194,8 +194,8 @@ public final
* the type variables declared by this generic declaration * the type variables declared by this generic declaration
* @throws GenericSignatureFormatError if the generic * @throws GenericSignatureFormatError if the generic
* signature of this generic declaration does not conform to * signature of this generic declaration does not conform to
* the format specified in the Java Virtual Machine Specification, * the format specified in
* 3rd edition * <cite>The Java&trade; Virtual Machine Specification</cite>
* @since 1.5 * @since 1.5
*/ */
public TypeVariable<Method>[] getTypeParameters() { public TypeVariable<Method>[] getTypeParameters() {
...@@ -230,7 +230,8 @@ public final ...@@ -230,7 +230,8 @@ public final
* type of the underlying method * type of the underlying method
* @throws GenericSignatureFormatError * @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format * 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 * @throws TypeNotPresentException if the underlying method's
* return type refers to a non-existent type declaration * return type refers to a non-existent type declaration
* @throws MalformedParameterizedTypeException if the * @throws MalformedParameterizedTypeException if the
...@@ -275,7 +276,8 @@ public final ...@@ -275,7 +276,8 @@ public final
* parameter types of the underlying method, in declaration order * parameter types of the underlying method, in declaration order
* @throws GenericSignatureFormatError * @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format * 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 * @throws TypeNotPresentException if any of the parameter
* types of the underlying method refers to a non-existent type * types of the underlying method refers to a non-existent type
* declaration * declaration
...@@ -319,7 +321,8 @@ public final ...@@ -319,7 +321,8 @@ public final
* thrown by the underlying method * thrown by the underlying method
* @throws GenericSignatureFormatError * @throws GenericSignatureFormatError
* if the generic method signature does not conform to the format * 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 * @throws TypeNotPresentException if the underlying method's
* {@code throws} clause refers to a non-existent type declaration * {@code throws} clause refers to a non-existent type declaration
* @throws MalformedParameterizedTypeException if * @throws MalformedParameterizedTypeException if
......
...@@ -34,14 +34,8 @@ import sun.reflect.ReflectionFactory; ...@@ -34,14 +34,8 @@ import sun.reflect.ReflectionFactory;
* constants to decode class and member access modifiers. The sets of * constants to decode class and member access modifiers. The sets of
* modifiers are represented as integers with distinct bit positions * modifiers are represented as integers with distinct bit positions
* representing different modifiers. The values for the constants * representing different modifiers. The values for the constants
* representing the modifiers are taken from <a * representing the modifiers are taken from the tables in sections 4.1, 4.4, 4.5, and 4.7 of
* href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html"><i>The * <cite>The Java&trade; Virtual Machine Specification</cite>.
* 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>.
* *
* @see Class#getModifiers() * @see Class#getModifiers()
* @see Member#getModifiers() * @see Member#getModifiers()
...@@ -214,14 +208,8 @@ class Modifier { ...@@ -214,14 +208,8 @@ class Modifier {
* public final synchronized strictfp * public final synchronized strictfp
* </pre></blockquote> * </pre></blockquote>
* The modifier names are returned in an order consistent with the * The modifier names are returned in an order consistent with the
* suggested modifier orderings given in <a * suggested modifier orderings given in sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1 of
* href="http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html"><em>The * <cite>The Java&trade; Language Specification</cite>.
* 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>.
* The full modifier ordering used by this method is: * The full modifier ordering used by this method is:
* <blockquote> {@code * <blockquote> {@code
* public protected private abstract static final transient * public protected private abstract static final transient
...@@ -269,9 +257,8 @@ class Modifier { ...@@ -269,9 +257,8 @@ class Modifier {
} }
/* /*
* Access modifier flag constants from <em>The Java Virtual * Access modifier flag constants from tables 4.1, 4.4, 4.5, and 4.7 of
* Machine Specification, Second Edition</em>, tables 4.1, 4.4, * <cite>The Java&trade; Virtual Machine Specification</cite>
* 4.5, and 4.7.
*/ */
/** /**
...@@ -403,7 +390,7 @@ class Modifier { ...@@ -403,7 +390,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language * @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to a class. * modifiers that can be applied to a class.
* *
* @jls3 8.1.1 Class Modifiers * @jls 8.1.1 Class Modifiers
* @since 1.7 * @since 1.7
*/ */
public static int classModifiers() { public static int classModifiers() {
...@@ -416,7 +403,7 @@ class Modifier { ...@@ -416,7 +403,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language * @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to an inteface. * modifiers that can be applied to an inteface.
* *
* @jls3 9.1.1 Interface Modifiers * @jls 9.1.1 Interface Modifiers
* @since 1.7 * @since 1.7
*/ */
public static int interfaceModifiers() { public static int interfaceModifiers() {
...@@ -429,7 +416,7 @@ class Modifier { ...@@ -429,7 +416,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language * @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to a constructor. * modifiers that can be applied to a constructor.
* *
* @jls3 8.8.3 Constructor Modifiers * @jls 8.8.3 Constructor Modifiers
* @since 1.7 * @since 1.7
*/ */
public static int constructorModifiers() { public static int constructorModifiers() {
...@@ -442,7 +429,7 @@ class Modifier { ...@@ -442,7 +429,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language * @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to a method. * modifiers that can be applied to a method.
* *
* @jls3 8.4.3 Method Modifiers * @jls 8.4.3 Method Modifiers
* @since 1.7 * @since 1.7
*/ */
public static int methodModifiers() { public static int methodModifiers() {
...@@ -456,7 +443,7 @@ class Modifier { ...@@ -456,7 +443,7 @@ class Modifier {
* @return an {@code int} value OR-ing together the source language * @return an {@code int} value OR-ing together the source language
* modifiers that can be applied to a field. * modifiers that can be applied to a field.
* *
* @jls3 8.3.1 Field Modifiers * @jls 8.3.1 Field Modifiers
* @since 1.7 * @since 1.7
*/ */
public static int fieldModifiers() { public static int fieldModifiers() {
......
...@@ -2905,12 +2905,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { ...@@ -2905,12 +2905,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
/** /**
* Converts this {@code BigDecimal} to a {@code BigInteger}. * Converts this {@code BigDecimal} to a {@code BigInteger}.
* This conversion is analogous to a <a * This conversion is analogous to the
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code double} to
* primitive conversion</i></a> from {@code double} to * {@code long} as defined in section 5.1.3 of
* {@code long} as defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * any fractional part of this
* Specification</a>: any fractional part of this
* {@code BigDecimal} will be discarded. Note that this * {@code BigDecimal} will be discarded. Note that this
* conversion can lose information about the precision of the * conversion can lose information about the precision of the
* {@code BigDecimal} value. * {@code BigDecimal} value.
...@@ -2942,13 +2941,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { ...@@ -2942,13 +2941,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
} }
/** /**
* Converts this {@code BigDecimal} to a {@code long}. This * Converts this {@code BigDecimal} to a {@code long}.
* conversion is analogous to a <a * This conversion is analogous to the
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code double} to
* primitive conversion</i></a> from {@code double} to * {@code short} as defined in section 5.1.3 of
* {@code short} as defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * any fractional part of this
* Specification</a>: any fractional part of this
* {@code BigDecimal} will be discarded, and if the resulting * {@code BigDecimal} will be discarded, and if the resulting
* "{@code BigInteger}" is too big to fit in a * "{@code BigInteger}" is too big to fit in a
* {@code long}, only the low-order 64 bits are returned. * {@code long}, only the low-order 64 bits are returned.
...@@ -3011,13 +3009,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { ...@@ -3011,13 +3009,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
} }
/** /**
* Converts this {@code BigDecimal} to an {@code int}. This * Converts this {@code BigDecimal} to an {@code int}.
* conversion is analogous to a <a * This conversion is analogous to the
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code double} to
* primitive conversion</i></a> from {@code double} to * {@code short} as defined in section 5.1.3 of
* {@code short} as defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * any fractional part of this
* Specification</a>: any fractional part of this
* {@code BigDecimal} will be discarded, and if the resulting * {@code BigDecimal} will be discarded, and if the resulting
* "{@code BigInteger}" is too big to fit in an * "{@code BigInteger}" is too big to fit in an
* {@code int}, only the low-order 32 bits are returned. * {@code int}, only the low-order 32 bits are returned.
...@@ -3095,12 +3092,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { ...@@ -3095,12 +3092,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
/** /**
* Converts this {@code BigDecimal} to a {@code float}. * Converts this {@code BigDecimal} to a {@code float}.
* This conversion is similar to the <a * This conversion is similar to the
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code double} to
* primitive conversion</i></a> from {@code double} to * {@code float} as defined in section 5.1.3 of
* {@code float} defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * if this {@code BigDecimal} has too great a
* Specification</a>: if this {@code BigDecimal} has too great a
* magnitude to represent as a {@code float}, it will be * magnitude to represent as a {@code float}, it will be
* converted to {@link Float#NEGATIVE_INFINITY} or {@link * converted to {@link Float#NEGATIVE_INFINITY} or {@link
* Float#POSITIVE_INFINITY} as appropriate. Note that even when * Float#POSITIVE_INFINITY} as appropriate. Note that even when
...@@ -3119,12 +3115,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { ...@@ -3119,12 +3115,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
/** /**
* Converts this {@code BigDecimal} to a {@code double}. * Converts this {@code BigDecimal} to a {@code double}.
* This conversion is similar to the <a * This conversion is similar to the
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code double} to
* primitive conversion</i></a> from {@code double} to * {@code float} as defined in section 5.1.3 of
* {@code float} as defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * if this {@code BigDecimal} has too great a
* Specification</a>: if this {@code BigDecimal} has too great a
* magnitude represent as a {@code double}, it will be * magnitude represent as a {@code double}, it will be
* converted to {@link Double#NEGATIVE_INFINITY} or {@link * converted to {@link Double#NEGATIVE_INFINITY} or {@link
* Double#POSITIVE_INFINITY} as appropriate. Note that even when * Double#POSITIVE_INFINITY} as appropriate. Note that even when
......
...@@ -2719,12 +2719,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> { ...@@ -2719,12 +2719,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
/** /**
* Converts this BigInteger to an {@code int}. This * Converts this BigInteger to an {@code int}. This
* conversion is analogous to a <a * conversion is analogous to a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code long} to
* primitive conversion</i></a> from {@code long} to * {@code int} as defined in section 5.1.3 of
* {@code int} as defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * if this BigInteger is too big to fit in an
* Specification</a>: if this BigInteger is too big to fit in an
* {@code int}, only the low-order 32 bits are returned. * {@code int}, only the low-order 32 bits are returned.
* Note that this conversion can lose information about the * Note that this conversion can lose information about the
* overall magnitude of the BigInteger value as well as return a * overall magnitude of the BigInteger value as well as return a
...@@ -2740,12 +2739,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> { ...@@ -2740,12 +2739,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
/** /**
* Converts this BigInteger to a {@code long}. This * Converts this BigInteger to a {@code long}. This
* conversion is analogous to a <a * conversion is analogous to a
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code long} to
* primitive conversion</i></a> from {@code long} to * {@code int} as defined in section 5.1.3 of
* {@code int} as defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * if this BigInteger is too big to fit in a
* Specification</a>: if this BigInteger is too big to fit in a
* {@code long}, only the low-order 64 bits are returned. * {@code long}, only the low-order 64 bits are returned.
* Note that this conversion can lose information about the * Note that this conversion can lose information about the
* overall magnitude of the BigInteger value as well as return a * overall magnitude of the BigInteger value as well as return a
...@@ -2763,12 +2761,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> { ...@@ -2763,12 +2761,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
/** /**
* Converts this BigInteger to a {@code float}. This * Converts this BigInteger to a {@code float}. This
* conversion is similar to the <a * conversion is similar to the
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code double} to
* primitive conversion</i></a> from {@code double} to * {@code float} as defined in section 5.1.3 of
* {@code float} defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * if this BigInteger has too great a magnitude
* Specification</a>: if this BigInteger has too great a magnitude
* to represent as a {@code float}, it will be converted to * to represent as a {@code float}, it will be converted to
* {@link Float#NEGATIVE_INFINITY} or {@link * {@link Float#NEGATIVE_INFINITY} or {@link
* Float#POSITIVE_INFINITY} as appropriate. Note that even when * Float#POSITIVE_INFINITY} as appropriate. Note that even when
...@@ -2784,12 +2781,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> { ...@@ -2784,12 +2781,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
/** /**
* Converts this BigInteger to a {@code double}. This * Converts this BigInteger to a {@code double}. This
* conversion is similar to the <a * conversion is similar to the
* href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing * <i>narrowing primitive conversion</i> from {@code double} to
* primitive conversion</i></a> from {@code double} to * {@code float} as defined in section 5.1.3 of
* {@code float} defined in the <a * <cite>The Java&trade; Language Specification</cite>:
* href="http://java.sun.com/docs/books/jls/html/">Java Language * if this BigInteger has too great a magnitude
* Specification</a>: if this BigInteger has too great a magnitude
* to represent as a {@code double}, it will be converted to * to represent as a {@code double}, it will be converted to
* {@link Double#NEGATIVE_INFINITY} or {@link * {@link Double#NEGATIVE_INFINITY} or {@link
* Double#POSITIVE_INFINITY} as appropriate. Note that even when * Double#POSITIVE_INFINITY} as appropriate. Note that even when
......
...@@ -118,10 +118,8 @@ public class SecureClassLoader extends ClassLoader { ...@@ -118,10 +118,8 @@ public class SecureClassLoader extends ClassLoader {
* and without a trailing ".class" suffix. * and without a trailing ".class" suffix.
* @param b the bytes that make up the class data. The bytes in * @param b the bytes that make up the class data. The bytes in
* positions <code>off</code> through <code>off+len-1</code> * positions <code>off</code> through <code>off+len-1</code>
* should have the format of a valid class file as defined * should have the format of a valid class file as defined by
* by the * <cite>The Java&trade; Virtual Machine Specification</cite>.
* <a href="http://java.sun.com/docs/books/vmspec/">Java
* Virtual Machine Specification</a>.
* @param off the start offset in <code>b</code> of the class data * @param off the start offset in <code>b</code> of the class data
* @param len the length of the class data * @param len the length of the class data
* @param cs the associated CodeSource, or <code>null</code> if none * @param cs the associated CodeSource, or <code>null</code> if none
...@@ -157,9 +155,8 @@ public class SecureClassLoader extends ClassLoader { ...@@ -157,9 +155,8 @@ public class SecureClassLoader extends ClassLoader {
* and without a trailing ".class" suffix. * and without a trailing ".class" suffix.
* @param b the bytes that make up the class data. The bytes from positions * @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> * <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 * should have the format of a valid class file as defined by
* <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Machine Specification</a>.
* @param cs the associated CodeSource, or <code>null</code> if none * @param cs the associated CodeSource, or <code>null</code> if none
* @return the <code>Class</code> object created from the data, * @return the <code>Class</code> object created from the data,
* and optional CodeSource. * and optional CodeSource.
......
...@@ -80,7 +80,7 @@ public class DriverManager { ...@@ -80,7 +80,7 @@ public class DriverManager {
// List of registered JDBC drivers // 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 int loginTimeout = 0;
private static volatile java.io.PrintWriter logWriter = null; private static volatile java.io.PrintWriter logWriter = null;
private static volatile java.io.PrintStream logStream = null; private static volatile java.io.PrintStream logStream = null;
...@@ -265,22 +265,22 @@ public class DriverManager { ...@@ -265,22 +265,22 @@ public class DriverManager {
// Walk through the loaded registeredDrivers attempting to locate someone // Walk through the loaded registeredDrivers attempting to locate someone
// who understands the given URL. // 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 // If the caller does not have permission to load the driver then
// skip it. // skip it.
if(isDriverAllowed(aDriver, callerCL)) { if(isDriverAllowed(aDriver.driver, callerCL)) {
try { try {
if(aDriver.acceptsURL(url)) { if(aDriver.driver.acceptsURL(url)) {
// Success! // Success!
println("getDriver returning " + aDriver.getClass().getName()); println("getDriver returning " + aDriver.driver.getClass().getName());
return (aDriver); return (aDriver.driver);
} }
} catch(SQLException sqe) { } catch(SQLException sqe) {
// Drop through and try the next driver. // Drop through and try the next driver.
} }
} else { } else {
println(" skipping: " + aDriver.getClass().getName()); println(" skipping: " + aDriver.driver.getClass().getName());
} }
} }
...@@ -305,7 +305,7 @@ public class DriverManager { ...@@ -305,7 +305,7 @@ public class DriverManager {
/* Register the driver if it has not already been added to our list */ /* Register the driver if it has not already been added to our list */
if(driver != null) { if(driver != null) {
registeredDrivers.addIfAbsent(driver); registeredDrivers.addIfAbsent(new DriverInfo(driver));
} else { } else {
// This is for compatibility with the original DriverManager // This is for compatibility with the original DriverManager
throw new NullPointerException(); throw new NullPointerException();
...@@ -333,9 +333,10 @@ public class DriverManager { ...@@ -333,9 +333,10 @@ public class DriverManager {
ClassLoader callerCL = DriverManager.getCallerClassLoader(); ClassLoader callerCL = DriverManager.getCallerClassLoader();
println("DriverManager.deregisterDriver: " + driver); println("DriverManager.deregisterDriver: " + driver);
if(registeredDrivers.contains(driver)) { DriverInfo aDriver = new DriverInfo(driver);
if(registeredDrivers.contains(aDriver)) {
if (isDriverAllowed(driver, callerCL)) { if (isDriverAllowed(driver, callerCL)) {
registeredDrivers.remove(driver); registeredDrivers.remove(aDriver);
} else { } else {
// If the caller does not have permission to load the driver then // If the caller does not have permission to load the driver then
// throw a SecurityException. // throw a SecurityException.
...@@ -363,11 +364,11 @@ public class DriverManager { ...@@ -363,11 +364,11 @@ public class DriverManager {
ClassLoader callerCL = DriverManager.getCallerClassLoader(); ClassLoader callerCL = DriverManager.getCallerClassLoader();
// Walk through the loaded registeredDrivers. // 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 // If the caller does not have permission to load the driver then
// skip it. // skip it.
if(isDriverAllowed(aDriver, callerCL)) { if(isDriverAllowed(aDriver.driver, callerCL)) {
result.addElement(aDriver); result.addElement(aDriver.driver);
} else { } else {
println(" skipping: " + aDriver.getClass().getName()); println(" skipping: " + aDriver.getClass().getName());
} }
...@@ -482,8 +483,8 @@ public class DriverManager { ...@@ -482,8 +483,8 @@ public class DriverManager {
private static void loadInitialDrivers() { private static void loadInitialDrivers() {
String drivers; String drivers;
try { try {
drivers = (String) AccessController.doPrivileged(new PrivilegedAction() { drivers = AccessController.doPrivileged(new PrivilegedAction<String>() {
public Object run() { public String run() {
return System.getProperty("jdbc.drivers"); return System.getProperty("jdbc.drivers");
} }
}); });
...@@ -495,8 +496,8 @@ public class DriverManager { ...@@ -495,8 +496,8 @@ public class DriverManager {
// exposed as a java.sql.Driver.class service. // exposed as a java.sql.Driver.class service.
// ServiceLoader.load() replaces the sun.misc.Providers() // ServiceLoader.load() replaces the sun.misc.Providers()
AccessController.doPrivileged(new PrivilegedAction() { AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Object run() { public Void run() {
ServiceLoader<Driver> loadedDrivers = ServiceLoader.load(Driver.class); ServiceLoader<Driver> loadedDrivers = ServiceLoader.load(Driver.class);
Iterator driversIterator = loadedDrivers.iterator(); Iterator driversIterator = loadedDrivers.iterator();
...@@ -569,16 +570,16 @@ public class DriverManager { ...@@ -569,16 +570,16 @@ public class DriverManager {
// Remember the first exception that gets raised so we can reraise it. // Remember the first exception that gets raised so we can reraise it.
SQLException reason = null; SQLException reason = null;
for(Driver aDriver : registeredDrivers) { for(DriverInfo aDriver : registeredDrivers) {
// If the caller does not have permission to load the driver then // If the caller does not have permission to load the driver then
// skip it. // skip it.
if(isDriverAllowed(aDriver, callerCL)) { if(isDriverAllowed(aDriver.driver, callerCL)) {
try { try {
println(" trying " + aDriver.getClass().getName()); println(" trying " + aDriver.driver.getClass().getName());
Connection con = aDriver.connect(url, info); Connection con = aDriver.driver.connect(url, info);
if (con != null) { if (con != null) {
// Success! // Success!
println("getConnection returning " + aDriver.getClass().getName()); println("getConnection returning " + aDriver.driver.getClass().getName());
return (con); return (con);
} }
} catch (SQLException ex) { } catch (SQLException ex) {
...@@ -607,3 +608,29 @@ public class DriverManager { ...@@ -607,3 +608,29 @@ public class DriverManager {
private static native ClassLoader getCallerClassLoader(); 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 + "]");
}
}
/* /*
* Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -137,7 +137,7 @@ import java.io.InputStream; ...@@ -137,7 +137,7 @@ import java.io.InputStream;
* to retrieve the next result from a sequence of multiple results. * to retrieve the next result from a sequence of multiple results.
* *
* <P>The number, types and properties of a <code>ResultSet</code> * <P>The number, types and properties of a <code>ResultSet</code>
* object's columns are provided by the <code>ResulSetMetaData</code> * object's columns are provided by the <code>ResultSetMetaData</code>
* object returned by the <code>ResultSet.getMetaData</code> method. * object returned by the <code>ResultSet.getMetaData</code> method.
* *
* @see Statement#executeQuery * @see Statement#executeQuery
...@@ -422,7 +422,7 @@ public interface ResultSet extends Wrapper, AutoCloseable { ...@@ -422,7 +422,7 @@ public interface ResultSet extends Wrapper, AutoCloseable {
* of this <code>ResultSet</code> object as * of this <code>ResultSet</code> object as
* a stream of ASCII characters. The value can then be read in chunks from the * a stream of ASCII characters. The value can then be read in chunks from the
* stream. This method is particularly * stream. This method is particularly
* suitable for retrieving large <char>LONGVARCHAR</char> values. * suitable for retrieving large <code>LONGVARCHAR</code> values.
* The JDBC driver will * The JDBC driver will
* do any necessary conversion from the database format into ASCII. * do any necessary conversion from the database format into ASCII.
* *
......
...@@ -116,11 +116,11 @@ public final class SQLPermission extends BasicPermission { ...@@ -116,11 +116,11 @@ public final class SQLPermission extends BasicPermission {
/** /**
* Creates a new <code>SQLPermission</code> object with the specified name. * Creates a new <code>SQLPermission</code> object with the specified name.
* The name is the symbolic name of the <code>SQLPermission</code>; currently, * The name is the symbolic name of the <code>SQLPermission</code>.
* the only name allowed is "setLog".
* *
* @param name the name of this <code>SQLPermission</code> object, which must * @param name the name of this <code>SQLPermission</code> object, which must
* be <code>setLog</code> * be either {@code setLog}, {@code callAbort}, {@code setSyncFactory},
* or {@code setNetworkTimeout}
* @throws NullPointerException if <code>name</code> is <code>null</code>. * @throws NullPointerException if <code>name</code> is <code>null</code>.
* @throws IllegalArgumentException if <code>name</code> is empty. * @throws IllegalArgumentException if <code>name</code> is empty.
...@@ -134,10 +134,11 @@ public final class SQLPermission extends BasicPermission { ...@@ -134,10 +134,11 @@ public final class SQLPermission extends BasicPermission {
* Creates a new <code>SQLPermission</code> object with the specified name. * Creates a new <code>SQLPermission</code> object with the specified name.
* The name is the symbolic name of the <code>SQLPermission</code>; the * The name is the symbolic name of the <code>SQLPermission</code>; the
* actions <code>String</code> is currently unused and should be * actions <code>String</code> is currently unused and should be
* <code>null</code>. * <code>null</code>.
* *
* @param name the name of this <code>SQLPermission</code> object, which must * @param name the name of this <code>SQLPermission</code> object, which must
* be <code>setLog</code> * be either {@code setLog}, {@code callAbort}, {@code setSyncFactory},
* or {@code setNetworkTimeout}
* @param actions should be <code>null</code> * @param actions should be <code>null</code>
* @throws NullPointerException if <code>name</code> is <code>null</code>. * @throws NullPointerException if <code>name</code> is <code>null</code>.
* @throws IllegalArgumentException if <code>name</code> is empty. * @throws IllegalArgumentException if <code>name</code> is empty.
......
...@@ -54,7 +54,7 @@ import java.util.StringTokenizer; ...@@ -54,7 +54,7 @@ import java.util.StringTokenizer;
* As a result, the <code>Timestamp.equals(Object)</code> * As a result, the <code>Timestamp.equals(Object)</code>
* method is not symmetric with respect to the * method is not symmetric with respect to the
* <code>java.util.Date.equals(Object)</code> * <code>java.util.Date.equals(Object)</code>
* method. Also, the <code>hashcode</code> method uses the underlying * method. Also, the <code>hashCode</code> method uses the underlying
* <code>java.util.Date</code> * <code>java.util.Date</code>
* implementation and therefore does not include nanos in its computation. * implementation and therefore does not include nanos in its computation.
* <P> * <P>
...@@ -515,6 +515,18 @@ public class Timestamp extends java.util.Date { ...@@ -515,6 +515,18 @@ public class Timestamp extends java.util.Date {
} }
} }
/**
* {@inheritDoc}
*
* The {@code hashCode} method uses the underlying {@code java.util.Date}
* implementation and therefore does not include nanos in its computation.
*
*/
@Override
public int hashCode() {
return super.hashCode();
}
static final long serialVersionUID = 2745179027874758501L; static final long serialVersionUID = 2745179027874758501L;
} }
...@@ -136,8 +136,8 @@ import java.util.Arrays; ...@@ -136,8 +136,8 @@ import java.util.Arrays;
* </pre> * </pre>
* </blockquote> * </blockquote>
* And the output result would be like the following: * And the output result would be like the following:
* <pre>
* <blockquote> * <blockquote>
* <pre>
* Format with -INF : is negative * Format with -INF : is negative
* Format with -1.0 : is negative * Format with -1.0 : is negative
* Format with 0 : is zero or fraction * Format with 0 : is zero or fraction
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
* *
* Written by Doug Lea with assistance from members of JCP JSR-166 * Written by Doug Lea with assistance from members of JCP JSR-166
* Expert Group and released to the public domain, as explained at * Expert Group and released to the public domain, as explained at
* http://creativecommons.org/licenses/publicdomain * http://creativecommons.org/publicdomain/zero/1.0/
*/ */
package java.util; package java.util;
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
* file: * file:
* *
* Written by Josh Bloch of Google Inc. and released to the public domain, * Written by Josh Bloch of Google Inc. and released to the public domain,
* as explained at http://creativecommons.org/licenses/publicdomain. * as explained at http://creativecommons.org/publicdomain/zero/1.0/.
*/ */
package java.util; package java.util;
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
* *
* Written by Doug Lea and Josh Bloch with assistance from members of * Written by Doug Lea and Josh Bloch with assistance from members of
* JCP JSR-166 Expert Group and released to the public domain, as explained * JCP JSR-166 Expert Group and released to the public domain, as explained
* at http://creativecommons.org/licenses/publicdomain * at http://creativecommons.org/publicdomain/zero/1.0/
*/ */
package java.util; package java.util;
......
...@@ -106,7 +106,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> ...@@ -106,7 +106,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
/** /**
* Distinguished non-null value for representing null values. * Distinguished non-null value for representing null values.
*/ */
private static final Object NULL = new Object(); private static final Object NULL = new Integer(0);
private Object maskNull(Object value) { private Object maskNull(Object value) {
return (value == null ? NULL : value); return (value == null ? NULL : value);
...@@ -116,7 +116,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> ...@@ -116,7 +116,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
return (V) (value == NULL ? null : value); return (V) (value == NULL ? null : value);
} }
private static Enum[] ZERO_LENGTH_ENUM_ARRAY = new Enum[0]; private static final Enum[] ZERO_LENGTH_ENUM_ARRAY = new Enum[0];
/** /**
* Creates an empty enum map with the specified key type. * Creates an empty enum map with the specified key type.
...@@ -464,6 +464,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> ...@@ -464,6 +464,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
public Iterator<Map.Entry<K,V>> iterator() { public Iterator<Map.Entry<K,V>> iterator() {
return new EntryIterator(); return new EntryIterator();
} }
public boolean contains(Object o) { public boolean contains(Object o) {
if (!(o instanceof Map.Entry)) if (!(o instanceof Map.Entry))
return false; return false;
...@@ -552,70 +553,82 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> ...@@ -552,70 +553,82 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
} }
} }
/** private class EntryIterator extends EnumMapIterator<Map.Entry<K,V>> {
* Since we don't use Entry objects, we use the Iterator itself as entry. private Entry lastReturnedEntry = null;
*/
private class EntryIterator extends EnumMapIterator<Map.Entry<K,V>>
implements Map.Entry<K,V>
{
public Map.Entry<K,V> next() { public Map.Entry<K,V> next() {
if (!hasNext()) if (!hasNext())
throw new NoSuchElementException(); throw new NoSuchElementException();
lastReturnedIndex = index++; lastReturnedEntry = new Entry(index++);
return this; return lastReturnedEntry;
} }
public K getKey() { public void remove() {
checkLastReturnedIndexForEntryUse(); lastReturnedIndex =
return keyUniverse[lastReturnedIndex]; ((null == lastReturnedEntry) ? -1 : lastReturnedEntry.index);
super.remove();
lastReturnedEntry.index = lastReturnedIndex;
lastReturnedEntry = null;
} }
public V getValue() { private class Entry implements Map.Entry<K,V> {
checkLastReturnedIndexForEntryUse(); private int index;
return unmaskNull(vals[lastReturnedIndex]);
}
public V setValue(V value) { private Entry(int index) {
checkLastReturnedIndexForEntryUse(); this.index = index;
V oldValue = unmaskNull(vals[lastReturnedIndex]); }
vals[lastReturnedIndex] = maskNull(value);
return oldValue;
}
public boolean equals(Object o) { public K getKey() {
if (lastReturnedIndex < 0) checkIndexForEntryUse();
return o == this; return keyUniverse[index];
}
if (!(o instanceof Map.Entry)) public V getValue() {
return false; checkIndexForEntryUse();
Map.Entry e = (Map.Entry)o; return unmaskNull(vals[index]);
V ourValue = unmaskNull(vals[lastReturnedIndex]); }
Object hisValue = e.getValue();
return e.getKey() == keyUniverse[lastReturnedIndex] &&
(ourValue == hisValue ||
(ourValue != null && ourValue.equals(hisValue)));
}
public int hashCode() { public V setValue(V value) {
if (lastReturnedIndex < 0) checkIndexForEntryUse();
return super.hashCode(); V oldValue = unmaskNull(vals[index]);
vals[index] = maskNull(value);
return oldValue;
}
Object value = vals[lastReturnedIndex]; public boolean equals(Object o) {
return keyUniverse[lastReturnedIndex].hashCode() if (index < 0)
^ (value == NULL ? 0 : value.hashCode()); return o == this;
}
public String toString() { if (!(o instanceof Map.Entry))
if (lastReturnedIndex < 0) return false;
return super.toString();
return keyUniverse[lastReturnedIndex] + "=" Map.Entry e = (Map.Entry)o;
+ unmaskNull(vals[lastReturnedIndex]); V ourValue = unmaskNull(vals[index]);
} Object hisValue = e.getValue();
return (e.getKey() == keyUniverse[index] &&
(ourValue == hisValue ||
(ourValue != null && ourValue.equals(hisValue))));
}
private void checkLastReturnedIndexForEntryUse() { public int hashCode() {
if (lastReturnedIndex < 0) if (index < 0)
throw new IllegalStateException("Entry was removed"); return super.hashCode();
return entryHashCode(index);
}
public String toString() {
if (index < 0)
return super.toString();
return keyUniverse[index] + "="
+ unmaskNull(vals[index]);
}
private void checkIndexForEntryUse() {
if (index < 0)
throw new IllegalStateException("Entry was removed");
}
} }
} }
...@@ -631,10 +644,35 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> ...@@ -631,10 +644,35 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
* @return <tt>true</tt> if the specified object is equal to this map * @return <tt>true</tt> if the specified object is equal to this map
*/ */
public boolean equals(Object o) { public boolean equals(Object o) {
if (!(o instanceof EnumMap)) if (this == o)
return super.equals(o); return true;
if (o instanceof EnumMap)
return equals((EnumMap)o);
if (!(o instanceof Map))
return false;
Map<K,V> m = (Map<K,V>)o;
if (size != m.size())
return false;
for (int i = 0; i < keyUniverse.length; i++) {
if (null != vals[i]) {
K key = keyUniverse[i];
V value = unmaskNull(vals[i]);
if (null == value) {
if (!((null == m.get(key)) && m.containsKey(key)))
return false;
} else {
if (!value.equals(m.get(key)))
return false;
}
}
}
return true;
}
EnumMap em = (EnumMap)o; private boolean equals(EnumMap em) {
if (em.keyType != keyType) if (em.keyType != keyType)
return size == 0 && em.size == 0; return size == 0 && em.size == 0;
...@@ -649,6 +687,26 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> ...@@ -649,6 +687,26 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
return true; return true;
} }
/**
* Returns the hash code value for this map. The hash code of a map is
* defined to be the sum of the hash codes of each entry in the map.
*/
public int hashCode() {
int h = 0;
for (int i = 0; i < keyUniverse.length; i++) {
if (null != vals[i]) {
h += entryHashCode(i);
}
}
return h;
}
private int entryHashCode(int index) {
return (keyUniverse[index].hashCode() ^ vals[index].hashCode());
}
/** /**
* Returns a shallow copy of this enum map. (The values themselves * Returns a shallow copy of this enum map. (The values themselves
* are not cloned. * are not cloned.
...@@ -705,9 +763,13 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> ...@@ -705,9 +763,13 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
s.writeInt(size); s.writeInt(size);
// Write out keys and values (alternating) // Write out keys and values (alternating)
for (Map.Entry<K,V> e : entrySet()) { int entriesToBeWritten = size;
s.writeObject(e.getKey()); for (int i = 0; entriesToBeWritten > 0; i++) {
s.writeObject(e.getValue()); if (null != vals[i]) {
s.writeObject(keyUniverse[i]);
s.writeObject(unmaskNull(vals[i]));
entriesToBeWritten--;
}
} }
} }
......
...@@ -1818,9 +1818,9 @@ import sun.misc.FormattedFloatingDecimal; ...@@ -1818,9 +1818,9 @@ import sun.misc.FormattedFloatingDecimal;
* </pre></blockquote> * </pre></blockquote>
* *
* <p> The maximum number of arguments is limited by the maximum dimension of a * <p> The maximum number of arguments is limited by the maximum dimension of a
* Java array as defined by the <a * Java array as defined by
* href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Specification</a>. If the argument index is does not correspond to an * If the argument index is does not correspond to an
* available argument, then a {@link MissingFormatArgumentException} is thrown. * available argument, then a {@link MissingFormatArgumentException} is thrown.
* *
* <p> If there are more arguments than format specifiers, the extra arguments * <p> If there are more arguments than format specifiers, the extra arguments
...@@ -2403,8 +2403,7 @@ public final class Formatter implements Closeable, Flushable { ...@@ -2403,8 +2403,7 @@ public final class Formatter implements Closeable, Flushable {
* string. If there are more arguments than format specifiers, the * string. If there are more arguments than format specifiers, the
* extra arguments are ignored. The maximum number of arguments is * extra arguments are ignored. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>.
* *
* @throws IllegalFormatException * @throws IllegalFormatException
* If a format string contains an illegal syntax, a format * If a format string contains an illegal syntax, a format
...@@ -2443,8 +2442,7 @@ public final class Formatter implements Closeable, Flushable { ...@@ -2443,8 +2442,7 @@ public final class Formatter implements Closeable, Flushable {
* string. If there are more arguments than format specifiers, the * string. If there are more arguments than format specifiers, the
* extra arguments are ignored. The maximum number of arguments is * extra arguments are ignored. The maximum number of arguments is
* limited by the maximum dimension of a Java array as defined by * limited by the maximum dimension of a Java array as defined by
* the <a href="http://java.sun.com/docs/books/vmspec/">Java * <cite>The Java&trade; Virtual Machine Specification</cite>.
* Virtual Machine Specification</a>
* *
* @throws IllegalFormatException * @throws IllegalFormatException
* If a format string contains an illegal syntax, a format * If a format string contains an illegal syntax, a format
......
/* /*
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -829,71 +829,82 @@ public class IdentityHashMap<K,V> ...@@ -829,71 +829,82 @@ public class IdentityHashMap<K,V>
} }
} }
/**
* Since we don't use Entry objects, we use the Iterator
* itself as an entry.
*/
private class EntryIterator private class EntryIterator
extends IdentityHashMapIterator<Map.Entry<K,V>> extends IdentityHashMapIterator<Map.Entry<K,V>>
implements Map.Entry<K,V>
{ {
private Entry lastReturnedEntry = null;
public Map.Entry<K,V> next() { public Map.Entry<K,V> next() {
nextIndex(); lastReturnedEntry = new Entry(nextIndex());
return this; return lastReturnedEntry;
} }
public K getKey() { public void remove() {
// Provide a better exception than out of bounds index lastReturnedIndex =
if (lastReturnedIndex < 0) ((null == lastReturnedEntry) ? -1 : lastReturnedEntry.index);
throw new IllegalStateException("Entry was removed"); super.remove();
lastReturnedEntry.index = lastReturnedIndex;
return (K) unmaskNull(traversalTable[lastReturnedIndex]); lastReturnedEntry = null;
} }
public V getValue() { private class Entry implements Map.Entry<K,V> {
// Provide a better exception than out of bounds index private int index;
if (lastReturnedIndex < 0)
throw new IllegalStateException("Entry was removed");
return (V) traversalTable[lastReturnedIndex+1]; private Entry(int index) {
} this.index = index;
}
public V setValue(V value) { public K getKey() {
// It would be mean-spirited to proceed here if remove() called checkIndexForEntryUse();
if (lastReturnedIndex < 0) return (K) unmaskNull(traversalTable[index]);
throw new IllegalStateException("Entry was removed"); }
V oldValue = (V) traversalTable[lastReturnedIndex+1];
traversalTable[lastReturnedIndex+1] = value;
// if shadowing, force into main table
if (traversalTable != IdentityHashMap.this.table)
put((K) traversalTable[lastReturnedIndex], value);
return oldValue;
}
public boolean equals(Object o) { public V getValue() {
if (lastReturnedIndex < 0) checkIndexForEntryUse();
return super.equals(o); return (V) traversalTable[index+1];
}
if (!(o instanceof Map.Entry)) public V setValue(V value) {
return false; checkIndexForEntryUse();
Map.Entry e = (Map.Entry)o; V oldValue = (V) traversalTable[index+1];
return e.getKey() == getKey() && traversalTable[index+1] = value;
e.getValue() == getValue(); // if shadowing, force into main table
} if (traversalTable != IdentityHashMap.this.table)
put((K) traversalTable[index], value);
return oldValue;
}
public int hashCode() { public boolean equals(Object o) {
if (lastReturnedIndex < 0) if (index < 0)
return super.hashCode(); return super.equals(o);
return System.identityHashCode(getKey()) ^ if (!(o instanceof Map.Entry))
System.identityHashCode(getValue()); return false;
} Map.Entry e = (Map.Entry)o;
return (e.getKey() == unmaskNull(traversalTable[index]) &&
e.getValue() == traversalTable[index+1]);
}
public String toString() { public int hashCode() {
if (lastReturnedIndex < 0) if (lastReturnedIndex < 0)
return super.toString(); return super.hashCode();
return getKey() + "=" + getValue(); return (System.identityHashCode(unmaskNull(traversalTable[index])) ^
System.identityHashCode(traversalTable[index+1]));
}
public String toString() {
if (index < 0)
return super.toString();
return (unmaskNull(traversalTable[index]) + "="
+ traversalTable[index+1]);
}
private void checkIndexForEntryUse() {
if (index < 0)
throw new IllegalStateException("Entry was removed");
}
} }
} }
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
* *
* Written by Doug Lea and Josh Bloch with assistance from members of JCP * Written by Doug Lea and Josh Bloch with assistance from members of JCP
* JSR-166 Expert Group and released to the public domain, as explained at * JSR-166 Expert Group and released to the public domain, as explained at
* http://creativecommons.org/licenses/publicdomain * http://creativecommons.org/publicdomain/zero/1.0/
*/ */
package java.util; package java.util;
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册