OpenJDK / jdk8u / jdk8u / jdk
changeset 9231:be0647c2f89c
Merge
author | kvn |
---|---|
date | Thu, 11 Jul 2013 12:31:10 -0700 |
parents | 2465dffd6054 758c21301545 |
children | 116b000fd800 |
files | makefiles/CompileNativeLibraries.gmk src/share/classes/java/security/acl/package.html src/share/classes/java/security/cert/package.html src/share/classes/java/security/interfaces/package.html src/share/classes/java/security/package.html src/share/classes/java/security/spec/package.html src/share/classes/sun/security/krb5/internal/rcache/CacheTable.java src/share/classes/sun/security/krb5/internal/rcache/ReplayCache.java test/java/util/Comparators/BasicTest.java test/sun/security/krb5/auto/ReplayCache.java |
diffstat | 513 files changed, 15782 insertions(+), 7075 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Tue Jul 02 17:38:40 2013 -0700 +++ b/.hgtags Thu Jul 11 12:31:10 2013 -0700 @@ -217,3 +217,6 @@ 691d6c6cd332d98b0f0221445a73906776f31f72 jdk8-b93 51479fa56b7c4363c6d87c2e8b898d8185cf4b22 jdk8-b94 42aa9f1828852bb8b77e98ec695211493ae0759d jdk8-b95 +4a5d3cf2b3af1660db0237e8da324c140e534fa4 jdk8-b96 +978a95239044f26dcc8a6d59246be07ad6ca6be2 jdk8-b97 +c4908732fef5235f1b98cafe0ce507771ef7892c jdk8-b98
--- a/make/common/Release.gmk Tue Jul 02 17:38:40 2013 -0700 +++ b/make/common/Release.gmk Thu Jul 11 12:31:10 2013 -0700 @@ -252,7 +252,7 @@ $(INITIAL_IMAGE_JRE) $(INITIAL_IMAGE_JDK) \ trim-image-jre trim-image-jdk \ identify-image-jre identify-image-jdk \ - process-image-jre process-image-jdk sec-files sec-files-win jgss-files + process-image-jre process-image-jdk sec-files sec-files-win jgss-files endif # Don't use these @@ -400,7 +400,8 @@ # classes that go into jfr.jar JFR_CLASSES_DIRS= \ com/oracle/jrockit/jfr \ - oracle/jrockit/jfr + oracle/jrockit/jfr \ + jdk/jfr # classes that go into jsse.jar JSSE_CLASSES_DIRS = \ @@ -612,6 +613,7 @@ $(ECHO) "oracle/jrockit/jfr/parser/" >> $@ $(ECHO) "oracle/jrockit/jfr/settings/" >> $@ $(ECHO) "oracle/jrockit/jfr/tools/" >> $@ + $(ECHO) "jdk/jfr/" >> $@ endif endif
--- a/make/java/java/FILES_java.gmk Tue Jul 02 17:38:40 2013 -0700 +++ b/make/java/java/FILES_java.gmk Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2013, 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 @@ -529,7 +529,6 @@ sun/misc/JavaNioAccess.java \ sun/misc/Perf.java \ sun/misc/PerfCounter.java \ - sun/misc/Hashing.java \ sun/net/www/protocol/jar/Handler.java \ sun/net/www/protocol/jar/JarURLConnection.java \ sun/net/www/protocol/file/Handler.java \
--- a/make/sun/font/Makefile Tue Jul 02 17:38:40 2013 -0700 +++ b/make/sun/font/Makefile Thu Jul 11 12:31:10 2013 -0700 @@ -36,7 +36,11 @@ CPLUSPLUSLIBRARY=true # Use higher optimization level +ifeq ($(PLATFORM), windows) +OPTIMIZATION_LEVEL = HIGHEST +else OPTIMIZATION_LEVEL = HIGHER +endif include $(BUILDDIR)/common/Defs.gmk
--- a/makefiles/CompileNativeLibraries.gmk Tue Jul 02 17:38:40 2013 -0700 +++ b/makefiles/CompileNativeLibraries.gmk Thu Jul 11 12:31:10 2013 -0700 @@ -1332,7 +1332,7 @@ ifeq ($(OPENJDK_TARGET_OS),windows) LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \ X11TextRenderer.c - LIBFONTMANAGER_OPTIMIZATION:=LOW +LIBFONTMANAGER_OPTIMIZATION:=HIGHEST else LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \ lcdglyph.c
--- a/makefiles/CreateJars.gmk Tue Jul 02 17:38:40 2013 -0700 +++ b/makefiles/CreateJars.gmk Thu Jul 11 12:31:10 2013 -0700 @@ -132,7 +132,7 @@ ########################################################################################## # Full JRE exclude list for rt.jar and resources.jar -# This value should exclude types destined for jars other than rt.jar and resources.jar. +# This value should exclude types destined for jars other than rt.jar and resources.jar. # When building a Profile this value augments the profile specific exclusions RT_JAR_EXCLUDES += \ com/oracle/security \ @@ -246,7 +246,8 @@ sun/util/resources/cldr \ $(LOCALEDATA_INCLUDES) \ com/oracle/jrockit/jfr \ - oracle/jrockit/jfr + oracle/jrockit/jfr \ + jdk/jfr ifeq ($(OPENJDK_TARGET_OS), macosx) RT_JAR_EXCLUDES += com/sun/nio/sctp \ @@ -337,7 +338,7 @@ # Support for removing the addPropertyChangeListener and removePropertyChangeListener -# methods from classes that only go into the profile builds. +# methods from classes that only go into the profile builds. BEANLESS_CLASSES = $(IMAGES_OUTPUTDIR)/beanless # When there are $ characters in filenames we have some very subtle interactions between @@ -352,7 +353,7 @@ java/util/jar/Pack200\$$Packer.class \ java/util/jar/Pack200\$$Unpacker.class \ com/sun/java/util/jar/pack/PackerImpl.class \ - com/sun/java/util/jar/pack/UnpackerImpl.class + com/sun/java/util/jar/pack/UnpackerImpl.class ifneq ($(PROFILE),) BEANLESS_CLASSES_TARGETS := $(addprefix $(BEANLESS_CLASSES)/, $(CLASSES_TO_DEBEAN)) @@ -428,7 +429,8 @@ SRCS:=$(JDK_OUTPUTDIR)/classes,\ SUFFIXES:=.class .jfc .xsd,\ INCLUDES:=com/oracle/jrockit/jfr \ - oracle/jrockit/jfr,\ + oracle/jrockit/jfr \ + jdk/jfr,\ JAR:=$(IMAGES_OUTPUTDIR)/lib/jfr.jar,\ SKIP_METAINF:=true,\ MANIFEST:=$(MAINMANIFEST), \ @@ -468,14 +470,14 @@ $(MV) $@.tmp $@ ########################################################################################## -# For security and crypto jars, always build the jar, but for closed, install the prebuilt -# signed version instead of the newly built jar. Unsigned jars are treated as intermediate -# targets and explicitly added to the JARS list. For open, signing is not needed. See +# For security and crypto jars, always build the jar, but for closed, install the prebuilt +# signed version instead of the newly built jar. Unsigned jars are treated as intermediate +# targets and explicitly added to the JARS list. For open, signing is not needed. See # SignJars.gmk for more information. # # The source for the crypto jars is not available for all licensees. The BUILD_CRYPTO # variable is set to no if these jars can't be built to skip that step of the build. -# Note that for OPENJDK, the build will fail if BUILD_CRYPTO=no since then there is no +# Note that for OPENJDK, the build will fail if BUILD_CRYPTO=no since then there is no # other way to get the jars than to build them. SUNPKCS11_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunpkcs11.jar @@ -738,7 +740,7 @@ @$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt OracleUcrypto provider..." $(install-file) -JARS += $(UCRYPTO_JAR_UNSIGNED) +JARS += $(UCRYPTO_JAR_UNSIGNED) endif endif
--- a/makefiles/profile-includes.txt Tue Jul 02 17:38:40 2013 -0700 +++ b/makefiles/profile-includes.txt Thu Jul 11 12:31:10 2013 -0700 @@ -125,13 +125,11 @@ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jaas_unix$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java_crw_demo$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java_crw_demo.diz \ - $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jfr$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt.diz \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management.diz \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX) \ - jfr.jar \ jvm.hprof.txt \ management-agent.jar \ management/jmxremote.access \ @@ -164,6 +162,7 @@ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX) \ + $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jfr$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsound$(SHARED_LIBRARY_SUFFIX) \ $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsoundalsa$(SHARED_LIBRARY_SUFFIX) \ @@ -214,6 +213,7 @@ images/cursors/motif_MoveDrop32x32.gif \ images/cursors/motif_MoveNoDrop32x32.gif \ jexec \ + jfr.jar \ oblique-fonts/LucidaSansDemiOblique.ttf \ oblique-fonts/LucidaSansOblique.ttf \ oblique-fonts/LucidaTypewriterBoldOblique.ttf \
--- a/makefiles/sun/awt/ToBin.java Tue Jul 02 17:38:40 2013 -0700 +++ b/makefiles/sun/awt/ToBin.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2013 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2013, 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
--- a/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java Thu Jul 11 12:31:10 2013 -0700 @@ -127,8 +127,21 @@ } } + /** + * When the parent window is activated this method is called for all EmbeddedFrames in it. + * + * For the CEmbeddedFrame which had focus before the deactivation this method triggers + * focus events in the following order: + * 1. WINDOW_ACTIVATED for this EmbeddedFrame + * 2. WINDOW_GAINED_FOCUS for this EmbeddedFrame + * 3. FOCUS_GAINED for the most recent focus owner in this EmbeddedFrame + * + * The caller must not requestFocus on the EmbeddedFrame together with calling this method. + * + * @param parentWindowActive true if the window is activated, false otherwise + */ // handleWindowFocusEvent is called for all applets, when the browser - // becames active/inactive. This event should be filtered out for + // becomes active/inactive. This event should be filtered out for // non-focused applet. This method can be called from different threads. public void handleWindowFocusEvent(boolean parentWindowActive) { this.parentWindowActive = parentWindowActive;
--- a/src/macosx/native/sun/awt/AWTEvent.m Tue Jul 02 17:38:40 2013 -0700 +++ b/src/macosx/native/sun/awt/AWTEvent.m Thu Jul 11 12:31:10 2013 -0700 @@ -382,7 +382,7 @@ { TISInputSourceRef currentKeyboard = TISCopyCurrentKeyboardInputSource(); CFDataRef uchr = (CFDataRef)TISGetInputSourceProperty(currentKeyboard, kTISPropertyUnicodeKeyLayoutData); - if (uchr == nil) { return; } + if (uchr == nil) { return 0; } const UCKeyboardLayout *keyboardLayout = (const UCKeyboardLayout*)CFDataGetBytePtr(uchr); // Carbon modifiers should be used instead of NSEvent modifiers UInt32 modifierKeyState = (GetCurrentEventKeyModifiers() >> 8) & 0xFF;
--- a/src/share/classes/java/beans/XMLEncoder.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/beans/XMLEncoder.java Thu Jul 11 12:31:10 2013 -0700 @@ -377,7 +377,7 @@ Object arg = args[i]; mark(arg, true); } - mark(stm.getTarget(), false); + mark(stm.getTarget(), stm instanceof Expression); }
--- a/src/share/classes/java/lang/Boolean.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Boolean.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2013, 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 @@ -205,9 +205,9 @@ * Returns a hash code for a {@code boolean} value; compatible with * {@code Boolean.hashCode()}. * + * @param value the value to hash + * @return a hash code value for a {@code boolean} value. * @since 1.8 - * - * @return a hash code value for a {@code boolean} value. */ public static int hashCode(boolean value) { return value ? 1231 : 1237;
--- a/src/share/classes/java/lang/Byte.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Byte.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -398,9 +398,9 @@ * Returns a hash code for a {@code byte} value; compatible with * {@code Byte.hashCode()}. * + * @param value the value to hash + * @return a hash code value for a {@code byte} value. * @since 1.8 - * - * @return a hash code value for a {@code byte} value. */ public static int hashCode(byte value) { return (int)value;
--- a/src/share/classes/java/lang/Class.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Class.java Thu Jul 11 12:31:10 2013 -0700 @@ -3250,6 +3250,8 @@ * could not be checked at runtime (because generic types are implemented * by erasure). * + * @param <U> the type to cast this class object to + * @param clazz the class of the type to cast this class object to * @return this {@code Class} object, cast to represent a subclass of * the specified class object. * @throws ClassCastException if this {@code Class} object does not @@ -3405,6 +3407,7 @@ * If this Class represents either the Object class, an interface type, an * array type, a primitive type, or void, the return value is null. * + * @return an object representing the superclass * @since 1.8 */ public AnnotatedType getAnnotatedSuperclass() { @@ -3436,6 +3439,7 @@ * If this Class represents either the Object class, an array type, a * primitive type, or void, the return value is an array of length 0. * + * @return an array representing the superinterfaces * @since 1.8 */ public AnnotatedType[] getAnnotatedInterfaces() {
--- a/src/share/classes/java/lang/Double.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Double.java Thu Jul 11 12:31:10 2013 -0700 @@ -453,8 +453,7 @@ * a {@code NumberFormatException} be thrown, the regular * expression below can be used to screen the input string: * - * <code> - * <pre> + * <pre>{@code * final String Digits = "(\\p{Digit}+)"; * final String HexDigits = "(\\p{XDigit}+)"; * // an exponent is 'e' or 'E' followed by an optionally @@ -474,7 +473,7 @@ * // in addition to strings of floating-point literals, the * // two sub-patterns below are simplifications of the grammar * // productions from section 3.10.2 of - * // <cite>The Java™ Language Specification</cite>. + * // The Java Language Specification. * * // Digits ._opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt * "((("+Digits+"(\\.)?("+Digits+"?)("+Exp+")?)|"+ @@ -499,8 +498,7 @@ * else { * // Perform suitable alternative action * } - * </pre> - * </code> + * }</pre> * * @param s the string to be parsed. * @return a {@code Double} object holding the value @@ -756,9 +754,9 @@ * Returns a hash code for a {@code double} value; compatible with * {@code Double.hashCode()}. * + * @param value the value to hash + * @return a hash code value for a {@code double} value. * @since 1.8 - * - * @return a hash code value for a {@code double} value. */ public static int hashCode(double value) { long bits = doubleToLongBits(value);
--- a/src/share/classes/java/lang/Float.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Float.java Thu Jul 11 12:31:10 2013 -0700 @@ -664,9 +664,9 @@ * Returns a hash code for a {@code float} value; compatible with * {@code Float.hashCode()}. * + * @param value the value to hash + * @return a hash code value for a {@code float} value. * @since 1.8 - * - * @return a hash code value for a {@code float} value. */ public static int hashCode(float value) { return floatToIntBits(value);
--- a/src/share/classes/java/lang/Integer.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Integer.java Thu Jul 11 12:31:10 2013 -0700 @@ -951,6 +951,7 @@ * Returns a hash code for a {@code int} value; compatible with * {@code Integer.hashCode()}. * + * @param value the value to hash * @since 1.8 * * @return a hash code value for a {@code int} value. @@ -1336,6 +1337,7 @@ * one-bits in its two's complement binary representation, that is, if it * is equal to zero. * + * @param i the value whose highest one bit is to be computed * @return an {@code int} value with a single one-bit, in the position * of the highest-order one-bit in the specified value, or zero if * the specified value is itself equal to zero. @@ -1358,6 +1360,7 @@ * one-bits in its two's complement binary representation, that is, if it * is equal to zero. * + * @param i the value whose lowest one bit is to be computed * @return an {@code int} value with a single one-bit, in the position * of the lowest-order one-bit in the specified value, or zero if * the specified value is itself equal to zero. @@ -1382,6 +1385,7 @@ * <li>ceil(log<sub>2</sub>(x)) = {@code 32 - numberOfLeadingZeros(x - 1)} * </ul> * + * @param i the value whose number of leading zeros is to be computed * @return the number of zero bits preceding the highest-order * ("leftmost") one-bit in the two's complement binary representation * of the specified {@code int} value, or 32 if the value @@ -1408,6 +1412,7 @@ * one-bits in its two's complement representation, in other words if it is * equal to zero. * + * @param i the value whose number of trailing zeros is to be computed * @return the number of zero bits following the lowest-order ("rightmost") * one-bit in the two's complement binary representation of the * specified {@code int} value, or 32 if the value is equal @@ -1431,6 +1436,7 @@ * representation of the specified {@code int} value. This function is * sometimes referred to as the <i>population count</i>. * + * @param i the value whose bits are to be counted * @return the number of one-bits in the two's complement binary * representation of the specified {@code int} value. * @since 1.5 @@ -1458,6 +1464,8 @@ * ignored, even if the distance is negative: {@code rotateLeft(val, * distance) == rotateLeft(val, distance & 0x1F)}. * + * @param i the value whose bits are to be rotated left + * @param distance the number of bit positions to rotate left * @return the value obtained by rotating the two's complement binary * representation of the specified {@code int} value left by the * specified number of bits. @@ -1480,6 +1488,8 @@ * ignored, even if the distance is negative: {@code rotateRight(val, * distance) == rotateRight(val, distance & 0x1F)}. * + * @param i the value whose bits are to be rotated right + * @param distance the number of bit positions to rotate right * @return the value obtained by rotating the two's complement binary * representation of the specified {@code int} value right by the * specified number of bits. @@ -1494,6 +1504,7 @@ * two's complement binary representation of the specified {@code int} * value. * + * @param i the value to be reversed * @return the value obtained by reversing order of the bits in the * specified {@code int} value. * @since 1.5 @@ -1513,6 +1524,7 @@ * return value is -1 if the specified value is negative; 0 if the * specified value is zero; and 1 if the specified value is positive.) * + * @param i the value whose signum is to be computed * @return the signum function of the specified {@code int} value. * @since 1.5 */ @@ -1525,6 +1537,7 @@ * Returns the value obtained by reversing the order of the bytes in the * two's complement representation of the specified {@code int} value. * + * @param i the value whose bytes are to be reversed * @return the value obtained by reversing the bytes in the specified * {@code int} value. * @since 1.5
--- a/src/share/classes/java/lang/Long.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Long.java Thu Jul 11 12:31:10 2013 -0700 @@ -1053,9 +1053,9 @@ * Returns a hash code for a {@code long} value; compatible with * {@code Long.hashCode()}. * + * @param value the value to hash + * @return a hash code value for a {@code long} value. * @since 1.8 - * - * @return a hash code value for a {@code long} value. */ public static int hashCode(long value) { return (int)(value ^ (value >>> 32)); @@ -1357,6 +1357,7 @@ * one-bits in its two's complement binary representation, that is, if it * is equal to zero. * + * @param i the value whose highest one bit is to be computed * @return a {@code long} value with a single one-bit, in the position * of the highest-order one-bit in the specified value, or zero if * the specified value is itself equal to zero. @@ -1380,6 +1381,7 @@ * one-bits in its two's complement binary representation, that is, if it * is equal to zero. * + * @param i the value whose lowest one bit is to be computed * @return a {@code long} value with a single one-bit, in the position * of the lowest-order one-bit in the specified value, or zero if * the specified value is itself equal to zero. @@ -1404,6 +1406,7 @@ * <li>ceil(log<sub>2</sub>(x)) = {@code 64 - numberOfLeadingZeros(x - 1)} * </ul> * + * @param i the value whose number of leading zeros is to be computed * @return the number of zero bits preceding the highest-order * ("leftmost") one-bit in the two's complement binary representation * of the specified {@code long} value, or 64 if the value @@ -1432,6 +1435,7 @@ * one-bits in its two's complement representation, in other words if it is * equal to zero. * + * @param i the value whose number of trailing zeros is to be computed * @return the number of zero bits following the lowest-order ("rightmost") * one-bit in the two's complement binary representation of the * specified {@code long} value, or 64 if the value is equal @@ -1456,6 +1460,7 @@ * representation of the specified {@code long} value. This function is * sometimes referred to as the <i>population count</i>. * + * @param i the value whose bits are to be counted * @return the number of one-bits in the two's complement binary * representation of the specified {@code long} value. * @since 1.5 @@ -1484,6 +1489,8 @@ * ignored, even if the distance is negative: {@code rotateLeft(val, * distance) == rotateLeft(val, distance & 0x3F)}. * + * @param i the value whose bits are to be rotated left + * @param distance the number of bit positions to rotate left * @return the value obtained by rotating the two's complement binary * representation of the specified {@code long} value left by the * specified number of bits. @@ -1506,6 +1513,8 @@ * ignored, even if the distance is negative: {@code rotateRight(val, * distance) == rotateRight(val, distance & 0x3F)}. * + * @param i the value whose bits are to be rotated right + * @param distance the number of bit positions to rotate right * @return the value obtained by rotating the two's complement binary * representation of the specified {@code long} value right by the * specified number of bits. @@ -1520,6 +1529,7 @@ * two's complement binary representation of the specified {@code long} * value. * + * @param i the value to be reversed * @return the value obtained by reversing order of the bits in the * specified {@code long} value. * @since 1.5 @@ -1540,6 +1550,7 @@ * return value is -1 if the specified value is negative; 0 if the * specified value is zero; and 1 if the specified value is positive.) * + * @param i the value whose signum is to be computed * @return the signum function of the specified {@code long} value. * @since 1.5 */ @@ -1552,6 +1563,7 @@ * Returns the value obtained by reversing the order of the bytes in the * two's complement representation of the specified {@code long} value. * + * @param i the value whose bytes are to be reversed * @return the value obtained by reversing the bytes in the specified * {@code long} value. * @since 1.5
--- a/src/share/classes/java/lang/Package.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Package.java Thu Jul 11 12:31:10 2013 -0700 @@ -77,18 +77,18 @@ * by the following formal grammar: * <blockquote> * <dl> - * <dt><i>SpecificationVersion: - * <dd>Digits RefinedVersion<sub>opt</sub></i> + * <dt><i>SpecificationVersion:</i> + * <dd><i>Digits RefinedVersion<sub>opt</sub></i> - * <p><dt><i>RefinedVersion:</i> + * <dt><i>RefinedVersion:</i> * <dd>{@code .} <i>Digits</i> * <dd>{@code .} <i>Digits RefinedVersion</i> * - * <p><dt><i>Digits: - * <dd>Digit - * <dd>Digits</i> + * <dt><i>Digits:</i> + * <dd><i>Digit</i> + * <dd><i>Digits</i> * - * <p><dt><i>Digit:</i> + * <dt><i>Digit:</i> * <dd>any character for which {@link Character#isDigit} returns {@code true}, * e.g. 0, 1, 2, ... * </dl>
--- a/src/share/classes/java/lang/Runtime.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Runtime.java Thu Jul 11 12:31:10 2013 -0700 @@ -117,11 +117,11 @@ * * <ul> * - * <p> <li> The program <i>exits</i> normally, when the last non-daemon + * <li> The program <i>exits</i> normally, when the last non-daemon * thread exits or when the <tt>{@link #exit exit}</tt> (equivalently, - * <tt>{@link System#exit(int) System.exit}</tt>) method is invoked, or + * {@link System#exit(int) System.exit}) method is invoked, or * - * <p> <li> The virtual machine is <i>terminated</i> in response to a + * <li> The virtual machine is <i>terminated</i> in response to a * user interrupt, such as typing <tt>^C</tt>, or a system-wide event, * such as user logoff or system shutdown. *
--- a/src/share/classes/java/lang/Short.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Short.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -403,9 +403,9 @@ * Returns a hash code for a {@code short} value; compatible with * {@code Short.hashCode()}. * + * @param value the value to hash + * @return a hash code value for a {@code short} value. * @since 1.8 - * - * @return a hash code value for a {@code short} value. */ public static int hashCode(short value) { return (int)value; @@ -482,6 +482,7 @@ * Returns the value obtained by reversing the order of the bytes in the * two's complement representation of the specified {@code short} value. * + * @param i the value whose bytes are to be reversed * @return the value obtained by reversing (or, equivalently, swapping) * the bytes in the specified {@code short} value. * @since 1.5
--- a/src/share/classes/java/lang/StrictMath.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/StrictMath.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2013, 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 @@ -1419,6 +1419,7 @@ * {@link Float#MIN_EXPONENT} -1. * </ul> * @param f a {@code float} value + * @return the unbiased exponent of the argument * @since 1.6 */ public static int getExponent(float f) { @@ -1436,6 +1437,7 @@ * {@link Double#MIN_EXPONENT} -1. * </ul> * @param d a {@code double} value + * @return the unbiased exponent of the argument * @since 1.6 */ public static int getExponent(double d) {
--- a/src/share/classes/java/lang/SuppressWarnings.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/SuppressWarnings.java Thu Jul 11 12:31:10 2013 -0700 @@ -66,6 +66,7 @@ * additional warning names they support in conjunction with this * annotation type. They are encouraged to cooperate to ensure * that the same names work across multiple compilers. + * @return the set of warnings to be suppressed */ String[] value(); }
--- a/src/share/classes/java/lang/System.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/System.java Thu Jul 11 12:31:10 2013 -0700 @@ -634,6 +634,8 @@ * * <p>On UNIX systems, it returns {@code "\n"}; on Microsoft * Windows systems it returns {@code "\r\n"}. + * + * @return the system-dependent line separator string * @since 1.7 */ public static String lineSeparator() {
--- a/src/share/classes/java/lang/Thread.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/Thread.java Thu Jul 11 12:31:10 2013 -0700 @@ -1993,12 +1993,21 @@ // The following three initially uninitialized fields are exclusively - // managed by class java.util.concurrent.ThreadLocalRandom. + // managed by class java.util.concurrent.ThreadLocalRandom. These + // fields are used to build the high-performance PRNGs in the + // concurrent code, and we can not risk accidental false sharing. + // Hence, the fields are isolated with @Contended. + /** The current seed for a ThreadLocalRandom */ + @sun.misc.Contended("tlr") long threadLocalRandomSeed; + /** Probe hash value; nonzero if threadLocalRandomSeed initialized */ + @sun.misc.Contended("tlr") int threadLocalRandomProbe; + /** Secondary seed isolated from public ThreadLocalRandom sequence */ + @sun.misc.Contended("tlr") int threadLocalRandomSecondarySeed; /* Some private helper methods */
--- a/src/share/classes/java/lang/annotation/Annotation.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/annotation/Annotation.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, 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 @@ -126,6 +126,7 @@ /** * Returns the annotation type of this annotation. + * @return the annotation type of this annotation */ Class<? extends Annotation> annotationType(); }
--- a/src/share/classes/java/lang/annotation/Repeatable.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/annotation/Repeatable.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2013, 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 @@ -43,6 +43,7 @@ /** * Indicates the <em>containing annotation type</em> for the * repeatable annotation type. + * @return the containing annotation type */ Class<? extends Annotation> value(); }
--- a/src/share/classes/java/lang/annotation/Retention.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/annotation/Retention.java Thu Jul 11 12:31:10 2013 -0700 @@ -44,5 +44,9 @@ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Retention { + /** + * Returns the retention policy. + * @return the retention policy + */ RetentionPolicy value(); }
--- a/src/share/classes/java/lang/annotation/Target.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/annotation/Target.java Thu Jul 11 12:31:10 2013 -0700 @@ -67,5 +67,11 @@ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Target { + /** + * Returns an array of the kinds of elements an annotation type + * can be applied to. + * @return an array of the kinds of elements an annotation type + * can be applied to + */ ElementType[] value(); }
--- a/src/share/classes/java/lang/instrument/Instrumentation.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/instrument/Instrumentation.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, 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 @@ -363,6 +363,8 @@ * Primitive classes (for example, <code>java.lang.Integer.TYPE</code>) * and array classes are never modifiable. * + * @param theClass the class to check for being modifiable + * @return whether or not the argument class is modifiable * @throws java.lang.NullPointerException if the specified class is <code>null</code>. * * @see #retransformClasses @@ -549,14 +551,14 @@ * {@link java.lang.instrument.ClassFileTransformer ClassFileTransformer}, * it enables native methods to be * instrumented. - * <p/> + * <p> * Since native methods cannot be directly instrumented * (they have no bytecodes), they must be wrapped with * a non-native method which can be instrumented. * For example, if we had: * <pre> * native boolean foo(int x);</pre> - * <p/> + * <p> * We could transform the class file (with the * ClassFileTransformer during the initial definition * of the class) so that this becomes: @@ -567,14 +569,14 @@ * } * * native boolean wrapped_foo(int x);</pre> - * <p/> + * <p> * Where <code>foo</code> becomes a wrapper for the actual native * method with the appended prefix "wrapped_". Note that * "wrapped_" would be a poor choice of prefix since it * might conceivably form the name of an existing method * thus something like "$$$MyAgentWrapped$$$_" would be * better but would make these examples less readable. - * <p/> + * <p> * The wrapper will allow data to be collected on the native * method call, but now the problem becomes linking up the * wrapped method with the native implementation. @@ -583,7 +585,7 @@ * which might be: * <pre> * Java_somePackage_someClass_foo(JNIEnv* env, jint x)</pre> - * <p/> + * <p> * This function allows the prefix to be specified and the * proper resolution to occur. * Specifically, when the standard resolution fails, the @@ -596,29 +598,29 @@ * <pre>{@code * method(foo) -> nativeImplementation(foo) * }</pre> - * <p/> + * <p> * When this fails, the resolution will be retried with * the specified prefix prepended to the method name, * yielding the correct resolution: * <pre>{@code * method(wrapped_foo) -> nativeImplementation(foo) * }</pre> - * <p/> + * <p> * For automatic resolution, the JVM will attempt: * <pre>{@code * method(wrapped_foo) -> nativeImplementation(wrapped_foo) * }</pre> - * <p/> + * <p> * When this fails, the resolution will be retried with * the specified prefix deleted from the implementation name, * yielding the correct resolution: * <pre>{@code * method(wrapped_foo) -> nativeImplementation(foo) * }</pre> - * <p/> + * <p> * Note that since the prefix is only used when standard * resolution fails, native methods can be wrapped selectively. - * <p/> + * <p> * Since each <code>ClassFileTransformer</code> * can do its own transformation of the bytecodes, more * than one layer of wrappers may be applied. Thus each
--- a/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Thu Jul 11 12:31:10 2013 -0700 @@ -112,7 +112,9 @@ implMethodDesc = implMethodType.toMethodDescriptorString(); Type implMethodAsmType = Type.getMethodType(implMethodDesc); implMethodArgumentTypes = implMethodAsmType.getArgumentTypes(); - implMethodReturnType = implMethodAsmType.getReturnType(); + implMethodReturnType = (implKind == MethodHandleInfo.REF_newInvokeSpecial) + ? Type.getObjectType(implMethodClassName) + : implMethodAsmType.getReturnType(); constructorType = invokedType.changeReturnType(Void.TYPE); constructorDesc = constructorType.toMethodDescriptorString(); lambdaClassName = targetClass.getName().replace('.', '/') + "$$Lambda$" + counter.incrementAndGet();
--- a/src/share/classes/java/lang/invoke/LambdaConversionException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/LambdaConversionException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2013, 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 @@ -29,21 +29,45 @@ * LambdaConversionException */ public class LambdaConversionException extends Exception { + /** + * Constructs a {@code LambdaConversionException}. + */ public LambdaConversionException() { } + /** + * Constructs a {@code LambdaConversionException} with a message. + * @param message the detail message + */ public LambdaConversionException(String message) { super(message); } + /** + * Constructs a {@code LambdaConversionException} with a message and cause. + * @param message the detail message + * @param cause the cause + */ public LambdaConversionException(String message, Throwable cause) { super(message, cause); } + /** + * Constructs a {@code LambdaConversionException} with a cause. + * @param cause the cause + */ public LambdaConversionException(Throwable cause) { super(cause); } + /** + * Constructs a {@code LambdaConversionException} with a message, + * cause, and other settings. + * @param message the detail message + * @param cause the cause + * @param enableSuppression whether or not suppressed exceptions are enabled + * @param writableStackTrace whether or not the stack trace is writable + */ public LambdaConversionException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); }
--- a/src/share/classes/java/lang/invoke/LambdaMetafactory.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/LambdaMetafactory.java Thu Jul 11 12:31:10 2013 -0700 @@ -111,7 +111,7 @@ * done on return type, while a strict version is applied to arguments. * * <p>A type Q is considered adaptable to S as follows: - * <table> + * <table summary="adaptable types"> * <tr><th>Q</th><th>S</th><th>Link-time checks</th><th>Capture-time checks</th></tr> * <tr> * <td>Primitive</td><td>Primitive</td> @@ -155,7 +155,7 @@ private static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0]; -/** + /** * Standard meta-factory for conversion of lambda expressions or method references to functional interfaces. * * @param caller Stacked automatically by VM; represents a lookup context with the accessibility privileges @@ -174,7 +174,7 @@ * @param instantiatedMethodType The signature of the primary functional interface method after type variables * are substituted with their instantiation from the capture site * @return a CallSite, which, when invoked, will return an instance of the functional interface - * @throws ReflectiveOperationException + * @throws ReflectiveOperationException if the caller is not able to reconstruct one of the method handles * @throws LambdaConversionException If any of the meta-factory protocol invariants are violated */ public static CallSite metaFactory(MethodHandles.Lookup caller, @@ -226,7 +226,7 @@ * the first argument in the invocation signature will correspond to the receiver. * @param args argument to pass, flags, marker interface count, and marker interfaces as described above * @return a CallSite, which, when invoked, will return an instance of the functional interface - * @throws ReflectiveOperationException + * @throws ReflectiveOperationException if the caller is not able to reconstruct one of the method handles * @throws LambdaConversionException If any of the meta-factory protocol invariants are violated */ public static CallSite altMetaFactory(MethodHandles.Lookup caller,
--- a/src/share/classes/java/lang/invoke/MethodHandle.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/MethodHandle.java Thu Jul 11 12:31:10 2013 -0700 @@ -44,7 +44,7 @@ * {@linkplain java.lang.invoke.MethodHandles#dropArguments deletion}, * and {@linkplain java.lang.invoke.MethodHandles#filterArguments substitution}. * - * <h3>Method handle contents</h3> + * <h1>Method handle contents</h1> * Method handles are dynamically and strongly typed according to their parameter and return types. * They are not distinguished by the name or the defining class of their underlying methods. * A method handle must be invoked using a symbolic type descriptor which matches @@ -81,7 +81,7 @@ * from its specific class, as the method handle class hierarchy (if any) * may change from time to time or across implementations from different vendors. * - * <h3>Method handle compilation</h3> + * <h1>Method handle compilation</h1> * A Java method call expression naming {@code invokeExact} or {@code invoke} * can invoke a method handle from Java source code. * From the viewpoint of source code, these methods can take any arguments @@ -111,7 +111,7 @@ * The ambiguity with the type {@code Void} is harmless, since there are no references of type * {@code Void} except the null reference. * - * <h3>Method handle invocation</h3> + * <h1>Method handle invocation</h1> * The first time a {@code invokevirtual} instruction is executed * it is linked, by symbolically resolving the names in the instruction * and verifying that the method call is statically legal. @@ -154,7 +154,7 @@ * (<em>Note:</em> The adjusted method handle {@code M2} is not directly observable, * and implementations are therefore not required to materialize it.) * - * <h3>Invocation checking</h3> + * <h1>Invocation checking</h1> * In typical programs, method handle type matching will usually succeed. * But if a match fails, the JVM will throw a {@link WrongMethodTypeException}, * either directly (in the case of {@code invokeExact}) or indirectly as if @@ -195,7 +195,7 @@ * They should not be passed to untrusted code unless their use from * the untrusted code would be harmless. * - * <h3>Method handle creation</h3> + * <h1>Method handle creation</h1> * Java code can create a method handle that directly accesses * any method, constructor, or field that is accessible to that code. * This is done via a reflective, capability-based API called @@ -249,7 +249,7 @@ * receiver type. Such a method handle simulates the effect of * an {@code invokespecial} instruction to the same method. * - * <h3>Usage examples</h3> + * <h1>Usage examples</h1> * Here are some examples of usage: * <p><blockquote><pre>{@code Object x, y; String s; int i; @@ -295,7 +295,7 @@ * be a method which calls {@link java.util.Objects#equals(Object,Object) Objects.equals } * on its arguments, and asserts that the result is true. * - * <h3>Exceptions</h3> + * <h1>Exceptions</h1> * The methods {@code invokeExact} and {@code invoke} are declared * to throw {@link java.lang.Throwable Throwable}, * which is to say that there is no static restriction on what a method handle @@ -308,7 +308,7 @@ * throwables locally, rethrowing only those which are legal in the context, * and wrapping ones which are illegal. * - * <h3><a name="sigpoly"></a>Signature polymorphism</h3> + * <h1><a name="sigpoly"></a>Signature polymorphism</h1> * The unusual compilation and linkage behavior of * {@code invokeExact} and plain {@code invoke} * is referenced by the term <em>signature polymorphism</em>. @@ -333,7 +333,7 @@ * Tools which determine symbolic linkage are required to accept such * untransformed descriptors, without reporting linkage errors. * - * <h3>Interoperation between method handles and the Core Reflection API</h3> + * <h1>Interoperation between method handles and the Core Reflection API</h1> * Using factory methods in the {@link java.lang.invoke.MethodHandles.Lookup Lookup} API, * any class member represented by a Core Reflection API object * can be converted to a behaviorally equivalent method handle. @@ -375,7 +375,7 @@ * to call {@code invokeExact} or plain {@code invoke}, * for any specified type descriptor . * - * <h3>Interoperation between method handles and Java generics</h3> + * <h1>Interoperation between method handles and Java generics</h1> * A method handle can be obtained on a method, constructor, or field * which is declared with Java generic types. * As with the Core Reflection API, the type of the method handle @@ -457,6 +457,8 @@ * {@link java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke}, via JNI, * or indirectly via {@link java.lang.invoke.MethodHandles.Lookup#unreflect Lookup.unreflect}, * it will throw an {@code UnsupportedOperationException}. + * @param args the signature-polymorphic parameter list, statically represented using varargs + * @return the signature-polymorphic result, statically represented using {@code Object} * @throws WrongMethodTypeException if the target's type is not identical with the caller's symbolic type descriptor * @throws Throwable anything thrown by the underlying method propagates unchanged through the method handle call */ @@ -491,6 +493,8 @@ * {@link java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke}, via JNI, * or indirectly via {@link java.lang.invoke.MethodHandles.Lookup#unreflect Lookup.unreflect}, * it will throw an {@code UnsupportedOperationException}. + * @param args the signature-polymorphic parameter list, statically represented using varargs + * @return the signature-polymorphic result, statically represented using {@code Object} * @throws WrongMethodTypeException if the target's type cannot be adjusted to the caller's symbolic type descriptor * @throws ClassCastException if the target's type can be adjusted to the caller, but a reference cast fails * @throws Throwable anything thrown by the underlying method propagates unchanged through the method handle call @@ -511,15 +515,26 @@ * operations on outgoing argument values.) * The caller can assume that the incoming result value is part of the range * of the callee's return type. + * @param args the signature-polymorphic parameter list, statically represented using varargs + * @return the signature-polymorphic result, statically represented using {@code Object} */ /*non-public*/ final native @PolymorphicSignature Object invokeBasic(Object... args) throws Throwable; + /** + * Private method for trusted invocation of a MemberName of kind {@code REF_invokeVirtual}. + * The caller signature is restricted to basic types as with {@code invokeBasic}. + * The trailing (not leading) argument must be a MemberName. + * @param args the signature-polymorphic parameter list, statically represented using varargs + * @return the signature-polymorphic result, statically represented using {@code Object} + */ /*non-public*/ static native @PolymorphicSignature Object linkToVirtual(Object... args) throws Throwable; /** * Private method for trusted invocation of a MemberName of kind {@code REF_invokeStatic}. * The caller signature is restricted to basic types as with {@code invokeBasic}. * The trailing (not leading) argument must be a MemberName. + * @param args the signature-polymorphic parameter list, statically represented using varargs + * @return the signature-polymorphic result, statically represented using {@code Object} */ /*non-public*/ static native @PolymorphicSignature Object linkToStatic(Object... args) throws Throwable; @@ -527,6 +542,8 @@ * Private method for trusted invocation of a MemberName of kind {@code REF_invokeSpecial}. * The caller signature is restricted to basic types as with {@code invokeBasic}. * The trailing (not leading) argument must be a MemberName. + * @param args the signature-polymorphic parameter list, statically represented using varargs + * @return the signature-polymorphic result, statically represented using {@code Object} */ /*non-public*/ static native @PolymorphicSignature Object linkToSpecial(Object... args) throws Throwable; @@ -534,6 +551,8 @@ * Private method for trusted invocation of a MemberName of kind {@code REF_invokeInterface}. * The caller signature is restricted to basic types as with {@code invokeBasic}. * The trailing (not leading) argument must be a MemberName. + * @param args the signature-polymorphic parameter list, statically represented using varargs + * @return the signature-polymorphic result, statically represented using {@code Object} */ /*non-public*/ static native @PolymorphicSignature Object linkToInterface(Object... args) throws Throwable;
--- a/src/share/classes/java/lang/invoke/MethodHandleProxies.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/MethodHandleProxies.java Thu Jul 11 12:31:10 2013 -0700 @@ -108,8 +108,9 @@ * Future versions of this API may also equip wrapper instances * with one or more additional public "marker" interfaces. * + * @param <T> the desired type of the wrapper, a single-method interface + * @param intfc a class object representing {@code T} * @param target the method handle to invoke from the wrapper - * @param intfc the desired type of the wrapper, a single-method interface * @return a correctly-typed wrapper for the given target * @throws NullPointerException if either argument is null * @throws IllegalArgumentException if the {@code intfc} is not a
--- a/src/share/classes/java/lang/invoke/MethodHandles.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/MethodHandles.java Thu Jul 11 12:31:10 2013 -0700 @@ -70,6 +70,7 @@ * including direct method handles to private fields and methods. * This lookup object is a <em>capability</em> which may be delegated to trusted agents. * Do not store it in place where untrusted code can access it. + * @return a lookup object for the caller of this method */ @CallerSensitive public static Lookup lookup() { @@ -88,6 +89,7 @@ * {@linkplain Lookup#in <code>publicLookup().in(C.class)</code>}. * Since all classes have equal access to public names, * such a change would confer no new access rights. + * @return a lookup object which is trusted minimally */ public static Lookup publicLookup() { return Lookup.PUBLIC_LOOKUP; @@ -111,72 +113,74 @@ * on the {@code Lookup} object to create method handles for access-checked members. * This includes all methods, constructors, and fields which are allowed to the lookup class, * even private ones. - * <p> + * + * <h1><a name="lookups"></a>Lookup Factory Methods</h1> * The factory methods on a {@code Lookup} object correspond to all major * use cases for methods, constructors, and fields. * Here is a summary of the correspondence between these factory methods and * the behavior the resulting method handles: - * <code> * <table border=1 cellpadding=5 summary="lookup method behaviors"> * <tr><th>lookup expression</th><th>member</th><th>behavior</th></tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#findGetter lookup.findGetter(C.class,"f",FT.class)}</td> - * <td>FT f;</td><td>(T) this.f;</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#findGetter lookup.findGetter(C.class,"f",FT.class)}</td> + * <td>{@code FT f;}</td><td>{@code (T) this.f;}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)}</td> - * <td>static<br>FT f;</td><td>(T) C.f;</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)}</td> + * <td>{@code static}<br>{@code FT f;}</td><td>{@code (T) C.f;}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)}</td> - * <td>FT f;</td><td>this.f = x;</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)}</td> + * <td>{@code FT f;}</td><td>{@code this.f = x;}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)}</td> - * <td>static<br>FT f;</td><td>C.f = arg;</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)}</td> + * <td>{@code static}<br>{@code FT f;}</td><td>{@code C.f = arg;}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#findVirtual lookup.findVirtual(C.class,"m",MT)}</td> - * <td>T m(A*);</td><td>(T) this.m(arg*);</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#findVirtual lookup.findVirtual(C.class,"m",MT)}</td> + * <td>{@code T m(A*);}</td><td>{@code (T) this.m(arg*);}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#findStatic lookup.findStatic(C.class,"m",MT)}</td> - * <td>static<br>T m(A*);</td><td>(T) C.m(arg*);</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#findStatic lookup.findStatic(C.class,"m",MT)}</td> + * <td>{@code static}<br>{@code T m(A*);}</td><td>{@code (T) C.m(arg*);}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#findSpecial lookup.findSpecial(C.class,"m",MT,this.class)}</td> - * <td>T m(A*);</td><td>(T) super.m(arg*);</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#findSpecial lookup.findSpecial(C.class,"m",MT,this.class)}</td> + * <td>{@code T m(A*);}</td><td>{@code (T) super.m(arg*);}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#findConstructor lookup.findConstructor(C.class,MT)}</td> - * <td>C(A*);</td><td>(T) new C(arg*);</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#findConstructor lookup.findConstructor(C.class,MT)}</td> + * <td>{@code C(A*);}</td><td>{@code new C(arg*);}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#unreflectGetter lookup.unreflectGetter(aField)}</td> - * <td>(static)?<br>FT f;</td><td>(FT) aField.get(thisOrNull);</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#unreflectGetter lookup.unreflectGetter(aField)}</td> + * <td>({@code static})?<br>{@code FT f;}</td><td>{@code (FT) aField.get(thisOrNull);}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#unreflectSetter lookup.unreflectSetter(aField)}</td> - * <td>(static)?<br>FT f;</td><td>aField.set(thisOrNull, arg);</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#unreflectSetter lookup.unreflectSetter(aField)}</td> + * <td>({@code static})?<br>{@code FT f;}</td><td>{@code aField.set(thisOrNull, arg);}</td> + * </tr> + * <tr> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)}</td> + * <td>({@code static})?<br>{@code T m(A*);}</td><td>{@code (T) aMethod.invoke(thisOrNull, arg*);}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)}</td> - * <td>(static)?<br>T m(A*);</td><td>(T) aMethod.invoke(thisOrNull, arg*);</td> - * </tr> - * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#unreflectConstructor lookup.unreflectConstructor(aConstructor)}</td> - * <td>C(A*);</td><td>(C) aConstructor.newInstance(arg*);</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#unreflectConstructor lookup.unreflectConstructor(aConstructor)}</td> + * <td>{@code C(A*);}</td><td>{@code (C) aConstructor.newInstance(arg*);}</td> * </tr> * <tr> - * <td>{@linkplain java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)}</td> - * <td>(static)?<br>T m(A*);</td><td>(T) aMethod.invoke(thisOrNull, arg*);</td> + * <td>{@link java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)}</td> + * <td>({@code static})?<br>{@code T m(A*);}</td><td>{@code (T) aMethod.invoke(thisOrNull, arg*);}</td> * </tr> * </table> - * </code> + * * Here, the type {@code C} is the class or interface being searched for a member, * documented as a parameter named {@code refc} in the lookup methods. - * The method or constructor type {@code MT} is composed from the return type {@code T} + * The method type {@code MT} is composed from the return type {@code T} * and the sequence of argument types {@code A*}. + * The constructor also has a sequence of argument types {@code A*} and + * is deemed to return the newly-created object of type {@code C}. * Both {@code MT} and the field type {@code FT} are documented as a parameter named {@code type}. * The formal parameter {@code this} stands for the self-reference of type {@code C}; * if it is present, it is always the leading argument to the method handle invocation. @@ -210,7 +214,7 @@ * security manager checks. * </ul> * - * <h3><a name="access"></a>Access checking</h3> + * <h1><a name="access"></a>Access checking</h1> * Access checks are applied in the factory methods of {@code Lookup}, * when a method handle is created. * This is a key difference from the Core Reflection API, since @@ -297,7 +301,7 @@ * with static methods of {@link MethodHandles}, * independently of any {@code Lookup} object. * - * <h3>Security manager interactions</h3> + * <h1>Security manager interactions</h1> * <a name="secmgr"></a> * If a security manager is present, member lookups are subject to * additional checks. @@ -388,6 +392,7 @@ * but the permissions may be additionally limited by the bitmask * {@link #lookupModes lookupModes}, which controls whether non-public members * can be accessed. + * @return the lookup class, on behalf of which this lookup object finds members */ public Class<?> lookupClass() { return lookupClass; @@ -414,6 +419,7 @@ * The purpose of this is to restrict access via the new lookup object, * so that it can access only names which can be reached by the original * lookup object, and also by the new lookup class. + * @return the lookup modes, which limit the kinds of access performed by this lookup object */ public int lookupModes() { return allowedModes & ALL_MODES; @@ -1352,6 +1358,7 @@ * The type of the method handle will have a void return type. * Its last argument will be the array's element type. * The first and second arguments will be the array type and int. + * @param arrayClass the class of an array * @return a method handle which can store values into the array type * @throws NullPointerException if the argument is null * @throws IllegalArgumentException if arrayClass is not an array type @@ -1580,12 +1587,12 @@ ... MethodType intfn1 = methodType(int.class, int.class); MethodType intfn2 = methodType(int.class, int.class, int.class); -MethodHandle sub = ... {int x, int y => x-y} ...; +MethodHandle sub = ... (int x, int y) -> (x-y) ...; assert(sub.type().equals(intfn2)); MethodHandle sub1 = permuteArguments(sub, intfn2, 0, 1); MethodHandle rsub = permuteArguments(sub, intfn2, 1, 0); assert((int)rsub.invokeExact(1, 100) == 99); -MethodHandle add = ... {int x, int y => x+y} ...; +MethodHandle add = ... (int x, int y) -> (x+y) ...; assert(add.type().equals(intfn2)); MethodHandle twice = permuteArguments(add, intfn1, 0, 0); assert(twice.type().equals(intfn1)); @@ -2261,6 +2268,8 @@ * The method type will nominally specify a return of {@code returnType}. * The return type may be anything convenient: It doesn't matter to the * method handle's behavior, since it will never return normally. + * @param returnType the return type of the desired method handle + * @param exType the parameter type of the desired method handle * @return method handle which can throw the given exceptions * @throws NullPointerException if either argument is null */
--- a/src/share/classes/java/lang/invoke/MethodType.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/MethodType.java Thu Jul 11 12:31:10 2013 -0700 @@ -194,6 +194,8 @@ /** * Finds or creates a method type with the given components. * Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[]) methodType}. + * @param rtype the return type + * @param ptypes the parameter types * @return a method type with the given components * @throws NullPointerException if {@code rtype} or {@code ptypes} or any element of {@code ptypes} is null * @throws IllegalArgumentException if any element of {@code ptypes} is {@code void.class} @@ -214,6 +216,9 @@ * Finds or creates a method type with the given components. * Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[]) methodType}. * The leading parameter type is prepended to the remaining array. + * @param rtype the return type + * @param ptype0 the first parameter type + * @param ptypes the remaining parameter types * @return a method type with the given components * @throws NullPointerException if {@code rtype} or {@code ptype0} or {@code ptypes} or any element of {@code ptypes} is null * @throws IllegalArgumentException if {@code ptype0} or {@code ptypes} or any element of {@code ptypes} is {@code void.class} @@ -230,6 +235,7 @@ * Finds or creates a method type with the given components. * Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[]) methodType}. * The resulting method has no parameter types. + * @param rtype the return type * @return a method type with the given return value * @throws NullPointerException if {@code rtype} is null */ @@ -242,6 +248,8 @@ * Finds or creates a method type with the given components. * Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[]) methodType}. * The resulting method has the single given parameter type. + * @param rtype the return type + * @param ptype0 the parameter type * @return a method type with the given return value and parameter type * @throws NullPointerException if {@code rtype} or {@code ptype0} is null * @throws IllegalArgumentException if {@code ptype0} is {@code void.class} @@ -256,6 +264,9 @@ * Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[]) methodType}. * The resulting method has the same parameter types as {@code ptypes}, * and the specified return type. + * @param rtype the return type + * @param ptypes the method type which supplies the parameter types + * @return a method type with the given components * @throws NullPointerException if {@code rtype} or {@code ptypes} is null */ public static @@ -938,7 +949,8 @@ * provided to the factory method {@link #methodType(Class,Class[]) methodType}. * For example, null values, or {@code void} parameter types, * will lead to exceptions during deserialization. - * @param the stream to write the object to + * @param s the stream to write the object to + * @throws java.io.IOException if there is a problem writing the object */ private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { s.defaultWriteObject(); // requires serialPersistentFields to be an empty array @@ -953,7 +965,9 @@ * It provides the parameters to the factory method called by * {@link #readResolve readResolve}. * After that call it is discarded. - * @param the stream to read the object from + * @param s the stream to read the object from + * @throws java.io.IOException if there is a problem reading the object + * @throws ClassNotFoundException if one of the component classes cannot be resolved * @see #MethodType() * @see #readResolve * @see #writeObject
--- a/src/share/classes/java/lang/invoke/MutableCallSite.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/MutableCallSite.java Thu Jul 11 12:31:10 2013 -0700 @@ -195,7 +195,7 @@ * processed before the method returns abnormally. * Which elements these are (if any) is implementation-dependent. * - * <h3>Java Memory Model details</h3> + * <h1>Java Memory Model details</h1> * In terms of the Java Memory Model, this operation performs a synchronization * action which is comparable in effect to the writing of a volatile variable * by the current thread, and an eventual volatile read by every other thread
--- a/src/share/classes/java/lang/invoke/SerializedLambda.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/SerializedLambda.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -97,66 +97,113 @@ this.capturedArgs = Objects.requireNonNull(capturedArgs).clone(); } - /** Get the name of the class that captured this lambda */ + /** + * Get the name of the class that captured this lambda. + * @return the name of the class that captured this lambda + */ public String getCapturingClass() { return capturingClass.getName().replace('.', '/'); } - /** Get the name of the functional interface class to which this lambda has been converted */ + /** + * Get the name of the functional interface class to which this + * lambda has been converted + * @return the name of the functional interface this lambda has + * been converted to + */ public String getFunctionalInterfaceClass() { return functionalInterfaceClass; } - /** Get the name of the primary method for the functional interface to which this lambda has been converted */ + /** + * Get the name of the primary method for the functional interface + * to which this lambda has been converted. + * @return the name of the primary methods of the functional interface + */ public String getFunctionalInterfaceMethodName() { return functionalInterfaceMethodName; } - /** Get the signature of the primary method for the functional interface to which this lambda has been converted */ + /** + * Get the signature of the primary method for the functional + * interface to which this lambda has been converted. + * @return the signature of the primary method of the functional + * interface + */ public String getFunctionalInterfaceMethodSignature() { return functionalInterfaceMethodSignature; } - /** Get the method handle kind (see {@link MethodHandleInfo}) of the primary method for the functional interface - * to which this lambda has been converted */ + /** + * Get the method handle kind (see {@link MethodHandleInfo}) of + * the primary method for the functional interface to which this + * lambda has been converted + * @return the method handle kind of the primary method of + * functional interface + */ public int getFunctionalInterfaceMethodKind() { return functionalInterfaceMethodKind; } - /** Get the name of the class containing the implementation method */ + /** + * Get the name of the class containing the implementation + * method. + * @return the name of the class containing the implementation + * method + */ public String getImplClass() { return implClass; } - /** Get the name of the implementation method */ + /** + * Get the name of the implementation method. + * @return the name of the implementation method + */ public String getImplMethodName() { return implMethodName; } - /** Get the signature of the implementation method */ + /** + * Get the signature of the implementation method. + * @return the signature of the implementation method + */ public String getImplMethodSignature() { return implMethodSignature; } - /** Get the method handle kind (see {@link MethodHandleInfo}) of the implementation method */ + /** + * Get the method handle kind (see {@link MethodHandleInfo}) of + * the implementation method. + * @return the method handle kind of the implementation method + */ public int getImplMethodKind() { return implMethodKind; } /** - * Get the signature of the primary functional interface method after type variables are substituted with - * their instantiation from the capture site + * Get the signature of the primary functional interface method + * after type variables are substituted with their instantiation + * from the capture site. + * @return the signature of the primary functional interface method + * after type variable processing */ public final String getInstantiatedMethodType() { return instantiatedMethodType; } - /** Get the count of dynamic arguments to the lambda capture site */ + /** + * Get the count of dynamic arguments to the lambda capture site. + * @return the count of dynamic arguments to the lambda capture site + */ public int getCapturedArgCount() { return capturedArgs.length; } - /** Get a dynamic argument to the lambda capture site */ + /** + * Get a dynamic argument to the lambda capture site. + * @param i the argument to capture + * @return a dynamic argument to the lambda capture site + */ public Object getCapturedArg(int i) { return capturedArgs[i]; }
--- a/src/share/classes/java/lang/invoke/package-info.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/invoke/package-info.java Thu Jul 11 12:31:10 2013 -0700 @@ -43,13 +43,13 @@ * </li> * </ul> * - * <h2><a name="jvm_mods"></a>Summary of relevant Java Virtual Machine changes</h2> + * <h1><a name="jvm_mods"></a>Summary of relevant Java Virtual Machine changes</h1> * The following low-level information summarizes relevant parts of the * Java Virtual Machine specification. For full details, please see the * current version of that specification. * * Each occurrence of an {@code invokedynamic} instruction is called a <em>dynamic call site</em>. - * <h3><a name="indyinsn"></a>{@code invokedynamic} instructions</h3> + * <h2><a name="indyinsn"></a>{@code invokedynamic} instructions</h2> * A dynamic call site is originally in an unlinked state. In this state, there is * no target method for the call site to invoke. * <p> @@ -97,7 +97,7 @@ * If this happens, the same error will the thrown for all subsequent * attempts to execute the dynamic call site. * - * <h3>timing of linkage</h3> + * <h2>timing of linkage</h2> * A dynamic call site is linked just before its first execution. * The bootstrap method call implementing the linkage occurs within * a thread that is attempting a first execution. @@ -131,7 +131,7 @@ * just before its first invocation. * There is no way to undo the effect of a completed bootstrap method call. * - * <h3>types of bootstrap methods</h3> + * <h2>types of bootstrap methods</h2> * As long as each bootstrap method can be correctly invoked * by {@code MethodHandle.invoke}, its detailed type is arbitrary. * For example, the first argument could be {@code Object}
--- a/src/share/classes/java/lang/reflect/AnnotatedElement.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/reflect/AnnotatedElement.java Thu Jul 11 12:31:10 2013 -0700 @@ -130,6 +130,7 @@ * Returns this element's annotation for the specified type if * such an annotation is present, else null. * + * @param <T> the type of the annotation to query for and return if present * @param annotationClass the Class object corresponding to the * annotation type * @return this element's annotation for the specified annotation type if @@ -154,6 +155,7 @@ * The caller of this method is free to modify the returned array; it will * have no effect on the arrays returned to other callers. * + * @param <T> the type of the annotation to query for and return if present * @param annotationClass the Class object corresponding to the * annotation type * @return all this element's annotations for the specified annotation type if @@ -184,6 +186,7 @@ * This method ignores inherited annotations. (Returns null if no * annotations are directly present on this element.) * + * @param <T> the type of the annotation to query for and return if present * @param annotationClass the Class object corresponding to the * annotation type * @return this element's annotation for the specified annotation type if @@ -209,6 +212,8 @@ * The caller of this method is free to modify the returned array; it will * have no effect on the arrays returned to other callers. * + * @param <T> the type of the annotation to query for and return + * if directly present * @param annotationClass the Class object corresponding to the * annotation type * @return all this element's annotations for the specified annotation type if
--- a/src/share/classes/java/lang/reflect/Executable.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/reflect/Executable.java Thu Jul 11 12:31:10 2013 -0700 @@ -384,6 +384,8 @@ /** * Returns a string describing this {@code Executable}, including * any type parameters. + * @return a string describing this {@code Executable}, including + * any type parameters */ public abstract String toGenericString(); @@ -496,6 +498,8 @@ * If this Executable represents a method, the AnnotatedType object * represents the use of a type to specify the return type of the method. * + * @return an object representing the return type of this method + * or constructor * @since 1.8 */ public abstract AnnotatedType getAnnotatedReturnType(); @@ -531,6 +535,9 @@ * * Returns null if this Executable represents a static method. * + * @return an object representing the receiver type of the + * method or constructor represented by this Executable + * * @since 1.8 */ public AnnotatedType getAnnotatedReceiverType() { @@ -553,6 +560,9 @@ * Returns an array of length 0 if the method/constructor declares no * parameters. * + * @return an array of objects representing the types of the + * formal parameters of this method or constructor + * * @since 1.8 */ public AnnotatedType[] getAnnotatedParameterTypes() { @@ -575,6 +585,9 @@ * Returns an array of length 0 if the method/constructor declares no * exceptions. * + * @return an array of objects representing the declared + * exceptions of this method or constructor + * * @since 1.8 */ public AnnotatedType[] getAnnotatedExceptionTypes() {
--- a/src/share/classes/java/lang/reflect/Field.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/reflect/Field.java Thu Jul 11 12:31:10 2013 -0700 @@ -1151,6 +1151,8 @@ /** * Returns an AnnotatedType object that represents the use of a type to specify * the declared type of the field represented by this Field. + * @return an object representing the declared type of the field + * represented by this Field * * @since 1.8 */
--- a/src/share/classes/java/lang/reflect/Parameter.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/reflect/Parameter.java Thu Jul 11 12:31:10 2013 -0700 @@ -152,6 +152,8 @@ * defined in a class file, then that name will be returned by * this method. Otherwise, this method will synthesize a name of * the form argN, where N is the index of the parameter. + * + * @return the name of the parameter */ public String getName() { // Note: empty strings as paramete names are now outlawed.
--- a/src/share/classes/java/lang/reflect/TypeVariable.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/lang/reflect/TypeVariable.java Thu Jul 11 12:31:10 2013 -0700 @@ -95,6 +95,7 @@ * * Returns an array of length 0 if the type parameter declares no bounds. * + * @return an array of objects representing the upper bounds of the type variable * @since 1.8 */ AnnotatedType[] getAnnotatedBounds();
--- a/src/share/classes/java/math/BigDecimal.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/math/BigDecimal.java Thu Jul 11 12:31:10 2013 -0700 @@ -2572,6 +2572,9 @@ * ({@code this} * 10<sup>n</sup>). The scale of * the result is {@code (this.scale() - n)}. * + * @param n the exponent power of ten to scale by + * @return a BigDecimal whose numerical value is equal to + * ({@code this} * 10<sup>n</sup>) * @throws ArithmeticException if the scale would be * outside the range of a 32-bit integer. *
--- a/src/share/classes/java/math/BigInteger.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/math/BigInteger.java Thu Jul 11 12:31:10 2013 -0700 @@ -33,8 +33,11 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.ObjectStreamField; +import java.util.ArrayList; import java.util.Arrays; import java.util.Random; +import sun.misc.DoubleConsts; +import sun.misc.FloatConsts; /** * Immutable arbitrary-precision integers. All operations behave as if @@ -211,6 +214,16 @@ */ private static final int TOOM_COOK_SQUARE_THRESHOLD = 140; + /** + * The threshold value for using Schoenhage recursive base conversion. If + * the number of ints in the number are larger than this value, + * the Schoenhage algorithm will be used. In practice, it appears that the + * Schoenhage routine is faster for any threshold down to 2, and is + * relatively flat for thresholds between 2-25, so this choice may be + * varied within this range for very small effect. + */ + private static final int SCHOENHAGE_BASE_CONVERSION_THRESHOLD = 8; + //Constructors /** @@ -1024,6 +1037,19 @@ private static BigInteger posConst[] = new BigInteger[MAX_CONSTANT+1]; private static BigInteger negConst[] = new BigInteger[MAX_CONSTANT+1]; + /** + * The cache of powers of each radix. This allows us to not have to + * recalculate powers of radix^(2^n) more than once. This speeds + * Schoenhage recursive base conversion significantly. + */ + private static volatile BigInteger[][] powerCache; + + /** The cache of logarithms of radices for base conversion. */ + private static final double[] logCache; + + /** The natural log of 2. This is used in computing cache indices. */ + private static final double LOG_TWO = Math.log(2.0); + static { for (int i = 1; i <= MAX_CONSTANT; i++) { int[] magnitude = new int[1]; @@ -1031,6 +1057,20 @@ posConst[i] = new BigInteger(magnitude, 1); negConst[i] = new BigInteger(magnitude, -1); } + + /* + * Initialize the cache of radix^(2^x) values used for base conversion + * with just the very first value. Additional values will be created + * on demand. + */ + powerCache = new BigInteger[Character.MAX_RADIX+1][]; + logCache = new double[Character.MAX_RADIX+1]; + + for (int i=Character.MIN_RADIX; i<=Character.MAX_RADIX; i++) + { + powerCache[i] = new BigInteger[] { BigInteger.valueOf(i) }; + logCache[i] = Math.log(i); + } } /** @@ -1355,7 +1395,7 @@ if ((xlen < TOOM_COOK_THRESHOLD) && (ylen < TOOM_COOK_THRESHOLD)) return multiplyKaratsuba(this, val); else - return multiplyToomCook3(this, val); + return multiplyToomCook3(this, val); } private static BigInteger multiplyByInt(int[] x, int y, int sign) { @@ -3297,6 +3337,28 @@ if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) radix = 10; + // If it's small enough, use smallToString. + if (mag.length <= SCHOENHAGE_BASE_CONVERSION_THRESHOLD) + return smallToString(radix); + + // Otherwise use recursive toString, which requires positive arguments. + // The results will be concatenated into this StringBuilder + StringBuilder sb = new StringBuilder(); + if (signum < 0) { + toString(this.negate(), sb, radix, 0); + sb.insert(0, '-'); + } + else + toString(this, sb, radix, 0); + + return sb.toString(); + } + + /** This method is used to perform toString when arguments are small. */ + private String smallToString(int radix) { + if (signum == 0) + return "0"; + // Compute upper bound on number of digit groups and allocate space int maxNumDigitGroups = (4*mag.length + 6)/7; String digitGroup[] = new String[maxNumDigitGroups]; @@ -3335,6 +3397,81 @@ return buf.toString(); } + /** + * Converts the specified BigInteger to a string and appends to + * <code>sb</code>. This implements the recursive Schoenhage algorithm + * for base conversions. + * <p/> + * See Knuth, Donald, _The Art of Computer Programming_, Vol. 2, + * Answers to Exercises (4.4) Question 14. + * + * @param u The number to convert to a string. + * @param sb The StringBuilder that will be appended to in place. + * @param radix The base to convert to. + * @param digits The minimum number of digits to pad to. + */ + private static void toString(BigInteger u, StringBuilder sb, int radix, + int digits) { + /* If we're smaller than a certain threshold, use the smallToString + method, padding with leading zeroes when necessary. */ + if (u.mag.length <= SCHOENHAGE_BASE_CONVERSION_THRESHOLD) { + String s = u.smallToString(radix); + + // Pad with internal zeros if necessary. + // Don't pad if we're at the beginning of the string. + if ((s.length() < digits) && (sb.length() > 0)) + for (int i=s.length(); i<digits; i++) // May be a faster way to + sb.append('0'); // do this? + + sb.append(s); + return; + } + + int b, n; + b = u.bitLength(); + + // Calculate a value for n in the equation radix^(2^n) = u + // and subtract 1 from that value. This is used to find the + // cache index that contains the best value to divide u. + n = (int) Math.round(Math.log(b * LOG_TWO / logCache[radix]) / LOG_TWO - 1.0); + BigInteger v = getRadixConversionCache(radix, n); + BigInteger[] results; + results = u.divideAndRemainder(v); + + int expectedDigits = 1 << n; + + // Now recursively build the two halves of each number. + toString(results[0], sb, radix, digits-expectedDigits); + toString(results[1], sb, radix, expectedDigits); + } + + /** + * Returns the value radix^(2^exponent) from the cache. + * If this value doesn't already exist in the cache, it is added. + * <p/> + * This could be changed to a more complicated caching method using + * <code>Future</code>. + */ + private static BigInteger getRadixConversionCache(int radix, int exponent) { + BigInteger[] cacheLine = powerCache[radix]; // volatile read + if (exponent < cacheLine.length) { + return cacheLine[exponent]; + } + + int oldLength = cacheLine.length; + cacheLine = Arrays.copyOf(cacheLine, exponent + 1); + for (int i = oldLength; i <= exponent; i++) { + cacheLine[i] = cacheLine[i - 1].pow(2); + } + + BigInteger[][] pc = powerCache; // volatile read again + if (exponent >= pc[radix].length) { + pc = pc.clone(); + pc[radix] = cacheLine; + powerCache = pc; // volatile write, publish + } + return cacheLine[exponent]; + } /* zero[i] is a string of i consecutive zeros. */ private static String zeros[] = new String[64]; @@ -3452,8 +3589,72 @@ * @return this BigInteger converted to a {@code float}. */ public float floatValue() { - // Somewhat inefficient, but guaranteed to work. - return Float.parseFloat(this.toString()); + if (signum == 0) { + return 0.0f; + } + + int exponent = ((mag.length - 1) << 5) + bitLengthForInt(mag[0]) - 1; + + // exponent == floor(log2(abs(this))) + if (exponent < Long.SIZE - 1) { + return longValue(); + } else if (exponent > Float.MAX_EXPONENT) { + return signum > 0 ? Float.POSITIVE_INFINITY : Float.NEGATIVE_INFINITY; + } + + /* + * We need the top SIGNIFICAND_WIDTH bits, including the "implicit" + * one bit. To make rounding easier, we pick out the top + * SIGNIFICAND_WIDTH + 1 bits, so we have one to help us round up or + * down. twiceSignifFloor will contain the top SIGNIFICAND_WIDTH + 1 + * bits, and signifFloor the top SIGNIFICAND_WIDTH. + * + * It helps to consider the real number signif = abs(this) * + * 2^(SIGNIFICAND_WIDTH - 1 - exponent). + */ + int shift = exponent - FloatConsts.SIGNIFICAND_WIDTH; + + int twiceSignifFloor; + // twiceSignifFloor will be == abs().shiftRight(shift).intValue() + // We do the shift into an int directly to improve performance. + + int nBits = shift & 0x1f; + int nBits2 = 32 - nBits; + + if (nBits == 0) { + twiceSignifFloor = mag[0]; + } else { + twiceSignifFloor = mag[0] >>> nBits; + if (twiceSignifFloor == 0) { + twiceSignifFloor = (mag[0] << nBits2) | (mag[1] >>> nBits); + } + } + + int signifFloor = twiceSignifFloor >> 1; + signifFloor &= FloatConsts.SIGNIF_BIT_MASK; // remove the implied bit + + /* + * We round up if either the fractional part of signif is strictly + * greater than 0.5 (which is true if the 0.5 bit is set and any lower + * bit is set), or if the fractional part of signif is >= 0.5 and + * signifFloor is odd (which is true if both the 0.5 bit and the 1 bit + * are set). This is equivalent to the desired HALF_EVEN rounding. + */ + boolean increment = (twiceSignifFloor & 1) != 0 + && ((signifFloor & 1) != 0 || abs().getLowestSetBit() < shift); + int signifRounded = increment ? signifFloor + 1 : signifFloor; + int bits = ((exponent + FloatConsts.EXP_BIAS)) + << (FloatConsts.SIGNIFICAND_WIDTH - 1); + bits += signifRounded; + /* + * If signifRounded == 2^24, we'd need to set all of the significand + * bits to zero and add 1 to the exponent. This is exactly the behavior + * we get from just adding signifRounded to bits directly. If the + * exponent is Float.MAX_EXPONENT, we round up (correctly) to + * Float.POSITIVE_INFINITY. + */ + bits |= signum & FloatConsts.SIGN_BIT_MASK; + return Float.intBitsToFloat(bits); } /** @@ -3472,8 +3673,80 @@ * @return this BigInteger converted to a {@code double}. */ public double doubleValue() { - // Somewhat inefficient, but guaranteed to work. - return Double.parseDouble(this.toString()); + if (signum == 0) { + return 0.0; + } + + int exponent = ((mag.length - 1) << 5) + bitLengthForInt(mag[0]) - 1; + + // exponent == floor(log2(abs(this))Double) + if (exponent < Long.SIZE - 1) { + return longValue(); + } else if (exponent > Double.MAX_EXPONENT) { + return signum > 0 ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY; + } + + /* + * We need the top SIGNIFICAND_WIDTH bits, including the "implicit" + * one bit. To make rounding easier, we pick out the top + * SIGNIFICAND_WIDTH + 1 bits, so we have one to help us round up or + * down. twiceSignifFloor will contain the top SIGNIFICAND_WIDTH + 1 + * bits, and signifFloor the top SIGNIFICAND_WIDTH. + * + * It helps to consider the real number signif = abs(this) * + * 2^(SIGNIFICAND_WIDTH - 1 - exponent). + */ + int shift = exponent - DoubleConsts.SIGNIFICAND_WIDTH; + + long twiceSignifFloor; + // twiceSignifFloor will be == abs().shiftRight(shift).longValue() + // We do the shift into a long directly to improve performance. + + int nBits = shift & 0x1f; + int nBits2 = 32 - nBits; + + int highBits; + int lowBits; + if (nBits == 0) { + highBits = mag[0]; + lowBits = mag[1]; + } else { + highBits = mag[0] >>> nBits; + lowBits = (mag[0] << nBits2) | (mag[1] >>> nBits); + if (highBits == 0) { + highBits = lowBits; + lowBits = (mag[1] << nBits2) | (mag[2] >>> nBits); + } + } + + twiceSignifFloor = ((highBits & LONG_MASK) << 32) + | (lowBits & LONG_MASK); + + long signifFloor = twiceSignifFloor >> 1; + signifFloor &= DoubleConsts.SIGNIF_BIT_MASK; // remove the implied bit + + /* + * We round up if either the fractional part of signif is strictly + * greater than 0.5 (which is true if the 0.5 bit is set and any lower + * bit is set), or if the fractional part of signif is >= 0.5 and + * signifFloor is odd (which is true if both the 0.5 bit and the 1 bit + * are set). This is equivalent to the desired HALF_EVEN rounding. + */ + boolean increment = (twiceSignifFloor & 1) != 0 + && ((signifFloor & 1) != 0 || abs().getLowestSetBit() < shift); + long signifRounded = increment ? signifFloor + 1 : signifFloor; + long bits = (long) ((exponent + DoubleConsts.EXP_BIAS)) + << (DoubleConsts.SIGNIFICAND_WIDTH - 1); + bits += signifRounded; + /* + * If signifRounded == 2^53, we'd need to set all of the significand + * bits to zero and add 1 to the exponent. This is exactly the behavior + * we get from just adding signifRounded to bits directly. If the + * exponent is Double.MAX_EXPONENT, we round up (correctly) to + * Double.POSITIVE_INFINITY. + */ + bits |= signum & DoubleConsts.SIGN_BIT_MASK; + return Double.longBitsToDouble(bits); } /**
--- a/src/share/classes/java/math/RoundingMode.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/math/RoundingMode.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, 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 @@ -101,6 +101,7 @@ * *<p>Example: *<table border> + * <caption><b>Rounding mode UP Examples</b></caption> *<tr valign=top><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code UP} rounding *<tr align=right><td>5.5</td> <td>6</td> @@ -124,6 +125,7 @@ * *<p>Example: *<table border> + * <caption><b>Rounding mode DOWN Examples</b></caption> *<tr valign=top><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code DOWN} rounding *<tr align=right><td>5.5</td> <td>5</td> @@ -148,6 +150,7 @@ * *<p>Example: *<table border> + * <caption><b>Rounding mode CEILING Examples</b></caption> *<tr valign=top><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code CEILING} rounding *<tr align=right><td>5.5</td> <td>6</td> @@ -172,6 +175,7 @@ * *<p>Example: *<table border> + * <caption><b>Rounding mode FLOOR Examples</b></caption> *<tr valign=top><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code FLOOR} rounding *<tr align=right><td>5.5</td> <td>5</td> @@ -198,6 +202,7 @@ * *<p>Example: *<table border> + * <caption><b>Rounding mode HALF_UP Examples</b></caption> *<tr valign=top><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code HALF_UP} rounding *<tr align=right><td>5.5</td> <td>6</td> @@ -223,6 +228,7 @@ * *<p>Example: *<table border> + * <caption><b>Rounding mode HALF_DOWN Examples</b></caption> *<tr valign=top><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code HALF_DOWN} rounding *<tr align=right><td>5.5</td> <td>5</td> @@ -255,6 +261,7 @@ * *<p>Example: *<table border> + * <caption><b>Rounding mode HALF_EVEN Examples</b></caption> *<tr valign=top><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code HALF_EVEN} rounding *<tr align=right><td>5.5</td> <td>6</td> @@ -278,6 +285,7 @@ * {@code ArithmeticException} is thrown. *<p>Example: *<table border> + * <caption><b>Rounding mode UNNECESSARY Examples</b></caption> *<tr valign=top><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code UNNECESSARY} rounding *<tr align=right><td>5.5</td> <td>throw {@code ArithmeticException}</td>
--- a/src/share/classes/java/nio/Buffer.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/Buffer.java Thu Jul 11 12:31:10 2013 -0700 @@ -52,7 +52,7 @@ * <p> There is one subclass of this class for each non-boolean primitive type. * * - * <h4> Transferring data </h4> + * <h2> Transferring data </h2> * * <p> Each subclass of this class defines two categories of <i>get</i> and * <i>put</i> operations: </p> @@ -78,7 +78,7 @@ * current position. * * - * <h4> Marking and resetting </h4> + * <h2> Marking and resetting </h2> * * <p> A buffer's <i>mark</i> is the index to which its position will be reset * when the {@link #reset reset} method is invoked. The mark is not always @@ -89,7 +89,7 @@ * {@link InvalidMarkException} to be thrown. * * - * <h4> Invariants </h4> + * <h2> Invariants </h2> * * <p> The following invariant holds for the mark, position, limit, and * capacity values: @@ -109,7 +109,7 @@ * to zero. * * - * <h4> Clearing, flipping, and rewinding </h4> + * <h2> Clearing, flipping, and rewinding </h2> * * <p> In addition to methods for accessing the position, limit, and capacity * values and for marking and resetting, this class also defines the following @@ -132,7 +132,7 @@ * </ul> * * - * <h4> Read-only buffers </h4> + * <h2> Read-only buffers </h2> * * <p> Every buffer is readable, but not every buffer is writable. The * mutation methods of each buffer class are specified as <i>optional @@ -143,14 +143,14 @@ * {@link #isReadOnly isReadOnly} method. * * - * <h4> Thread safety </h4> + * <h2> Thread safety </h2> * * <p> Buffers are not safe for use by multiple concurrent threads. If a * buffer is to be used by more than one thread then access to the buffer * should be controlled by appropriate synchronization. * * - * <h4> Invocation chaining </h4> + * <h2> Invocation chaining </h2> * * <p> Methods in this class that do not otherwise have a value to return are * specified to return the buffer upon which they are invoked. This allows
--- a/src/share/classes/java/nio/MappedByteBuffer.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/MappedByteBuffer.java Thu Jul 11 12:31:10 2013 -0700 @@ -45,7 +45,7 @@ * this program or another. Whether or not such changes occur, and when they * occur, is operating-system dependent and therefore unspecified. * - * <a name="inaccess"><p> All or part of a mapped byte buffer may become + * <a name="inaccess"></a><p> All or part of a mapped byte buffer may become * inaccessible at any time, for example if the mapped file is truncated. An * attempt to access an inaccessible region of a mapped byte buffer will not * change the buffer's content and will cause an unspecified exception to be
--- a/src/share/classes/java/nio/X-Buffer.java.template Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/X-Buffer.java.template Thu Jul 11 12:31:10 2013 -0700 @@ -44,23 +44,23 @@ * * <ul> * - * <li><p> Absolute and relative {@link #get() </code><i>get</i><code>} and - * {@link #put($type$) </code><i>put</i><code>} methods that read and write + * <li><p> Absolute and relative {@link #get() <i>get</i>} and + * {@link #put($type$) <i>put</i>} methods that read and write * single $type$s; </p></li> * - * <li><p> Relative {@link #get($type$[]) </code><i>bulk get</i><code>} + * <li><p> Relative {@link #get($type$[]) <i>bulk get</i>} * methods that transfer contiguous sequences of $type$s from this buffer * into an array; {#if[!byte]?and}</p></li> * - * <li><p> Relative {@link #put($type$[]) </code><i>bulk put</i><code>} + * <li><p> Relative {@link #put($type$[]) <i>bulk put</i>} * methods that transfer contiguous sequences of $type$s from $a$ * $type$ array{#if[char]?, a string,} or some other $type$ * buffer into this buffer;{#if[!byte]? and} </p></li> * #if[byte] * - * <li><p> Absolute and relative {@link #getChar() </code><i>get</i><code>} - * and {@link #putChar(char) </code><i>put</i><code>} methods that read and + * <li><p> Absolute and relative {@link #getChar() <i>get</i>} + * and {@link #putChar(char) <i>put</i>} methods that read and * write values of other primitive types, translating them to and from * sequences of bytes in a particular byte order; </p></li> * @@ -70,23 +70,23 @@ * #end[byte] * - * <li><p> Methods for {@link #compact </code>compacting<code>}, {@link - * #duplicate </code>duplicating<code>}, and {@link #slice - * </code>slicing<code>} $a$ $type$ buffer. </p></li> + * <li><p> Methods for {@link #compact compacting}, {@link + * #duplicate duplicating}, and {@link #slice slicing} + * $a$ $type$ buffer. </p></li> * * </ul> * * <p> $Type$ buffers can be created either by {@link #allocate - * </code><i>allocation</i><code>}, which allocates space for the buffer's + * <i>allocation</i>}, which allocates space for the buffer's * #if[byte] * - * content, or by {@link #wrap($type$[]) </code><i>wrapping</i><code>} an + * content, or by {@link #wrap($type$[]) <i>wrapping</i>} an * existing $type$ array {#if[char]?or string} into a buffer. * #else[byte] * - * content, by {@link #wrap($type$[]) </code><i>wrapping</i><code>} an existing + * content, by {@link #wrap($type$[]) <i>wrapping</i>} an existing * $type$ array {#if[char]?or string} into a buffer, or by creating a * <a href="ByteBuffer.html#views"><i>view</i></a> of an existing byte buffer. * @@ -94,8 +94,8 @@ * #if[byte] * - * <a name="direct"> - * <h4> Direct <i>vs.</i> non-direct buffers </h4> + * <a name="direct"></a> + * <h2> Direct <i>vs.</i> non-direct buffers </h2> * * <p> A byte buffer is either <i>direct</i> or <i>non-direct</i>. Given a * direct byte buffer, the Java virtual machine will make a best effort to @@ -116,7 +116,7 @@ * buffers only when they yield a measureable gain in program performance. * * <p> A direct byte buffer may also be created by {@link - * java.nio.channels.FileChannel#map </code>mapping<code>} a region of a file + * java.nio.channels.FileChannel#map mapping} a region of a file * directly into memory. An implementation of the Java platform may optionally * support the creation of direct byte buffers from native code via JNI. If an * instance of one of these kinds of buffers refers to an inaccessible region @@ -129,8 +129,8 @@ * that explicit buffer management can be done in performance-critical code. * * - * <a name="bin"> - * <h4> Access to binary data </h4> + * <a name="bin"></a> + * <h2> Access to binary data </h2> * * <p> This class defines methods for reading and writing values of all other * primitive types, except <tt>boolean</tt>. Primitive values are translated @@ -156,7 +156,7 @@ * parameters of the absolute <i>get</i> and <i>put</i> methods are in terms of * bytes rather than of the type being read or written. * - * <a name="views"> + * <a name="views"></a> * * <p> For access to homogeneous binary data, that is, sequences of values of * the same type, this class defines methods that can create <i>views</i> of a @@ -214,7 +214,7 @@ #end[char] * #if[byte] - * <h4> Invocation chaining </h4> + * <h2> Invocation chaining </h2> #end[byte] * * <p> Methods in this class that do not otherwise have a value to return are @@ -297,7 +297,7 @@ * <p> The new buffer's position will be zero, its limit will be its * capacity, its mark will be undefined, and each of its elements will be * initialized to zero. Whether or not it has a - * {@link #hasArray </code>backing array<code>} is unspecified. + * {@link #hasArray backing array} is unspecified. * * @param capacity * The new buffer's capacity, in $type$s @@ -318,9 +318,8 @@ * * <p> The new buffer's position will be zero, its limit will be its * capacity, its mark will be undefined, and each of its elements will be - * initialized to zero. It will have a {@link #array - * </code>backing array<code>}, and its {@link #arrayOffset </code>array - * offset<code>} will be zero. + * initialized to zero. It will have a {@link #array backing array}, + * and its {@link #arrayOffset array offset} will be zero. * * @param capacity * The new buffer's capacity, in $type$s @@ -344,8 +343,8 @@ * and vice versa. The new buffer's capacity will be * <tt>array.length</tt>, its position will be <tt>offset</tt>, its limit * will be <tt>offset + length</tt>, and its mark will be undefined. Its - * {@link #array </code>backing array<code>} will be the given array, and - * its {@link #arrayOffset </code>array offset<code>} will be zero. </p> + * {@link #array backing array} will be the given array, and + * its {@link #arrayOffset array offset} will be zero. </p> * * @param array * The array that will back the new buffer @@ -384,8 +383,8 @@ * that is, modifications to the buffer will cause the array to be modified * and vice versa. The new buffer's capacity and limit will be * <tt>array.length</tt>, its position will be zero, and its mark will be - * undefined. Its {@link #array </code>backing array<code>} will be the - * given array, and its {@link #arrayOffset </code>array offset<code>} will + * undefined. Its {@link #array backing array} will be the + * given array, and its {@link #arrayOffset array offset>} will * be zero. </p> * * @param array @@ -703,6 +702,9 @@ * <pre> * src.get(a, 0, a.length) </pre> * + * @param dst + * The destination array + * * @return This buffer * * @throws BufferUnderflowException @@ -842,6 +844,9 @@ * <pre> * dst.put(a, 0, a.length) </pre> * + * @param src + * The source array + * * @return This buffer * * @throws BufferOverflowException @@ -930,6 +935,9 @@ * <pre> * dst.put(s, 0, s.length()) </pre> * + * @param src + * The source string + * * @return This buffer * * @throws BufferOverflowException @@ -1419,7 +1427,7 @@ * * <p> The byte order of $a$ $type$ buffer created by allocation or by * wrapping an existing <tt>$type$</tt> array is the {@link - * ByteOrder#nativeOrder </code>native order<code>} of the underlying + * ByteOrder#nativeOrder native order} of the underlying * hardware. The byte order of $a$ $type$ buffer created as a <a * href="ByteBuffer.html#views">view</a> of a byte buffer is that of the * byte buffer at the moment that the view is created. </p>
--- a/src/share/classes/java/nio/channels/AsynchronousByteChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/AsynchronousByteChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -87,6 +87,8 @@ * initiates a read operation before a previous read operation has * completed then a {@link ReadPendingException} will be thrown. * + * @param <A> + * The type of the attachment * @param dst * The buffer into which bytes are to be transferred * @param attachment @@ -166,6 +168,8 @@ * initiates a write operation before a previous write operation has * completed then a {@link WritePendingException} will be thrown. * + * @param <A> + * The type of the attachment * @param src * The buffer from which bytes are to be retrieved * @param attachment
--- a/src/share/classes/java/nio/channels/AsynchronousChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/AsynchronousChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -61,7 +61,7 @@ * may not allow more than one read and one write operation to be outstanding at * any given time. * - * <h4>Cancellation</h4> + * <h2>Cancellation</h2> * * <p> The {@code Future} interface defines the {@link Future#cancel cancel} * method to cancel execution. This causes all threads waiting on the result of
--- a/src/share/classes/java/nio/channels/AsynchronousChannelGroup.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/AsynchronousChannelGroup.java Thu Jul 11 12:31:10 2013 -0700 @@ -60,7 +60,7 @@ * default group is not configured then the pooled threads of the default group * are {@link Thread#isDaemon daemon} threads. * - * <table border> + * <table border summary="System properties"> * <tr> * <th>System property</th> * <th>Description</th> @@ -89,7 +89,7 @@ * </tr> * </table> * - * <a name="threading"><h4>Threading</h4></a> + * <a name="threading"></a><h2>Threading</h2> * * <p> The completion handler for an I/O operation initiated on a channel bound * to a group is guaranteed to be invoked by one of the pooled threads in the @@ -104,7 +104,7 @@ * handler directly by the initiating thread (see {@link * AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept}). * - * <a name="shutdown"><h4>Shutdown and Termination</h4></a> + * <a name="shutdown"></a><h2>Shutdown and Termination</h2> * * <p> The {@link #shutdown() shutdown} method is used to initiate an <em>orderly * shutdown</em> of a group. An orderly shutdown marks the group as shutdown;
--- a/src/share/classes/java/nio/channels/AsynchronousFileChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/AsynchronousFileChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -425,6 +425,8 @@ * They are not suitable for controlling access to a file by multiple * threads within the same virtual machine. * + * @param <A> + * The type of the attachment * @param position * The position at which the locked region is to start; must be * non-negative @@ -473,6 +475,8 @@ * ch.{@link #lock(long,long,boolean,Object,CompletionHandler) lock}(0L, Long.MAX_VALUE, false, att, handler) * </pre> * + * @param <A> + * The type of the attachment * @param attachment * The object to attach to the I/O operation; can be {@code null} * @param handler @@ -652,6 +656,8 @@ * If the given file position is greater than the file's size at the time * that the read is attempted then no bytes are read. * + * @param <A> + * The type of the attachment * @param dst * The buffer into which bytes are to be transferred * @param position @@ -716,6 +722,8 @@ * bytes; the values of any bytes between the previous end-of-file and the * newly-written bytes are unspecified. * + * @param <A> + * The type of the attachment * @param src * The buffer from which bytes are to be transferred * @param position
--- a/src/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -52,7 +52,7 @@ * <p> Socket options are configured using the {@link #setOption(SocketOption,Object) * setOption} method. Channels of this type support the following options: * <blockquote> - * <table border> + * <table border summary="Socket options"> * <tr> * <th>Option Name</th> * <th>Description</th> @@ -98,6 +98,9 @@ /** * Initializes a new instance of this class. + * + * @param provider + * The provider that created this channel */ protected AsynchronousServerSocketChannel(AsynchronousChannelProvider provider) { this.provider = provider; @@ -105,6 +108,8 @@ /** * Returns the provider that created this channel. + * + * @return The provider that created this channel */ public final AsynchronousChannelProvider provider() { return provider; @@ -263,6 +268,8 @@ * the connection is closed and the operation completes with a {@link * SecurityException}. * + * @param <A> + * The type of the attachment * @param attachment * The object to attach to the I/O operation; can be {@code null} * @param handler
--- a/src/share/classes/java/nio/channels/AsynchronousSocketChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/AsynchronousSocketChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -62,7 +62,7 @@ * <p> Socket options are configured using the {@link #setOption(SocketOption,Object) * setOption} method. Asynchronous socket channels support the following options: * <blockquote> - * <table border> + * <table border summary="Socket options"> * <tr> * <th>Option Name</th> * <th>Description</th> @@ -91,7 +91,7 @@ * </blockquote> * Additional (implementation specific) options may also be supported. * - * <h4>Timeouts</h4> + * <h2>Timeouts</h2> * * <p> The {@link #read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read} * and {@link #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write} @@ -123,6 +123,9 @@ /** * Initializes a new instance of this class. + * + * @param provider + * The provider that created this channel */ protected AsynchronousSocketChannel(AsynchronousChannelProvider provider) { this.provider = provider; @@ -130,6 +133,8 @@ /** * Returns the provider that created this channel. + * + * @return The provider that created this channel */ public final AsynchronousChannelProvider provider() { return provider; @@ -287,6 +292,8 @@ * java.lang.SecurityManager#checkConnect checkConnect} method permits * connecting to the address and port number of the given remote endpoint. * + * @param <A> + * The type of the attachment * @param remote * The remote address to which this channel is to be connected * @param attachment @@ -365,6 +372,8 @@ * AsynchronousByteChannel#read(ByteBuffer,Object,CompletionHandler)} * method. * + * @param <A> + * The type of the attachment * @param dst * The buffer into which bytes are to be transferred * @param timeout @@ -461,6 +470,8 @@ * read from the channel will cause an unspecific runtime exception to be * thrown. * + * @param <A> + * The type of the attachment * @param dsts * The buffers into which bytes are to be transferred * @param offset @@ -520,6 +531,8 @@ * AsynchronousByteChannel#write(ByteBuffer,Object,CompletionHandler)} * method. * + * @param <A> + * The type of the attachment * @param src * The buffer from which bytes are to be retrieved * @param timeout @@ -610,6 +623,8 @@ * to write to the channel will cause an unspecific runtime exception to be * thrown. * + * @param <A> + * The type of the attachment * @param srcs * The buffers from which bytes are to be retrieved * @param offset
--- a/src/share/classes/java/nio/channels/DatagramChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/DatagramChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -57,7 +57,7 @@ * setOption} method. A datagram channel to an Internet Protocol socket supports * the following options: * <blockquote> - * <table border> + * <table border summary="Socket options"> * <tr> * <th>Option Name</th> * <th>Description</th> @@ -117,6 +117,9 @@ /** * Initializes a new instance of this class. + * + * @param provider + * The provider that created this channel */ protected DatagramChannel(SelectorProvider provider) { super(provider);
--- a/src/share/classes/java/nio/channels/FileChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/FileChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -46,7 +46,7 @@ * of bytes that can be read and written and whose current {@link #size * <i>size</i>} can be queried. The size of the file increases * when bytes are written beyond its current size; the size of the file - * decreases when it is {@link #truncate </code><i>truncated</i><code>}. The + * decreases when it is {@link #truncate <i>truncated</i>}. The * file may also have some associated <i>metadata</i> such as access * permissions, content type, and last-modification time; this class does not * define methods for metadata access. @@ -830,7 +830,7 @@ * <p> A region of a file may be mapped into memory in one of three modes: * </p> * - * <ul type=disc> + * <ul> * * <li><p> <i>Read-only:</i> Any attempt to modify the resulting buffer * will cause a {@link java.nio.ReadOnlyBufferException} to be thrown.
--- a/src/share/classes/java/nio/channels/FileLock.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/FileLock.java Thu Jul 11 12:31:10 2013 -0700 @@ -72,7 +72,7 @@ * <p> File-lock objects are safe for use by multiple concurrent threads. * * - * <a name="pdep"><h4> Platform dependencies </h4></a> + * <a name="pdep"></a><h2> Platform dependencies </h2> * * <p> This file-locking API is intended to map directly to the native locking * facility of the underlying operating system. Thus the locks held on a file @@ -261,6 +261,11 @@ /** * Tells whether or not this lock overlaps the given lock range. * + * @param position + * The starting position of the lock range + * @param size + * The size of the lock range + * * @return <tt>true</tt> if, and only if, this lock and the given lock * range overlap by at least one byte */
--- a/src/share/classes/java/nio/channels/MulticastChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/MulticastChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -71,7 +71,7 @@ * MembershipKey#drop drop} method drops membership so that datagrams from the * source address can no longer be received. * - * <h4>Platform dependencies</h4> + * <h2>Platform dependencies</h2> * * The multicast implementation is intended to map directly to the native * multicasting facility. Consequently, the following items should be considered
--- a/src/share/classes/java/nio/channels/NetworkChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/NetworkChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -106,6 +106,8 @@ /** * Sets the value of a socket option. * + * @param <T> + * The type of the socket option value * @param name * The socket option * @param value @@ -130,6 +132,8 @@ /** * Returns the value of a socket option. * + * @param <T> + * The type of the socket option value * @param name * The socket option *
--- a/src/share/classes/java/nio/channels/Pipe.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/Pipe.java Thu Jul 11 12:31:10 2013 -0700 @@ -33,10 +33,9 @@ * A pair of channels that implements a unidirectional pipe. * * <p> A pipe consists of a pair of channels: A writable {@link - * Pipe.SinkChannel </code>sink<code>} channel and a readable {@link - * Pipe.SourceChannel </code>source<code>} channel. Once some bytes are - * written to the sink channel they can be read from source channel in exactly - * the order in which they were written. + * Pipe.SinkChannel sink} channel and a readable {@link Pipe.SourceChannel source} + * channel. Once some bytes are written to the sink channel they can be read + * from source channel in exactlyAthe order in which they were written. * * <p> Whether or not a thread writing bytes to a pipe will block until another * thread reads those bytes, or some previously-written bytes, from the pipe is @@ -63,6 +62,9 @@ { /** * Constructs a new instance of this class. + * + * @param provider + * The selector provider */ protected SourceChannel(SelectorProvider provider) { super(provider); @@ -94,6 +96,9 @@ { /** * Initializes a new instance of this class. + * + * @param provider + * The selector provider */ protected SinkChannel(SelectorProvider provider) { super(provider);
--- a/src/share/classes/java/nio/channels/SelectableChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/SelectableChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -64,8 +64,8 @@ * threads. </p> * * - * <a name="bm"> - * <h4>Blocking mode</h4> + * <a name="bm"></a> + * <h2>Blocking mode</h2> * * A selectable channel is either in <i>blocking</i> mode or in * <i>non-blocking</i> mode. In blocking mode, every I/O operation invoked @@ -142,6 +142,9 @@ * Retrieves the key representing the channel's registration with the given * selector. * + * @param sel + * The selector + * * @return The key returned when this channel was last registered with the * given selector, or <tt>null</tt> if this channel is not * currently registered with that selector
--- a/src/share/classes/java/nio/channels/SelectionKey.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/SelectionKey.java Thu Jul 11 12:31:10 2013 -0700 @@ -42,7 +42,7 @@ * next selection operation. The validity of a key may be tested by invoking * its {@link #isValid isValid} method. * - * <a name="opsets"> + * <a name="opsets"></a> * * <p> A selection key contains two <i>operation sets</i> represented as * integer values. Each bit of an operation set denotes a category of
--- a/src/share/classes/java/nio/channels/Selector.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/Selector.java Thu Jul 11 12:31:10 2013 -0700 @@ -36,13 +36,13 @@ * * <p> A selector may be created by invoking the {@link #open open} method of * this class, which will use the system's default {@link - * java.nio.channels.spi.SelectorProvider </code>selector provider<code>} to + * java.nio.channels.spi.SelectorProvider selector provider} to * create a new selector. A selector may also be created by invoking the * {@link java.nio.channels.spi.SelectorProvider#openSelector openSelector} * method of a custom selector provider. A selector remains open until it is * closed via its {@link #close close} method. * - * <a name="ks"> + * <a name="ks"></a> * * <p> A selectable channel's registration with a selector is represented by a * {@link SelectionKey} object. A selector maintains three sets of selection @@ -80,18 +80,18 @@ * during the next selection operation, at which time the key will removed from * all of the selector's key sets. * - * <a name="sks"><p> Keys are added to the selected-key set by selection + * <a name="sks"></a><p> Keys are added to the selected-key set by selection * operations. A key may be removed directly from the selected-key set by * invoking the set's {@link java.util.Set#remove(java.lang.Object) remove} * method or by invoking the {@link java.util.Iterator#remove() remove} method - * of an {@link java.util.Iterator </code>iterator<code>} obtained from the + * of an {@link java.util.Iterator iterator} obtained from the * set. Keys are never removed from the selected-key set in any other way; * they are not, in particular, removed as a side effect of selection * operations. Keys may not be added directly to the selected-key set. </p> * * - * <a name="selop"> - * <h4>Selection</h4> + * <a name="selop"></a> + * <h2>Selection</h2> * * <p> During each selection operation, keys may be added to and removed from a * selector's selected-key set and may be removed from its key and @@ -111,7 +111,7 @@ * operation began. For a channel that is ready for at least one such * operation, one of the following two actions is performed: </p> * - * <ol type=a> + * <ol> * * <li><p> If the channel's key is not already in the selected-key set then * it is added to that set and its ready-operation set is modified to @@ -126,7 +126,7 @@ * words, the ready set returned by the underlying system is * bitwise-disjoined into the key's current ready set. </p></li> * - * </ol></li> + * </ol> * * If all of the keys in the key set at the start of this step have empty * interest sets then neither the selected-key set nor any of the keys' @@ -142,7 +142,7 @@ * difference between the three selection methods. </p> * * - * <h4>Concurrency</h4> + * <h2>Concurrency</h2> * * <p> Selectors are themselves safe for use by multiple concurrent threads; * their key sets, however, are not. @@ -183,7 +183,7 @@ * <p> The {@link #close close} method synchronizes on the selector and all * three key sets in the same order as in a selection operation. * - * <a name="ksc"> + * <a name="ksc"></a> * * <p> A selector's key and selected-key sets are not, in general, safe for use * by multiple concurrent threads. If such a thread might modify one of these
--- a/src/share/classes/java/nio/channels/ServerSocketChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/ServerSocketChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -46,7 +46,7 @@ * <p> Socket options are configured using the {@link #setOption(SocketOption,Object) * setOption} method. Server-socket channels support the following options: * <blockquote> - * <table border> + * <table border summary="Socket options"> * <tr> * <th>Option Name</th> * <th>Description</th> @@ -78,6 +78,9 @@ /** * Initializes a new instance of this class. + * + * @param provider + * The provider that created this channel */ protected ServerSocketChannel(SelectorProvider provider) { super(provider);
--- a/src/share/classes/java/nio/channels/SocketChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/SocketChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -66,7 +66,7 @@ * <p> Socket options are configured using the {@link #setOption(SocketOption,Object) * setOption} method. Socket channels support the following options: * <blockquote> - * <table border> + * <table border summary="Socket options"> * <tr> * <th>Option Name</th> * <th>Description</th> @@ -120,6 +120,9 @@ /** * Initializes a new instance of this class. + * + * @param provider + * The provider that created this channel */ protected SocketChannel(SelectorProvider provider) { super(provider); @@ -153,6 +156,8 @@ * @param remote * The remote address to which the new channel is to be connected * + * @return A new, and connected, socket channel + * * @throws AsynchronousCloseException * If another thread closes this channel * while the connect operation is in progress
--- a/src/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -46,7 +46,7 @@ * before and after, respectively, invoking an I/O operation that might block * indefinitely. In order to ensure that the {@link #end end} method is always * invoked, these methods should be used within a - * <tt>try</tt> ... <tt>finally</tt> block: <a name="be"> + * <tt>try</tt> ... <tt>finally</tt> block: * * <blockquote><pre> * boolean completed = false;
--- a/src/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java Thu Jul 11 12:31:10 2013 -0700 @@ -72,6 +72,9 @@ /** * Initializes a new instance of this class. + * + * @param provider + * The provider that created this channel */ protected AbstractSelectableChannel(SelectorProvider provider) { this.provider = provider; @@ -251,6 +254,9 @@ * that is blocked in an I/O operation upon this channel to return * immediately, either by throwing an exception or by returning normally. * </p> + * + * @throws IOException + * If an I/O error occurs */ protected abstract void implCloseSelectableChannel() throws IOException; @@ -299,6 +305,10 @@ * changing the blocking mode. This method is only invoked if the new mode * is different from the current mode. </p> * + * @param block If <tt>true</tt> then this channel will be placed in + * blocking mode; if <tt>false</tt> then it will be placed + * non-blocking mode + * * @throws IOException * If an I/O error occurs */
--- a/src/share/classes/java/nio/channels/spi/AbstractSelector.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/spi/AbstractSelector.java Thu Jul 11 12:31:10 2013 -0700 @@ -43,7 +43,7 @@ * after, respectively, invoking an I/O operation that might block * indefinitely. In order to ensure that the {@link #end end} method is always * invoked, these methods should be used within a - * <tt>try</tt> ... <tt>finally</tt> block: <a name="be"> + * <tt>try</tt> ... <tt>finally</tt> block: * * <blockquote><pre> * try { @@ -77,6 +77,9 @@ /** * Initializes a new instance of this class. + * + * @param provider + * The provider that created this selector */ protected AbstractSelector(SelectorProvider provider) { this.provider = provider;
--- a/src/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java Thu Jul 11 12:31:10 2013 -0700 @@ -174,6 +174,8 @@ * @param threadFactory * The factory to use when creating new threads * + * @return A new asynchronous channel group + * * @throws IllegalArgumentException * If {@code nThreads <= 0} * @throws IOException @@ -193,6 +195,8 @@ * A value {@code >=0} or a negative value for implementation * specific default * + * @return A new asynchronous channel group + * * @throws IOException * If an I/O error occurs *
--- a/src/share/classes/java/nio/channels/spi/SelectorProvider.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/channels/spi/SelectorProvider.java Thu Jul 11 12:31:10 2013 -0700 @@ -183,6 +183,9 @@ * Opens a datagram channel. * * @return The new channel + * + * @throws IOException + * If an I/O error occurs */ public abstract DatagramChannel openDatagramChannel() throws IOException; @@ -209,6 +212,9 @@ * Opens a pipe. * * @return The new pipe + * + * @throws IOException + * If an I/O error occurs */ public abstract Pipe openPipe() throws IOException; @@ -217,6 +223,9 @@ * Opens a selector. * * @return The new selector + * + * @throws IOException + * If an I/O error occurs */ public abstract AbstractSelector openSelector() throws IOException; @@ -225,6 +234,9 @@ * Opens a server-socket channel. * * @return The new channel + * + * @throws IOException + * If an I/O error occurs */ public abstract ServerSocketChannel openServerSocketChannel() throws IOException; @@ -233,6 +245,9 @@ * Opens a socket channel. * * @return The new channel + * + * @throws IOException + * If an I/O error occurs */ public abstract SocketChannel openSocketChannel() throws IOException;
--- a/src/share/classes/java/nio/charset/Charset-X-Coder.java.template Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/charset/Charset-X-Coder.java.template Thu Jul 11 12:31:10 2013 -0700 @@ -163,6 +163,9 @@ * Initializes a new $coder$. The new $coder$ will have the given * $otypes-per-itype$ and replacement values. * + * @param cs + * The charset that created this $coder$ + * * @param average$ItypesPerOtype$ * A positive float value indicating the expected number of * $otype$s that will be produced for each input $itype$ @@ -209,6 +212,9 @@ * $otypes-per-itype$ values and its replacement will be the * $replTypeName$ $defaultReplName$. * + * @param cs + * The charset that created this $coder$ + * * @param average$ItypesPerOtype$ * A positive float value indicating the expected number of * $otype$s that will be produced for each input $itype$ @@ -386,6 +392,8 @@ * <p> The default implementation of this method does nothing. This method * should be overridden by $coder$s that require notification of changes to * the malformed-input action. </p> + * + * @param newAction The new action */ protected void implOnMalformedInput(CodingErrorAction newAction) { } @@ -428,6 +436,8 @@ * <p> The default implementation of this method does nothing. This method * should be overridden by $coder$s that require notification of changes to * the unmappable-character action. </p> + * + * @param newAction The new action */ protected void implOnUnmappableCharacter(CodingErrorAction newAction) { } @@ -925,6 +935,9 @@ * <p> The default implementation of this method is not very efficient; it * should generally be overridden to improve performance. </p> * + * @param c + * The given character + * * @return <tt>true</tt> if, and only if, this encoder can encode * the given character * @@ -953,6 +966,9 @@ * <p> The default implementation of this method is not very efficient; it * should generally be overridden to improve performance. </p> * + * @param cs + * The given character sequence + * * @return <tt>true</tt> if, and only if, this encoder can encode * the given character without throwing any exceptions and without * performing any replacements
--- a/src/share/classes/java/nio/charset/Charset.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/charset/Charset.java Thu Jul 11 12:31:10 2013 -0700 @@ -66,7 +66,7 @@ * * * <a name="names"><a name="charenc"> - * <h4>Charset names</h4> + * <h2>Charset names</h2> * * <p> Charsets are named by strings composed of the following characters: * @@ -140,7 +140,7 @@ * previous canonical name be made into an alias. * * - * <h4>Standard charsets</h4> + * <h2>Standard charsets</h2> * * <a name="standard"> * @@ -217,7 +217,7 @@ * <p>The {@link StandardCharsets} class defines constants for each of the * standard charsets. * - * <h4>Terminology</h4> + * <h2>Terminology</h2> * * <p> The name of this class is taken from the terms used in * <a href="http://www.ietf.org/rfc/rfc2278.txt"><i>RFC 2278</i></a>. @@ -737,6 +737,9 @@ * it is not necessarily the case that the given charset is not contained * in this charset. * + * @param cs + * The given charset + * * @return <tt>true</tt> if the given charset is contained in this charset */ public abstract boolean contains(Charset cs);
--- a/src/share/classes/java/nio/charset/CoderResult.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/charset/CoderResult.java Thu Jul 11 12:31:10 2013 -0700 @@ -227,6 +227,9 @@ * Static factory method that returns the unique object describing a * malformed-input error of the given length. * + * @param length + * The given length + * * @return The requested coder-result object */ public static CoderResult malformedForLength(int length) { @@ -243,6 +246,9 @@ * Static factory method that returns the unique result object describing * an unmappable-character error of the given length. * + * @param length + * The given length + * * @return The requested coder-result object */ public static CoderResult unmappableForLength(int length) {
--- a/src/share/classes/java/nio/charset/spi/CharsetProvider.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/charset/spi/CharsetProvider.java Thu Jul 11 12:31:10 2013 -0700 @@ -39,8 +39,8 @@ * the usual extension directories. Providers may also be made available by * adding them to the applet or application class path or by some other * platform-specific means. Charset providers are looked up via the current - * thread's {@link java.lang.Thread#getContextClassLoader() </code>context - * class loader<code>}. + * thread's {@link java.lang.Thread#getContextClassLoader() context class + * loader}. * * <p> A charset provider identifies itself with a provider-configuration file * named <tt>java.nio.charset.spi.CharsetProvider</tt> in the resource
--- a/src/share/classes/java/nio/file/FileStore.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/FileStore.java Thu Jul 11 12:31:10 2013 -0700 @@ -173,6 +173,8 @@ * The {@code type} parameter is the type of the attribute view required and * the method returns an instance of that type if supported. * + * @param <V> + * The {@code FileStoreAttributeView} type * @param type * the {@code Class} object corresponding to the attribute view *
--- a/src/share/classes/java/nio/file/FileSystem.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/FileSystem.java Thu Jul 11 12:31:10 2013 -0700 @@ -315,7 +315,7 @@ * that resembles regular expressions but with a simpler syntax. For example: * * <blockquote> - * <table border="0"> + * <table border="0" summary="Pattern Language"> * <tr> * <td>{@code *.java}</td> * <td>Matches a path that represents a file name ending in {@code .java}</td>
--- a/src/share/classes/java/nio/file/FileSystems.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/FileSystems.java Thu Jul 11 12:31:10 2013 -0700 @@ -200,6 +200,10 @@ * existing file system. In the case of the {@link FileSystems#getDefault * default} file system, no permission check is required. * + * @param uri the URI to locate the file system + * + * @return the reference to the file system + * * @throws IllegalArgumentException * if the pre-conditions for the {@code uri} parameter are not met * @throws FileSystemNotFoundException
--- a/src/share/classes/java/nio/file/Files.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/Files.java Thu Jul 11 12:31:10 2013 -0700 @@ -194,7 +194,7 @@ * <p> In the addition to {@code READ} and {@code WRITE}, the following * options may be present: * - * <table border=1 cellpadding=5 summary=""> + * <table border=1 cellpadding=5 summary="Options"> * <tr> <th>Option</th> <th>Description</th> </tr> * <tr> * <td> {@link StandardOpenOption#APPEND APPEND} </td> @@ -1616,7 +1616,8 @@ * } * </pre> * - * + * @param <V> + * The {@code FileAttributeView} type * @param path * the path to the file * @param type @@ -1665,6 +1666,8 @@ * PosixFileAttributes attrs = Files.readAttributes(path, PosixFileAttributes.class, NOFOLLOW_LINKS); * </pre> * + * @param <A> + * The {@code BasicFileAttributes} type * @param path * the path to the file * @param type @@ -1863,7 +1866,7 @@ * attributes} parameter: * * <blockquote> - * <table border="0"> + * <table border="0" summary="Possible values"> * <tr> * <td> {@code "*"} </td> * <td> Read all {@link BasicFileAttributes basic-file-attributes}. </td> @@ -1971,10 +1974,12 @@ * System Interface (POSIX) family of standards. * * @param path - * A file reference that locates the file + * The path to the file * @param perms * The new set of permissions * + * @return The path + * * @throws UnsupportedOperationException * if the associated file system does not support the {@code * PosixFileAttributeView} @@ -2009,7 +2014,7 @@ * access to a file attribute that is the owner of the file. * * @param path - * A file reference that locates the file + * The path to the file * @param options * options indicating how symbolic links are handled * @@ -2052,10 +2057,12 @@ * </pre> * * @param path - * A file reference that locates the file + * The path to the file * @param owner * The new file owner * + * @return The path + * * @throws UnsupportedOperationException * if the associated file system does not support the {@code * FileOwnerAttributeView} @@ -2090,6 +2097,8 @@ * readAttributes} method and the file type tested with the {@link * BasicFileAttributes#isSymbolicLink} method. * + * @param path The path to the file + * * @return {@code true} if the file is a symbolic link; {@code false} if * the file does not exist, is not a symbolic link, or it cannot * be determined if the file is a symbolic link or not. @@ -2239,7 +2248,7 @@ * @param time * the new last modified time * - * @return the file + * @return the path * * @throws IOException * if an I/O error occurs
--- a/src/share/classes/java/nio/file/Path.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/Path.java Thu Jul 11 12:31:10 2013 -0700 @@ -64,7 +64,7 @@ * those developing custom file system implementations. Methods may be added to * this interface in future releases. </p> * - * <h4>Accessing Files</h4> + * <h2>Accessing Files</h2> * <p> Paths may be used with the {@link Files} class to operate on files, * directories, and other types of files. For example, suppose we want a {@link * java.io.BufferedReader} to read text from a file "{@code access.log}". The @@ -75,7 +75,7 @@ * BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8); * </pre> * - * <a name="interop"><h4>Interoperability</h4></a> + * <a name="interop"></a><h2>Interoperability</h2> * <p> Paths associated with the default {@link * java.nio.file.spi.FileSystemProvider provider} are generally interoperable * with the {@link java.io.File java.io.File} class. Paths created by other @@ -87,7 +87,7 @@ * addition, the {@link #toFile toFile} method is useful to construct a {@code * File} from the {@code String} representation of a {@code Path}. * - * <h4>Concurrency</h4> + * <h2>Concurrency</h2> * <p> Implementations of this interface are immutable and safe for use by * multiple concurrent threads. *
--- a/src/share/classes/java/nio/file/SecureDirectoryStream.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/SecureDirectoryStream.java Thu Jul 11 12:31:10 2013 -0700 @@ -122,6 +122,8 @@ * an optional list of attributes to set atomically when creating * the file * + * @return the seekable byte channel + * * @throws ClosedDirectoryStreamException * if the directory stream is closed * @throws IllegalArgumentException @@ -260,6 +262,8 @@ * then all methods to read or update attributes will throw {@link * ClosedDirectoryStreamException ClosedDirectoryStreamException}. * + * @param <V> + * The {@code FileAttributeView} type * @param type * the {@code Class} object corresponding to the file attribute view * @@ -288,6 +292,8 @@ * is created but methods to read or update attributes of the file will * fail when invoked and the file does not exist. * + * @param <V> + * The {@code FileAttributeView} type * @param path * the path of the file * @param type
--- a/src/share/classes/java/nio/file/WatchEvent.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/WatchEvent.java Thu Jul 11 12:31:10 2013 -0700 @@ -55,11 +55,16 @@ public static interface Kind<T> { /** * Returns the name of the event kind. + * + * @return the name of the event kind */ String name(); /** * Returns the type of the {@link WatchEvent#context context} value. + * + * + * @return the type of the context value */ Class<T> type(); } @@ -76,6 +81,8 @@ public static interface Modifier { /** * Returns the name of the modifier. + * + * @return the name of the modifier */ String name(); }
--- a/src/share/classes/java/nio/file/WatchService.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/WatchService.java Thu Jul 11 12:31:10 2013 -0700 @@ -78,7 +78,7 @@ * The {@link java.nio.channels.FileChannel FileChannel} class defines methods * to lock regions of a file against access by other programs. * - * <h4>Platform dependencies</h4> + * <h2>Platform dependencies</h2> * * <p> The implementation that observes events from the file system is intended * to map directly on to the native file event notification facility where
--- a/src/share/classes/java/nio/file/attribute/AclEntry.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/attribute/AclEntry.java Thu Jul 11 12:31:10 2013 -0700 @@ -134,6 +134,7 @@ /** * Sets the type component of this builder. * + * @param type the component type * @return this builder */ public Builder setType(AclEntryType type) { @@ -146,6 +147,7 @@ /** * Sets the principal component of this builder. * + * @param who the principal component * @return this builder */ public Builder setPrincipal(UserPrincipal who) { @@ -168,6 +170,7 @@ * Sets the permissions component of this builder. On return, the * permissions component of this builder is a copy of the given set. * + * @param perms the permissions component * @return this builder * * @throws ClassCastException @@ -193,6 +196,7 @@ * permissions component of this builder is a copy of the permissions in * the given array. * + * @param perms the permissions component * @return this builder */ public Builder setPermissions(AclEntryPermission... perms) { @@ -211,6 +215,7 @@ * Sets the flags component of this builder. On return, the flags * component of this builder is a copy of the given set. * + * @param flags the flags component * @return this builder * * @throws ClassCastException @@ -236,6 +241,7 @@ * component of this builder is a copy of the flags in the given * array. * + * @param flags the flags component * @return this builder */ public Builder setFlags(AclEntryFlag... flags) { @@ -267,9 +273,7 @@ /** * Constructs a new builder with the components of an existing ACL entry. * - * @param entry - * an ACL entry - * + * @param entry an ACL entry * @return a new builder */ public static Builder newBuilder(AclEntry entry) { @@ -278,6 +282,8 @@ /** * Returns the ACL entry type. + * + * @return the ACL entry type */ public AclEntryType type() { return type; @@ -285,6 +291,8 @@ /** * Returns the principal component. + * + * @return the principal component */ public UserPrincipal principal() { return who; @@ -294,6 +302,8 @@ * Returns a copy of the permissions component. * * <p> The returned set is a modifiable copy of the permissions. + * + * @return the permissions component */ public Set<AclEntryPermission> permissions() { return new HashSet<AclEntryPermission>(perms); @@ -303,6 +313,8 @@ * Returns a copy of the flags component. * * <p> The returned set is a modifiable copy of the flags. + * + * @return the flags component */ public Set<AclEntryFlag> flags() { return new HashSet<AclEntryFlag>(flags);
--- a/src/share/classes/java/nio/file/attribute/AclFileAttributeView.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/attribute/AclFileAttributeView.java Thu Jul 11 12:31:10 2013 -0700 @@ -54,7 +54,7 @@ * supportsFileAttributeView} method can be used to test if a file system * supports ACLs. * - * <a name="interop"><h4>Interoperability</h4></a> + * <h2>Interoperability</h2> * * RFC 3530 allows for special user identities to be used on platforms that * support the POSIX defined access permissions. The special user identities @@ -65,7 +65,7 @@ * UserPrincipalLookupService} may be used to obtain a {@link UserPrincipal} * to represent these special identities by invoking the {@link * UserPrincipalLookupService#lookupPrincipalByName lookupPrincipalByName} - * method. </p> + * method. * * <p> <b>Usage Example:</b> * Suppose we wish to add an entry to an existing ACL to grant "joe" access: @@ -90,11 +90,11 @@ * view.setAcl(acl); * </pre> * - * <h4> Dynamic Access </h4> + * <h2> Dynamic Access </h2> * <p> Where dynamic access to file attributes is required, the attributes * supported by this attribute view are as follows: * <blockquote> - * <table border="1" cellpadding="8"> + * <table border="1" cellpadding="8" summary="Supported attributes"> * <tr> * <th> Name </th> * <th> Type </th> @@ -118,7 +118,7 @@ * update the ACL or owner attributes as if by invoking the {@link #setAcl setAcl} * or {@link #setOwner setOwner} methods. * - * <h4> Setting the ACL when creating a file </h4> + * <h2> Setting the ACL when creating a file </h2> * * <p> Implementations supporting this attribute view may also support setting * the initial ACL when creating a file or directory. The initial ACL
--- a/src/share/classes/java/nio/file/attribute/AttributeView.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/attribute/AttributeView.java Thu Jul 11 12:31:10 2013 -0700 @@ -38,6 +38,8 @@ public interface AttributeView { /** * Returns the name of the attribute view. + * + * @return the name of the attribute view */ String name(); }
--- a/src/share/classes/java/nio/file/attribute/BasicFileAttributeView.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/attribute/BasicFileAttributeView.java Thu Jul 11 12:31:10 2013 -0700 @@ -41,7 +41,7 @@ * <p> Where dynamic access to file attributes is required, the attributes * supported by this attribute view have the following names and types: * <blockquote> - * <table border="1" cellpadding="8"> + * <table border="1" cellpadding="8" summary="Supported attributes"> * <tr> * <th> Name </th> * <th> Type </th>
--- a/src/share/classes/java/nio/file/attribute/BasicFileAttributes.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/attribute/BasicFileAttributes.java Thu Jul 11 12:31:10 2013 -0700 @@ -87,22 +87,31 @@ /** * Tells whether the file is a regular file with opaque content. + * + * @return {@code true} if the file is a regular file with opaque content */ boolean isRegularFile(); /** * Tells whether the file is a directory. + * + * @return {@code true} if the file is a directory */ boolean isDirectory(); /** * Tells whether the file is a symbolic link. + * + * @return {@code true} if the file is a symbolic link */ boolean isSymbolicLink(); /** * Tells whether the file is something other than a regular file, directory, * or symbolic link. + * + * @return {@code true} if the file something other than a regular file, + * directory or symbolic link */ boolean isOther(); @@ -138,6 +147,8 @@ * and two files are the {@link java.nio.file.Files#isSameFile same} with * non-{@code null} file keys, then their file keys are equal. * + * @return an object that uniquely identifies the given file, or {@code null} + * * @see java.nio.file.Files#walkFileTree */ Object fileKey();
--- a/src/share/classes/java/nio/file/attribute/DosFileAttributeView.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/attribute/DosFileAttributeView.java Thu Jul 11 12:31:10 2013 -0700 @@ -41,7 +41,7 @@ * BasicFileAttributeView}, and in addition, the following attributes are * supported: * <blockquote> - * <table border="1" cellpadding="8"> + * <table border="1" cellpadding="8" summary="Supported attributes"> * <tr> * <th> Name </th> * <th> Type </th>
--- a/src/share/classes/java/nio/file/attribute/FileAttribute.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/attribute/FileAttribute.java Thu Jul 11 12:31:10 2013 -0700 @@ -40,11 +40,15 @@ public interface FileAttribute<T> { /** * Returns the attribute name. + * + * @return The attribute name */ String name(); /** * Returns the attribute value. + * + * @return The attribute value */ T value(); }
--- a/src/share/classes/java/nio/file/attribute/PosixFileAttributeView.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/attribute/PosixFileAttributeView.java Thu Jul 11 12:31:10 2013 -0700 @@ -68,13 +68,13 @@ * PosixFilePermissions.toString(attrs.permissions())); * </pre> * - * <h4> Dynamic Access </h4> + * <h2> Dynamic Access </h2> * <p> Where dynamic access to file attributes is required, the attributes * supported by this attribute view are as defined by {@link * BasicFileAttributeView} and {@link FileOwnerAttributeView}, and in addition, * the following attributes are supported: * <blockquote> - * <table border="1" cellpadding="8"> + * <table border="1" cellpadding="8" summary="Supported attributes"> * <tr> * <th> Name </th> * <th> Type </th> @@ -102,7 +102,7 @@ * #setPermissions setPermissions}, {@link #setOwner setOwner}, and {@link * #setGroup setGroup} methods respectively. * - * <h4> Setting Initial Permissions </h4> + * <h2> Setting Initial Permissions </h2> * <p> Implementations supporting this attribute view may also support setting * the initial permissions when creating a file or directory. The * initial permissions are provided to the {@link Files#createFile createFile}
--- a/src/share/classes/java/nio/file/spi/FileSystemProvider.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/nio/file/spi/FileSystemProvider.java Thu Jul 11 12:31:10 2013 -0700 @@ -287,6 +287,8 @@ * @param uri * The URI to convert * + * @return The resulting {@code Path} + * * @throws IllegalArgumentException * If the URI scheme does not identify this provider or other * preconditions on the uri parameter do not hold @@ -751,6 +753,8 @@ * @param link * the path to the symbolic link * + * @return The target of the symbolic link + * * @throws UnsupportedOperationException * if the implementation does not support symbolic links * @throws NotLinkException @@ -984,6 +988,8 @@ * exactly the manner specified by the {@link Files#getFileAttributeView} * method. * + * @param <V> + * The {@code FileAttributeView} type * @param path * the path to the file * @param type @@ -1002,6 +1008,8 @@ * exactly the manner specified by the {@link * Files#readAttributes(Path,Class,LinkOption[])} method. * + * @param <A> + * The {@code BasicFileAttributes} type * @param path * the path to the file * @param type
--- a/src/share/classes/java/rmi/server/RMIClassLoader.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/rmi/server/RMIClassLoader.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -424,7 +424,7 @@ * * <ul> * - * <p><li>If the class loader is the system class loader (see + * <li><p>If the class loader is the system class loader (see * {@link ClassLoader#getSystemClassLoader}), a parent of the * system class loader such as the loader used for installed * extensions, or the bootstrap class loader (which may be @@ -433,7 +433,7 @@ * earlier cached value) is returned, or * <code>null</code> is returned if that property is not set. * - * <p><li>Otherwise, if the class loader is an instance of + * <li><p>Otherwise, if the class loader is an instance of * <code>URLClassLoader</code>, then the returned string is a * space-separated list of the external forms of the URLs returned * by invoking the <code>getURLs</code> methods of the loader. If @@ -452,7 +452,7 @@ * property (or possibly an earlier cached value) is returned, or * <code>null</code> is returned if that property is not set. * - * <p><li>Finally, if the class loader is not an instance of + * <li><p>Finally, if the class loader is not an instance of * <code>URLClassLoader</code>, then the value of the * <code>java.rmi.server.codebase</code> property (or possibly an * earlier cached value) is returned, or
--- a/src/share/classes/java/security/AccessControlContext.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AccessControlContext.java Thu Jul 11 12:31:10 2013 -0700 @@ -36,10 +36,10 @@ * based on the context it encapsulates. * * <p>More specifically, it encapsulates a context and - * has a single method, <code>checkPermission</code>, - * that is equivalent to the <code>checkPermission</code> method + * has a single method, {@code checkPermission}, + * that is equivalent to the {@code checkPermission} method * in the AccessController class, with one difference: The AccessControlContext - * <code>checkPermission</code> method makes access decisions based on the + * {@code checkPermission} method makes access decisions based on the * context it encapsulates, * rather than that of the current execution thread. * @@ -49,8 +49,8 @@ * <i>different</i> context (for example, from within a worker thread). * * <p> An AccessControlContext is created by calling the - * <code>AccessController.getContext</code> method. - * The <code>getContext</code> method takes a "snapshot" + * {@code AccessController.getContext} method. + * The {@code getContext} method takes a "snapshot" * of the current calling context, and places * it in an AccessControlContext object, which it returns. A sample call is * the following: @@ -61,7 +61,7 @@ * * <p> * Code within a different context can subsequently call the - * <code>checkPermission</code> method on the + * {@code checkPermission} method on the * previously-saved AccessControlContext object. A sample call is the * following: * @@ -121,7 +121,7 @@ * @param context the ProtectionDomains associated with this context. * The non-duplicate domains are copied from the array. Subsequent * changes to the array will not affect this AccessControlContext. - * @throws NullPointerException if <code>context</code> is <code>null</code> + * @throws NullPointerException if {@code context} is {@code null} */ public AccessControlContext(ProtectionDomain context[]) { @@ -147,22 +147,22 @@ } /** - * Create a new <code>AccessControlContext</code> with the given - * <code>AccessControlContext</code> and <code>DomainCombiner</code>. + * Create a new {@code AccessControlContext} with the given + * {@code AccessControlContext} and {@code DomainCombiner}. * This constructor associates the provided - * <code>DomainCombiner</code> with the provided - * <code>AccessControlContext</code>. + * {@code DomainCombiner} with the provided + * {@code AccessControlContext}. * * <p> * - * @param acc the <code>AccessControlContext</code> associated - * with the provided <code>DomainCombiner</code>. + * @param acc the {@code AccessControlContext} associated + * with the provided {@code DomainCombiner}. * - * @param combiner the <code>DomainCombiner</code> to be associated - * with the provided <code>AccessControlContext</code>. + * @param combiner the {@code DomainCombiner} to be associated + * with the provided {@code AccessControlContext}. * * @exception NullPointerException if the provided - * <code>context</code> is <code>null</code>. + * {@code context} is {@code null}. * * @exception SecurityException if a security manager is installed and the * caller does not have the "createAccessControlContext" @@ -320,13 +320,13 @@ } /** - * Get the <code>DomainCombiner</code> associated with this - * <code>AccessControlContext</code>. + * Get the {@code DomainCombiner} associated with this + * {@code AccessControlContext}. * * <p> * - * @return the <code>DomainCombiner</code> associated with this - * <code>AccessControlContext</code>, or <code>null</code> + * @return the {@code DomainCombiner} associated with this + * {@code AccessControlContext}, or {@code null} * if there is none. * * @exception SecurityException if a security manager is installed and
--- a/src/share/classes/java/security/AccessControlException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AccessControlException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -48,7 +48,7 @@ private Permission perm; /** - * Constructs an <code>AccessControlException</code> with the + * Constructs an {@code AccessControlException} with the * specified, detailed message. * * @param s the detail message. @@ -58,7 +58,7 @@ } /** - * Constructs an <code>AccessControlException</code> with the + * Constructs an {@code AccessControlException} with the * specified, detailed message, and the requested permission that caused * the exception. *
--- a/src/share/classes/java/security/AccessController.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AccessController.java Thu Jul 11 12:31:10 2013 -0700 @@ -49,7 +49,7 @@ * <p> The {@link #checkPermission(Permission) checkPermission} method * determines whether the access request indicated by a specified * permission should be granted or denied. A sample call appears - * below. In this example, <code>checkPermission</code> will determine + * below. In this example, {@code checkPermission} will determine * whether or not to grant "read" access to the file named "testFile" in * the "/temp" directory. * @@ -61,7 +61,7 @@ * </pre> * * <p> If a requested access is allowed, - * <code>checkPermission</code> returns quietly. If denied, an + * {@code checkPermission} returns quietly. If denied, an * AccessControlException is * thrown. AccessControlException can also be thrown if the requested * permission is of an incorrect type or contains an invalid value. @@ -69,8 +69,8 @@ * * Suppose the current thread traversed m callers, in the order of caller 1 * to caller 2 to caller m. Then caller m invoked the - * <code>checkPermission</code> method. - * The <code>checkPermission </code>method determines whether access + * {@code checkPermission} method. + * The {@code checkPermission} method determines whether access * is granted or denied based on the following algorithm: * * <pre> {@code @@ -102,20 +102,20 @@ * * <p> A caller can be marked as being "privileged" * (see {@link #doPrivileged(PrivilegedAction) doPrivileged} and below). - * When making access control decisions, the <code>checkPermission</code> + * When making access control decisions, the {@code checkPermission} * method stops checking if it reaches a caller that - * was marked as "privileged" via a <code>doPrivileged</code> + * was marked as "privileged" via a {@code doPrivileged} * call without a context argument (see below for information about a * context argument). If that caller's domain has the * specified permission and at least one limiting permission argument (if any) * implies the requested permission, no further checking is done and - * <code>checkPermission</code> + * {@code checkPermission} * returns quietly, indicating that the requested access is allowed. * If that domain does not have the specified permission, an exception * is thrown, as usual. If the caller's domain had the specified permission * but it was not implied by any limiting permission arguments given in the call - * to <code>doPrivileged</code> then the permission checking continues - * until there are no more callers or another <code>doPrivileged</code> + * to {@code doPrivileged} then the permission checking continues + * until there are no more callers or another {@code doPrivileged} * call matches the requested permission and returns normally. * * <p> The normal use of the "privileged" feature is as follows. If you @@ -137,17 +137,17 @@ * * <p> * PrivilegedAction is an interface with a single method, named - * <code>run</code>. + * {@code run}. * The above example shows creation of an implementation * of that interface; a concrete implementation of the - * <code>run</code> method is supplied. - * When the call to <code>doPrivileged</code> is made, an + * {@code run} method is supplied. + * When the call to {@code doPrivileged} is made, an * instance of the PrivilegedAction implementation is passed - * to it. The <code>doPrivileged</code> method calls the - * <code>run</code> method from the PrivilegedAction + * to it. The {@code doPrivileged} method calls the + * {@code run} method from the PrivilegedAction * implementation after enabling privileges, and returns the - * <code>run</code> method's return value as the - * <code>doPrivileged</code> return value (which is + * {@code run} method's return value as the + * {@code doPrivileged} return value (which is * ignored in this example). * * <p> If you need to return a value, you can do something like the following: @@ -164,11 +164,11 @@ * ...normal code here... * }}</pre> * - * <p>If the action performed in your <code>run</code> method could - * throw a "checked" exception (those listed in the <code>throws</code> clause + * <p>If the action performed in your {@code run} method could + * throw a "checked" exception (those listed in the {@code throws} clause * of a method), then you need to use the - * <code>PrivilegedExceptionAction</code> interface instead of the - * <code>PrivilegedAction</code> interface: + * {@code PrivilegedExceptionAction} interface instead of the + * {@code PrivilegedAction} interface: * * <pre> {@code * somemethod() throws FileNotFoundException { @@ -191,18 +191,18 @@ * * <p> Be *very* careful in your use of the "privileged" construct, and * always remember to make the privileged code section as small as possible. - * You can pass <code>Permission</code> arguments to further limit the + * You can pass {@code Permission} arguments to further limit the * scope of the "privilege" (see below). * * - * <p> Note that <code>checkPermission</code> always performs security checks + * <p> Note that {@code checkPermission} always performs security checks * within the context of the currently executing thread. * Sometimes a security check that should be made within a given context * will actually need to be done from within a * <i>different</i> context (for example, from within a worker thread). * The {@link #getContext() getContext} method and * AccessControlContext class are provided - * for this situation. The <code>getContext</code> method takes a "snapshot" + * for this situation. The {@code getContext} method takes a "snapshot" * of the current calling context, and places * it in an AccessControlContext object, which it returns. A sample call is * the following: @@ -214,7 +214,7 @@ * </pre> * * <p> - * AccessControlContext itself has a <code>checkPermission</code> method + * AccessControlContext itself has a {@code checkPermission} method * that makes access decisions based on the context <i>it</i> encapsulates, * rather than that of the current execution thread. * Code within a different context can thus call that method on the @@ -230,7 +230,7 @@ * <p> There are also times where you don't know a priori which permissions * to check the context against. In these cases you can use the * doPrivileged method that takes a context. You can also limit the scope - * of the privileged code by passing additional <code>Permission</code> + * of the privileged code by passing additional {@code Permission} * parameters. * * <pre> {@code @@ -248,12 +248,12 @@ * }, acc, new FilePermission("/temp/*", read)); * ...normal code here... * }}</pre> - * <p> Passing a limiting <code>Permission</code> argument of an instance of - * <code>AllPermission</code> is equivalent to calling the equivalent - * <code>doPrivileged</code> method without limiting <code>Permission</code> - * arguments. Passing a zero length array of <code>Permission</code> disables + * <p> Passing a limiting {@code Permission} argument of an instance of + * {@code AllPermission} is equivalent to calling the equivalent + * {@code doPrivileged} method without limiting {@code Permission} + * arguments. Passing a zero length array of {@code Permission} disables * the code privileges so that checking always continues beyond the caller of - * that <code>doPrivileged</code> method. + * that {@code doPrivileged} method. * * @see AccessControlContext * @@ -269,11 +269,11 @@ private AccessController() { } /** - * Performs the specified <code>PrivilegedAction</code> with privileges + * Performs the specified {@code PrivilegedAction} with privileges * enabled. The action is performed with <i>all</i> of the permissions * possessed by the caller's protection domain. * - * <p> If the action's <code>run</code> method throws an (unchecked) + * <p> If the action's {@code run} method throws an (unchecked) * exception, it will propagate through this method. * * <p> Note that any DomainCombiner associated with the current @@ -281,9 +281,9 @@ * * @param action the action to be performed. * - * @return the value returned by the action's <code>run</code> method. + * @return the value returned by the action's {@code run} method. * - * @exception NullPointerException if the action is <code>null</code> + * @exception NullPointerException if the action is {@code null} * * @see #doPrivileged(PrivilegedAction,AccessControlContext) * @see #doPrivileged(PrivilegedExceptionAction) @@ -295,11 +295,11 @@ public static native <T> T doPrivileged(PrivilegedAction<T> action); /** - * Performs the specified <code>PrivilegedAction</code> with privileges + * Performs the specified {@code PrivilegedAction} with privileges * enabled. The action is performed with <i>all</i> of the permissions * possessed by the caller's protection domain. * - * <p> If the action's <code>run</code> method throws an (unchecked) + * <p> If the action's {@code run} method throws an (unchecked) * exception, it will propagate through this method. * * <p> This method preserves the current AccessControlContext's @@ -307,9 +307,9 @@ * * @param action the action to be performed. * - * @return the value returned by the action's <code>run</code> method. + * @return the value returned by the action's {@code run} method. * - * @exception NullPointerException if the action is <code>null</code> + * @exception NullPointerException if the action is {@code null} * * @see #doPrivileged(PrivilegedAction) * @see java.security.DomainCombiner @@ -364,17 +364,17 @@ /** - * Performs the specified <code>PrivilegedAction</code> with privileges + * Performs the specified {@code PrivilegedAction} with privileges * enabled and restricted by the specified - * <code>AccessControlContext</code> and with a privilege scope limited - * by specified <code>Permission</code> arguments. + * {@code AccessControlContext} and with a privilege scope limited + * by specified {@code Permission} arguments. * * The action is performed with the intersection of the permissions * possessed by the caller's protection domain, and those possessed * by the domains represented by the specified - * <code>AccessControlContext</code>. + * {@code AccessControlContext}. * <p> - * If the action's <code>run</code> method throws an (unchecked) exception, + * If the action's {@code run} method throws an (unchecked) exception, * it will propagate through this method. * * @param action the action to be performed. @@ -382,16 +382,16 @@ * representing the restriction to be applied to the * caller's domain's privileges before performing * the specified action. If the context is - * <code>null</code>, + * {@code null}, * then no additional restriction is applied. - * @param perms the <code>Permission</code> arguments which limit the + * @param perms the {@code Permission} arguments which limit the * scope of the caller's privileges. The number of arguments * is variable. * - * @return the value returned by the action's <code>run</code> method. + * @return the value returned by the action's {@code run} method. * * @throws NullPointerException if action or perms or any element of - * perms is <code>null</code> + * perms is {@code null} * * @see #doPrivileged(PrivilegedAction) * @see #doPrivileged(PrivilegedExceptionAction,AccessControlContext) @@ -413,17 +413,17 @@ /** - * Performs the specified <code>PrivilegedAction</code> with privileges + * Performs the specified {@code PrivilegedAction} with privileges * enabled and restricted by the specified - * <code>AccessControlContext</code> and with a privilege scope limited - * by specified <code>Permission</code> arguments. + * {@code AccessControlContext} and with a privilege scope limited + * by specified {@code Permission} arguments. * * The action is performed with the intersection of the permissions * possessed by the caller's protection domain, and those possessed * by the domains represented by the specified - * <code>AccessControlContext</code>. + * {@code AccessControlContext}. * <p> - * If the action's <code>run</code> method throws an (unchecked) exception, + * If the action's {@code run} method throws an (unchecked) exception, * it will propagate through this method. * * <p> This method preserves the current AccessControlContext's @@ -434,16 +434,16 @@ * representing the restriction to be applied to the * caller's domain's privileges before performing * the specified action. If the context is - * <code>null</code>, + * {@code null}, * then no additional restriction is applied. - * @param perms the <code>Permission</code> arguments which limit the + * @param perms the {@code Permission} arguments which limit the * scope of the caller's privileges. The number of arguments * is variable. * - * @return the value returned by the action's <code>run</code> method. + * @return the value returned by the action's {@code run} method. * * @throws NullPointerException if action or perms or any element of - * perms is <code>null</code> + * perms is {@code null} * * @see #doPrivileged(PrivilegedAction) * @see #doPrivileged(PrivilegedExceptionAction,AccessControlContext) @@ -469,11 +469,11 @@ } /** - * Performs the specified <code>PrivilegedExceptionAction</code> with + * Performs the specified {@code PrivilegedExceptionAction} with * privileges enabled. The action is performed with <i>all</i> of the * permissions possessed by the caller's protection domain. * - * <p> If the action's <code>run</code> method throws an <i>unchecked</i> + * <p> If the action's {@code run} method throws an <i>unchecked</i> * exception, it will propagate through this method. * * <p> Note that any DomainCombiner associated with the current @@ -481,11 +481,11 @@ * * @param action the action to be performed * - * @return the value returned by the action's <code>run</code> method + * @return the value returned by the action's {@code run} method * * @exception PrivilegedActionException if the specified action's - * <code>run</code> method threw a <i>checked</i> exception - * @exception NullPointerException if the action is <code>null</code> + * {@code run} method threw a <i>checked</i> exception + * @exception NullPointerException if the action is {@code null} * * @see #doPrivileged(PrivilegedAction) * @see #doPrivileged(PrivilegedExceptionAction,AccessControlContext) @@ -499,11 +499,11 @@ /** - * Performs the specified <code>PrivilegedExceptionAction</code> with + * Performs the specified {@code PrivilegedExceptionAction} with * privileges enabled. The action is performed with <i>all</i> of the * permissions possessed by the caller's protection domain. * - * <p> If the action's <code>run</code> method throws an <i>unchecked</i> + * <p> If the action's {@code run} method throws an <i>unchecked</i> * exception, it will propagate through this method. * * <p> This method preserves the current AccessControlContext's @@ -511,11 +511,11 @@ * * @param action the action to be performed. * - * @return the value returned by the action's <code>run</code> method + * @return the value returned by the action's {@code run} method * * @exception PrivilegedActionException if the specified action's - * <code>run</code> method threw a <i>checked</i> exception - * @exception NullPointerException if the action is <code>null</code> + * {@code run} method threw a <i>checked</i> exception + * @exception NullPointerException if the action is {@code null} * * @see #doPrivileged(PrivilegedAction) * @see #doPrivileged(PrivilegedExceptionAction,AccessControlContext) @@ -609,17 +609,17 @@ /** - * Performs the specified <code>PrivilegedExceptionAction</code> with + * Performs the specified {@code PrivilegedExceptionAction} with * privileges enabled and restricted by the specified - * <code>AccessControlContext</code> and with a privilege scope limited by - * specified <code>Permission</code> arguments. + * {@code AccessControlContext} and with a privilege scope limited by + * specified {@code Permission} arguments. * * The action is performed with the intersection of the permissions * possessed by the caller's protection domain, and those possessed * by the domains represented by the specified - * <code>AccessControlContext</code>. + * {@code AccessControlContext}. * <p> - * If the action's <code>run</code> method throws an (unchecked) exception, + * If the action's {@code run} method throws an (unchecked) exception, * it will propagate through this method. * * @param action the action to be performed. @@ -627,18 +627,18 @@ * representing the restriction to be applied to the * caller's domain's privileges before performing * the specified action. If the context is - * <code>null</code>, + * {@code null}, * then no additional restriction is applied. - * @param perms the <code>Permission</code> arguments which limit the + * @param perms the {@code Permission} arguments which limit the * scope of the caller's privileges. The number of arguments * is variable. * - * @return the value returned by the action's <code>run</code> method. + * @return the value returned by the action's {@code run} method. * * @throws PrivilegedActionException if the specified action's - * <code>run</code> method threw a <i>checked</i> exception + * {@code run} method threw a <i>checked</i> exception * @throws NullPointerException if action or perms or any element of - * perms is <code>null</code> + * perms is {@code null} * * @see #doPrivileged(PrivilegedAction) * @see #doPrivileged(PrivilegedAction,AccessControlContext) @@ -660,17 +660,17 @@ /** - * Performs the specified <code>PrivilegedExceptionAction</code> with + * Performs the specified {@code PrivilegedExceptionAction} with * privileges enabled and restricted by the specified - * <code>AccessControlContext</code> and with a privilege scope limited by - * specified <code>Permission</code> arguments. + * {@code AccessControlContext} and with a privilege scope limited by + * specified {@code Permission} arguments. * * The action is performed with the intersection of the permissions * possessed by the caller's protection domain, and those possessed * by the domains represented by the specified - * <code>AccessControlContext</code>. + * {@code AccessControlContext}. * <p> - * If the action's <code>run</code> method throws an (unchecked) exception, + * If the action's {@code run} method throws an (unchecked) exception, * it will propagate through this method. * * <p> This method preserves the current AccessControlContext's @@ -681,18 +681,18 @@ * representing the restriction to be applied to the * caller's domain's privileges before performing * the specified action. If the context is - * <code>null</code>, + * {@code null}, * then no additional restriction is applied. - * @param perms the <code>Permission</code> arguments which limit the + * @param perms the {@code Permission} arguments which limit the * scope of the caller's privileges. The number of arguments * is variable. * - * @return the value returned by the action's <code>run</code> method. + * @return the value returned by the action's {@code run} method. * * @throws PrivilegedActionException if the specified action's - * <code>run</code> method threw a <i>checked</i> exception + * {@code run} method threw a <i>checked</i> exception * @throws NullPointerException if action or perms or any element of - * perms is <code>null</code> + * perms is {@code null} * * @see #doPrivileged(PrivilegedAction) * @see #doPrivileged(PrivilegedAction,AccessControlContext) @@ -770,14 +770,14 @@ * This method quietly returns if the access request * is permitted, or throws an AccessControlException otherwise. The * getPermission method of the AccessControlException returns the - * <code>perm</code> Permission object instance. + * {@code perm} Permission object instance. * * @param perm the requested permission. * * @exception AccessControlException if the specified permission * is not permitted, based on the current security policy. * @exception NullPointerException if the specified permission - * is <code>null</code> and is checked based on the + * is {@code null} and is checked based on the * security policy currently in effect. */
--- a/src/share/classes/java/security/AlgorithmParameterGenerator.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AlgorithmParameterGenerator.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,10 +28,10 @@ import java.security.spec.AlgorithmParameterSpec; /** - * The <code>AlgorithmParameterGenerator</code> class is used to generate a + * The {@code AlgorithmParameterGenerator} class is used to generate a * set of * parameters to be used with a certain algorithm. Parameter generators - * are constructed using the <code>getInstance</code> factory methods + * are constructed using the {@code getInstance} factory methods * (static methods that return instances of a given class). * * <P>The object that will generate the parameters can be initialized @@ -61,17 +61,17 @@ * * <P>In case the client does not explicitly initialize the * AlgorithmParameterGenerator - * (via a call to an <code>init</code> method), each provider must supply (and + * (via a call to an {@code init} method), each provider must supply (and * document) a default initialization. For example, the Sun provider uses a * default modulus prime size of 1024 bits for the generation of DSA * parameters. * * <p> Every implementation of the Java platform is required to support the - * following standard <code>AlgorithmParameterGenerator</code> algorithms and + * following standard {@code AlgorithmParameterGenerator} algorithms and * keysizes in parentheses: * <ul> - * <li><tt>DiffieHellman</tt> (1024)</li> - * <li><tt>DSA</tt> (1024)</li> + * <li>{@code DiffieHellman} (1024)</li> + * <li>{@code DSA} (1024)</li> * </ul> * These algorithms are described in the <a href= * "{@docRoot}/../technotes/guides/security/StandardNames.html#AlgorithmParameterGenerator"> @@ -272,11 +272,11 @@ /** * Initializes this parameter generator for a certain size. - * To create the parameters, the <code>SecureRandom</code> + * To create the parameters, the {@code SecureRandom} * implementation of the highest-priority installed provider is used as * the source of randomness. * (If none of the installed providers supply an implementation of - * <code>SecureRandom</code>, a system-provided source of randomness is + * {@code SecureRandom}, a system-provided source of randomness is * used.) * * @param size the size (number of bits). @@ -299,11 +299,11 @@ /** * Initializes this parameter generator with a set of algorithm-specific * parameter generation values. - * To generate the parameters, the <code>SecureRandom</code> + * To generate the parameters, the {@code SecureRandom} * implementation of the highest-priority installed provider is used as * the source of randomness. * (If none of the installed providers supply an implementation of - * <code>SecureRandom</code>, a system-provided source of randomness is + * {@code SecureRandom}, a system-provided source of randomness is * used.) * * @param genParamSpec the set of algorithm-specific parameter generation values.
--- a/src/share/classes/java/security/AlgorithmParameterGeneratorSpi.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AlgorithmParameterGeneratorSpi.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -29,7 +29,7 @@ /** * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) - * for the <code>AlgorithmParameterGenerator</code> class, which + * for the {@code AlgorithmParameterGenerator} class, which * is used to generate a set of parameters to be used with a certain algorithm. * * <p> All the abstract methods in this class must be implemented by each @@ -37,7 +37,7 @@ * of a parameter generator for a particular algorithm. * * <p> In case the client does not explicitly initialize the - * AlgorithmParameterGenerator (via a call to an <code>engineInit</code> + * AlgorithmParameterGenerator (via a call to an {@code engineInit} * method), each provider must supply (and document) a default initialization. * For example, the Sun provider uses a default modulus prime size of 1024 * bits for the generation of DSA parameters.
--- a/src/share/classes/java/security/AlgorithmParameters.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AlgorithmParameters.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,28 +32,28 @@ /** * This class is used as an opaque representation of cryptographic parameters. * - * <p>An <code>AlgorithmParameters</code> object for managing the parameters + * <p>An {@code AlgorithmParameters} object for managing the parameters * for a particular algorithm can be obtained by - * calling one of the <code>getInstance</code> factory methods + * calling one of the {@code getInstance} factory methods * (static methods that return instances of a given class). * - * <p>Once an <code>AlgorithmParameters</code> object is obtained, it must be - * initialized via a call to <code>init</code>, using an appropriate parameter + * <p>Once an {@code AlgorithmParameters} object is obtained, it must be + * initialized via a call to {@code init}, using an appropriate parameter * specification or parameter encoding. * * <p>A transparent parameter specification is obtained from an - * <code>AlgorithmParameters</code> object via a call to - * <code>getParameterSpec</code>, and a byte encoding of the parameters is - * obtained via a call to <code>getEncoded</code>. + * {@code AlgorithmParameters} object via a call to + * {@code getParameterSpec}, and a byte encoding of the parameters is + * obtained via a call to {@code getEncoded}. * * <p> Every implementation of the Java platform is required to support the - * following standard <code>AlgorithmParameters</code> algorithms: + * following standard {@code AlgorithmParameters} algorithms: * <ul> - * <li><tt>AES</tt></li> - * <li><tt>DES</tt></li> - * <li><tt>DESede</tt></li> - * <li><tt>DiffieHellman</tt></li> - * <li><tt>DSA</tt></li> + * <li>{@code AES}</li> + * <li>{@code DES}</li> + * <li>{@code DESede}</li> + * <li>{@code DiffieHellman}</li> + * <li>{@code DSA}</li> * </ul> * These algorithms are described in the <a href= * "{@docRoot}/../technotes/guides/security/StandardNames.html#AlgorithmParameters"> @@ -123,7 +123,7 @@ * the {@link Security#getProviders() Security.getProviders()} method. * * <p> The returned parameter object must be initialized via a call to - * <code>init</code>, using an appropriate parameter specification or + * {@code init}, using an appropriate parameter specification or * parameter encoding. * * @param algorithm the name of the algorithm requested. @@ -165,7 +165,7 @@ * the {@link Security#getProviders() Security.getProviders()} method. * * <p>The returned parameter object must be initialized via a call to - * <code>init</code>, using an appropriate parameter specification or + * {@code init}, using an appropriate parameter specification or * parameter encoding. * * @param algorithm the name of the algorithm requested. @@ -212,7 +212,7 @@ * does not have to be registered in the provider list. * * <p>The returned parameter object must be initialized via a call to - * <code>init</code>, using an appropriate parameter specification or + * {@code init}, using an appropriate parameter specification or * parameter encoding. * * @param algorithm the name of the algorithm requested. @@ -259,7 +259,7 @@ /** * Initializes this parameter object using the parameters - * specified in <code>paramSpec</code>. + * specified in {@code paramSpec}. * * @param paramSpec the parameter specification. * @@ -295,9 +295,9 @@ } /** - * Imports the parameters from <code>params</code> and decodes them + * Imports the parameters from {@code params} and decodes them * according to the specified decoding scheme. - * If <code>format</code> is null, the + * If {@code format} is null, the * primary decoding format for parameters is used. The primary decoding * format is ASN.1, if an ASN.1 specification for these parameters * exists. @@ -318,11 +318,11 @@ /** * Returns a (transparent) specification of this parameter object. - * <code>paramSpec</code> identifies the specification class in which + * {@code paramSpec} identifies the specification class in which * the parameters should be returned. It could, for example, be - * <code>DSAParameterSpec.class</code>, to indicate that the + * {@code DSAParameterSpec.class}, to indicate that the * parameters should be returned in an instance of the - * <code>DSAParameterSpec</code> class. + * {@code DSAParameterSpec} class. * * @param paramSpec the specification class in which * the parameters should be returned. @@ -363,7 +363,7 @@ /** * Returns the parameters encoded in the specified scheme. - * If <code>format</code> is null, the + * If {@code format} is null, the * primary encoding format for parameters is used. The primary encoding * format is ASN.1, if an ASN.1 specification for these parameters * exists.
--- a/src/share/classes/java/security/AlgorithmParametersSpi.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AlgorithmParametersSpi.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,7 +31,7 @@ /** * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) - * for the <code>AlgorithmParameters</code> class, which is used to manage + * for the {@code AlgorithmParameters} class, which is used to manage * algorithm parameters. * * <p> All the abstract methods in this class must be implemented by each @@ -52,7 +52,7 @@ /** * Initializes this parameters object using the parameters - * specified in <code>paramSpec</code>. + * specified in {@code paramSpec}. * * @param paramSpec the parameter specification. * @@ -77,9 +77,9 @@ throws IOException; /** - * Imports the parameters from <code>params</code> and + * Imports the parameters from {@code params} and * decodes them according to the specified decoding format. - * If <code>format</code> is null, the + * If {@code format} is null, the * primary decoding format for parameters is used. The primary decoding * format is ASN.1, if an ASN.1 specification for these parameters * exists. @@ -96,11 +96,11 @@ /** * Returns a (transparent) specification of this parameters * object. - * <code>paramSpec</code> identifies the specification class in which + * {@code paramSpec} identifies the specification class in which * the parameters should be returned. It could, for example, be - * <code>DSAParameterSpec.class</code>, to indicate that the + * {@code DSAParameterSpec.class}, to indicate that the * parameters should be returned in an instance of the - * <code>DSAParameterSpec</code> class. + * {@code DSAParameterSpec} class. * * @param paramSpec the specification class in which * the parameters should be returned. @@ -128,7 +128,7 @@ /** * Returns the parameters encoded in the specified format. - * If <code>format</code> is null, the + * If {@code format} is null, the * primary encoding format for parameters is used. The primary encoding * format is ASN.1, if an ASN.1 specification for these parameters * exists.
--- a/src/share/classes/java/security/AllPermission.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AllPermission.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, 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 @@ -69,7 +69,7 @@ /** * Creates a new AllPermission object. This - * constructor exists for use by the <code>Policy</code> object + * constructor exists for use by the {@code Policy} object * to instantiate new Permission objects. * * @param name ignored
--- a/src/share/classes/java/security/AuthProvider.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/AuthProvider.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,8 +32,8 @@ /** * This class defines login and logout methods for a provider. * - * <p> While callers may invoke <code>login</code> directly, - * the provider may also invoke <code>login</code> on behalf of callers + * <p> While callers may invoke {@code login} directly, + * the provider may also invoke {@code login} on behalf of callers * if it determines that a login must be performed * prior to certain operations. * @@ -56,11 +56,11 @@ /** * Log in to this provider. * - * <p> The provider relies on a <code>CallbackHandler</code> + * <p> The provider relies on a {@code CallbackHandler} * to obtain authentication information from the caller - * (a PIN, for example). If the caller passes a <code>null</code> + * (a PIN, for example). If the caller passes a {@code null} * handler to this method, the provider uses the handler set in the - * <code>setCallbackHandler</code> method. + * {@code setCallbackHandler} method. * If no handler was set in that method, the provider queries the * <i>auth.login.defaultCallbackHandler</i> security property * for the fully qualified class name of a default handler implementation. @@ -68,21 +68,21 @@ * the provider is assumed to have alternative means * for obtaining authentication information. * - * @param subject the <code>Subject</code> which may contain + * @param subject the {@code Subject} which may contain * principals/credentials used for authentication, * or may be populated with additional principals/credentials * after successful authentication has completed. - * This parameter may be <code>null</code>. - * @param handler the <code>CallbackHandler</code> used by + * This parameter may be {@code null}. + * @param handler the {@code CallbackHandler} used by * this provider to obtain authentication information - * from the caller, which may be <code>null</code> + * from the caller, which may be {@code null} * * @exception LoginException if the login operation fails * @exception SecurityException if the caller does not pass a * security check for - * <code>SecurityPermission("authProvider.<i>name</i>")</code>, - * where <i>name</i> is the value returned by - * this provider's <code>getName</code> method + * {@code SecurityPermission("authProvider.name")}, + * where {@code name} is the value returned by + * this provider's {@code getName} method */ public abstract void login(Subject subject, CallbackHandler handler) throws LoginException; @@ -93,18 +93,18 @@ * @exception LoginException if the logout operation fails * @exception SecurityException if the caller does not pass a * security check for - * <code>SecurityPermission("authProvider.<i>name</i>")</code>, - * where <i>name</i> is the value returned by - * this provider's <code>getName</code> method + * {@code SecurityPermission("authProvider.name")}, + * where {@code name} is the value returned by + * this provider's {@code getName} method */ public abstract void logout() throws LoginException; /** - * Set a <code>CallbackHandler</code>. + * Set a {@code CallbackHandler}. * * <p> The provider uses this handler if one is not passed to the - * <code>login</code> method. The provider also uses this handler - * if it invokes <code>login</code> on behalf of callers. + * {@code login} method. The provider also uses this handler + * if it invokes {@code login} on behalf of callers. * In either case if a handler is not set via this method, * the provider queries the * <i>auth.login.defaultCallbackHandler</i> security property @@ -113,14 +113,14 @@ * the provider is assumed to have alternative means * for obtaining authentication information. * - * @param handler a <code>CallbackHandler</code> for obtaining - * authentication information, which may be <code>null</code> + * @param handler a {@code CallbackHandler} for obtaining + * authentication information, which may be {@code null} * * @exception SecurityException if the caller does not pass a * security check for - * <code>SecurityPermission("authProvider.<i>name</i>")</code>, - * where <i>name</i> is the value returned by - * this provider's <code>getName</code> method + * {@code SecurityPermission("authProvider.name")}, + * where {@code name} is the value returned by + * this provider's {@code getName} method */ public abstract void setCallbackHandler(CallbackHandler handler); }
--- a/src/share/classes/java/security/BasicPermission.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/BasicPermission.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -124,8 +124,8 @@ * * @param name the name of the BasicPermission. * - * @throws NullPointerException if <code>name</code> is <code>null</code>. - * @throws IllegalArgumentException if <code>name</code> is empty. + * @throws NullPointerException if {@code name} is {@code null}. + * @throws IllegalArgumentException if {@code name} is empty. */ public BasicPermission(String name) { super(name); @@ -141,8 +141,8 @@ * @param name the name of the BasicPermission. * @param actions ignored. * - * @throws NullPointerException if <code>name</code> is <code>null</code>. - * @throws IllegalArgumentException if <code>name</code> is empty. + * @throws NullPointerException if {@code name} is {@code null}. + * @throws IllegalArgumentException if {@code name} is empty. */ public BasicPermission(String name, String actions) { super(name); @@ -217,7 +217,7 @@ /** * Returns the hash code value for this object. * The hash code used is the hash code of the name, that is, - * <code>getName().hashCode()</code>, where <code>getName</code> is + * {@code getName().hashCode()}, where {@code getName} is * from the Permission superclass. * * @return a hash code value for this object. @@ -243,7 +243,7 @@ * * <p>BasicPermission objects must be stored in a manner that allows them * to be inserted in any order, but that also enables the - * PermissionCollection <code>implies</code> method + * PermissionCollection {@code implies} method * to be implemented in an efficient (and consistent) manner. * * @return a new PermissionCollection object suitable for @@ -312,7 +312,7 @@ private transient Map<String, Permission> perms; /** - * This is set to <code>true</code> if this BasicPermissionCollection + * This is set to {@code true} if this BasicPermissionCollection * contains a BasicPermission with '*' as its permission name. * * @see #serialPersistentFields @@ -477,7 +477,7 @@ * The Hashtable is indexed by the BasicPermission name; the value * of the Hashtable entry is the permission. * @serialField all_allowed boolean - * This is set to <code>true</code> if this BasicPermissionCollection + * This is set to {@code true} if this BasicPermissionCollection * contains a BasicPermission with '*' as its permission name. * @serialField permClass java.lang.Class * The class to which all BasicPermissions in this
--- a/src/share/classes/java/security/Certificate.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/Certificate.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -96,7 +96,7 @@ /** * Encodes the certificate to an output stream in a format that can - * be decoded by the <code>decode</code> method. + * be decoded by the {@code decode} method. * * @param stream the output stream to which to encode the * certificate. @@ -115,8 +115,8 @@ /** * Decodes a certificate from an input stream. The format should be - * that returned by <code>getFormat</code> and produced by - * <code>encode</code>. + * that returned by {@code getFormat} and produced by + * {@code encode}. * * @param stream the input stream from which to fetch the data * being decoded. @@ -137,8 +137,8 @@ /** * Returns the name of the coding format. This is used as a hint to find * an appropriate parser. It could be "X.509", "PGP", etc. This is - * the format produced and understood by the <code>encode</code> - * and <code>decode</code> methods. + * the format produced and understood by the {@code encode} + * and {@code decode} methods. * * @return the name of the coding format. */
--- a/src/share/classes/java/security/CodeSigner.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/CodeSigner.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, 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 @@ -63,12 +63,12 @@ * Constructs a CodeSigner object. * * @param signerCertPath The signer's certificate path. - * It must not be <code>null</code>. + * It must not be {@code null}. * @param timestamp A signature timestamp. - * If <code>null</code> then no timestamp was generated + * If {@code null} then no timestamp was generated * for the signature. - * @throws NullPointerException if <code>signerCertPath</code> is - * <code>null</code>. + * @throws NullPointerException if {@code signerCertPath} is + * {@code null}. */ public CodeSigner(CertPath signerCertPath, Timestamp timestamp) { if (signerCertPath == null) { @@ -90,7 +90,7 @@ /** * Returns the signature timestamp. * - * @return The timestamp or <code>null</code> if none is present. + * @return The timestamp or {@code null} if none is present. */ public Timestamp getTimestamp() { return timestamp;
--- a/src/share/classes/java/security/CodeSource.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/CodeSource.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -485,13 +485,13 @@ /** * Writes this object out to a stream (i.e., serializes it). * - * @serialData An initial <code>URL</code> is followed by an - * <code>int</code> indicating the number of certificates to follow + * @serialData An initial {@code URL} is followed by an + * {@code int} indicating the number of certificates to follow * (a value of "zero" denotes that there are no certificates associated * with this object). - * Each certificate is written out starting with a <code>String</code> + * Each certificate is written out starting with a {@code String} * denoting the certificate type, followed by an - * <code>int</code> specifying the length of the certificate encoding, + * {@code int} specifying the length of the certificate encoding, * followed by the certificate encoding itself which is written out as an * array of bytes. Finally, if any code signers are present then the array * of code signers is serialized and written out too.
--- a/src/share/classes/java/security/DigestException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/DigestException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -55,13 +55,13 @@ } /** - * Creates a <code>DigestException</code> with the specified + * Creates a {@code DigestException} with the specified * detail message and cause. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */ @@ -70,13 +70,13 @@ } /** - * Creates a <code>DigestException</code> with the specified cause - * and a detail message of <tt>(cause==null ? null : cause.toString())</tt> + * Creates a {@code DigestException} with the specified cause + * and a detail message of {@code (cause==null ? null : cause.toString())} * (which typically contains the class and detail message of - * <tt>cause</tt>). + * {@code cause}). * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */
--- a/src/share/classes/java/security/DigestInputStream.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/DigestInputStream.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,13 +37,13 @@ * the bits going through the stream. * * <p>To complete the message digest computation, call one of the - * <code>digest</code> methods on the associated message + * {@code digest} methods on the associated message * digest after your calls to one of this digest input stream's * {@link #read() read} methods. * * <p>It is possible to turn this stream on or off (see * {@link #on(boolean) on}). When it is on, a call to one of the - * <code>read</code> methods + * {@code read} methods * results in an update on the message digest. But when it is off, * the message digest is not updated. The default is for the stream * to be on. @@ -111,7 +111,7 @@ * function is on). That is, this method reads a byte from the * input stream, blocking until the byte is actually read. If the * digest function is on (see {@link #on(boolean) on}), this method - * will then call <code>update</code> on the message digest associated + * will then call {@code update} on the message digest associated * with this stream, passing it the byte read. * * @return the byte read. @@ -131,25 +131,25 @@ /** * Reads into a byte array, and updates the message digest (if the * digest function is on). That is, this method reads up to - * <code>len</code> bytes from the input stream into the array - * <code>b</code>, starting at offset <code>off</code>. This method + * {@code len} bytes from the input stream into the array + * {@code b}, starting at offset {@code off}. This method * blocks until the data is actually * read. If the digest function is on (see - * {@link #on(boolean) on}), this method will then call <code>update</code> + * {@link #on(boolean) on}), this method will then call {@code update} * on the message digest associated with this stream, passing it * the data. * * @param b the array into which the data is read. * - * @param off the starting offset into <code>b</code> of where the + * @param off the starting offset into {@code b} of where the * data should be placed. * * @param len the maximum number of bytes to be read from the input - * stream into b, starting at offset <code>off</code>. + * stream into b, starting at offset {@code off}. * * @return the actual number of bytes read. This is less than - * <code>len</code> if the end of the stream is reached prior to - * reading <code>len</code> bytes. -1 is returned if no bytes were + * {@code len} if the end of the stream is reached prior to + * reading {@code len} bytes. -1 is returned if no bytes were * read because the end of the stream had already been reached when * the call was made. * @@ -167,7 +167,7 @@ /** * Turns the digest function on or off. The default is on. When - * it is on, a call to one of the <code>read</code> methods results in an + * it is on, a call to one of the {@code read} methods results in an * update on the message digest. But when it is off, the message * digest is not updated. *
--- a/src/share/classes/java/security/DigestOutputStream.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/DigestOutputStream.java Thu Jul 11 12:31:10 2013 -0700 @@ -37,13 +37,13 @@ * the bits going through the stream. * * <p>To complete the message digest computation, call one of the - * <code>digest</code> methods on the associated message + * {@code digest} methods on the associated message * digest after your calls to one of this digest ouput stream's * {@link #write(int) write} methods. * * <p>It is possible to turn this stream on or off (see * {@link #on(boolean) on}). When it is on, a call to one of the - * <code>write</code> methods results in + * {@code write} methods results in * an update on the message digest. But when it is off, the message * digest is not updated. The default is for the stream to be on. * @@ -99,8 +99,8 @@ * the specified byte, and in any case writes the byte * to the output stream. That is, if the digest function is on * (see {@link #on(boolean) on}), this method calls - * <code>update</code> on the message digest associated with this - * stream, passing it the byte <code>b</code>. This method then + * {@code update} on the message digest associated with this + * stream, passing it the byte {@code b}. This method then * writes the byte to the output stream, blocking until the byte * is actually written. * @@ -122,7 +122,7 @@ * Updates the message digest (if the digest function is on) using * the specified subarray, and in any case writes the subarray to * the output stream. That is, if the digest function is on (see - * {@link #on(boolean) on}), this method calls <code>update</code> + * {@link #on(boolean) on}), this method calls {@code update} * on the message digest associated with this stream, passing it * the subarray specifications. This method then writes the subarray * bytes to the output stream, blocking until the bytes are actually @@ -131,11 +131,11 @@ * @param b the array containing the subarray to be used for updating * and writing to the output stream. * - * @param off the offset into <code>b</code> of the first byte to + * @param off the offset into {@code b} of the first byte to * be updated and written. * * @param len the number of bytes of data to be updated and written - * from <code>b</code>, starting at offset <code>off</code>. + * from {@code b}, starting at offset {@code off}. * * @exception IOException if an I/O error occurs. * @@ -150,7 +150,7 @@ /** * Turns the digest function on or off. The default is on. When - * it is on, a call to one of the <code>write</code> methods results in an + * it is on, a call to one of the {@code write} methods results in an * update on the message digest. But when it is off, the message * digest is not updated. *
--- a/src/share/classes/java/security/DomainCombiner.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/DomainCombiner.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,27 +26,27 @@ package java.security; /** - * A <code>DomainCombiner</code> provides a means to dynamically + * A {@code DomainCombiner} provides a means to dynamically * update the ProtectionDomains associated with the current - * <code>AccessControlContext</code>. + * {@code AccessControlContext}. * - * <p> A <code>DomainCombiner</code> is passed as a parameter to the - * appropriate constructor for <code>AccessControlContext</code>. + * <p> A {@code DomainCombiner} is passed as a parameter to the + * appropriate constructor for {@code AccessControlContext}. * The newly constructed context is then passed to the - * <code>AccessController.doPrivileged(..., context)</code> method - * to bind the provided context (and associated <code>DomainCombiner</code>) + * {@code AccessController.doPrivileged(..., context)} method + * to bind the provided context (and associated {@code DomainCombiner}) * with the current execution Thread. Subsequent calls to - * <code>AccessController.getContext</code> or - * <code>AccessController.checkPermission</code> - * cause the <code>DomainCombiner.combine</code> to get invoked. + * {@code AccessController.getContext} or + * {@code AccessController.checkPermission} + * cause the {@code DomainCombiner.combine} to get invoked. * * <p> The combine method takes two arguments. The first argument represents * an array of ProtectionDomains from the current execution Thread, - * since the most recent call to <code>AccessController.doPrivileged</code>. + * since the most recent call to {@code AccessController.doPrivileged}. * If no call to doPrivileged was made, then the first argument will contain * all the ProtectionDomains from the current execution Thread. * The second argument represents an array of inherited ProtectionDomains, - * which may be <code>null</code>. ProtectionDomains may be inherited + * which may be {@code null}. ProtectionDomains may be inherited * from a parent Thread, or from a privileged context. If no call to * doPrivileged was made, then the second argument will contain the * ProtectionDomains inherited from the parent Thread. If one or more calls @@ -54,25 +54,25 @@ * doPrivileged(action, context), then the second argument will contain the * ProtectionDomains from the privileged context. If the most recent call * was to doPrivileged(action), then there is no privileged context, - * and the second argument will be <code>null</code>. + * and the second argument will be {@code null}. * - * <p> The <code>combine</code> method investigates the two input arrays + * <p> The {@code combine} method investigates the two input arrays * of ProtectionDomains and returns a single array containing the updated - * ProtectionDomains. In the simplest case, the <code>combine</code> + * ProtectionDomains. In the simplest case, the {@code combine} * method merges the two stacks into one. In more complex cases, - * the <code>combine</code> method returns a modified + * the {@code combine} method returns a modified * stack of ProtectionDomains. The modification may have added new * ProtectionDomains, removed certain ProtectionDomains, or simply * updated existing ProtectionDomains. Re-ordering and other optimizations * to the ProtectionDomains are also permitted. Typically the - * <code>combine</code> method bases its updates on the information - * encapsulated in the <code>DomainCombiner</code>. + * {@code combine} method bases its updates on the information + * encapsulated in the {@code DomainCombiner}. * - * <p> After the <code>AccessController.getContext</code> method + * <p> After the {@code AccessController.getContext} method * receives the combined stack of ProtectionDomains back from - * the <code>DomainCombiner</code>, it returns a new + * the {@code DomainCombiner}, it returns a new * AccessControlContext that has both the combined ProtectionDomains - * as well as the <code>DomainCombiner</code>. + * as well as the {@code DomainCombiner}. * * @see AccessController * @see AccessControlContext @@ -91,21 +91,21 @@ * * @param currentDomains the ProtectionDomains associated with the * current execution Thread, up to the most recent - * privileged <code>ProtectionDomain</code>. + * privileged {@code ProtectionDomain}. * The ProtectionDomains are are listed in order of execution, - * with the most recently executing <code>ProtectionDomain</code> + * with the most recently executing {@code ProtectionDomain} * residing at the beginning of the array. This parameter may - * be <code>null</code> if the current execution Thread + * be {@code null} if the current execution Thread * has no associated ProtectionDomains.<p> * * @param assignedDomains an array of inherited ProtectionDomains. * ProtectionDomains may be inherited from a parent Thread, - * or from a privileged <code>AccessControlContext</code>. - * This parameter may be <code>null</code> + * or from a privileged {@code AccessControlContext}. + * This parameter may be {@code null} * if there are no inherited ProtectionDomains. * * @return a new array consisting of the updated ProtectionDomains, - * or <code>null</code>. + * or {@code null}. */ ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains);
--- a/src/share/classes/java/security/GeneralSecurityException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/GeneralSecurityException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,7 +26,7 @@ package java.security; /** - * The <code>GeneralSecurityException</code> class is a generic + * The {@code GeneralSecurityException} class is a generic * security exception class that provides type safety for all the * security-related exception classes that extend from it. * @@ -57,13 +57,13 @@ } /** - * Creates a <code>GeneralSecurityException</code> with the specified + * Creates a {@code GeneralSecurityException} with the specified * detail message and cause. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */ @@ -72,13 +72,13 @@ } /** - * Creates a <code>GeneralSecurityException</code> with the specified cause - * and a detail message of <tt>(cause==null ? null : cause.toString())</tt> + * Creates a {@code GeneralSecurityException} with the specified cause + * and a detail message of {@code (cause==null ? null : cause.toString())} * (which typically contains the class and detail message of - * <tt>cause</tt>). + * {@code cause}). * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */
--- a/src/share/classes/java/security/Guard.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/Guard.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -29,9 +29,9 @@ * <p> This interface represents a guard, which is an object that is used * to protect access to another object. * - * <p>This interface contains a single method, <code>checkGuard</code>, - * with a single <code>object</code> argument. <code>checkGuard</code> is - * invoked (by the GuardedObject <code>getObject</code> method) + * <p>This interface contains a single method, {@code checkGuard}, + * with a single {@code object} argument. {@code checkGuard} is + * invoked (by the GuardedObject {@code getObject} method) * to determine whether or not to allow access to the object. * * @see GuardedObject @@ -44,7 +44,7 @@ /** * Determines whether or not to allow access to the guarded object - * <code>object</code>. Returns silently if access is allowed. + * {@code object}. Returns silently if access is allowed. * Otherwise, throws a SecurityException. * * @param object the object being protected by the guard.
--- a/src/share/classes/java/security/GuardedObject.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/GuardedObject.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,9 +33,9 @@ * such that access to the target object is possible * only if the Guard object allows it. * Once an object is encapsulated by a GuardedObject, - * access to that object is controlled by the <code>getObject</code> + * access to that object is controlled by the {@code getObject} * method, which invokes the - * <code>checkGuard</code> method on the Guard object that is + * {@code checkGuard} method on the Guard object that is * guarding access. If access is not allowed, * an exception is thrown. *
--- a/src/share/classes/java/security/Identity.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/Identity.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -52,9 +52,9 @@ * * @author Benjamin Renaud * @deprecated This class is no longer used. Its functionality has been - * replaced by <code>java.security.KeyStore</code>, the - * <code>java.security.cert</code> package, and - * <code>java.security.Principal</code>. + * replaced by {@code java.security.KeyStore}, the + * {@code java.security.cert} package, and + * {@code java.security.Principal}. */ @Deprecated public abstract class Identity implements Principal, Serializable { @@ -164,8 +164,8 @@ * Sets this identity's public key. The old key and all of this * identity's certificates are removed by this operation. * - * <p>First, if there is a security manager, its <code>checkSecurityAccess</code> - * method is called with <code>"setIdentityPublicKey"</code> + * <p>First, if there is a security manager, its {@code checkSecurityAccess} + * method is called with {@code "setIdentityPublicKey"} * as its argument to see if it's ok to set the public key. * * @param key the public key for this identity. @@ -174,7 +174,7 @@ * identity's scope has the same public key, or if another exception occurs. * * @exception SecurityException if a security manager exists and its - * <code>checkSecurityAccess</code> method doesn't allow + * {@code checkSecurityAccess} method doesn't allow * setting the public key. * * @see #getPublicKey @@ -191,14 +191,14 @@ /** * Specifies a general information string for this identity. * - * <p>First, if there is a security manager, its <code>checkSecurityAccess</code> - * method is called with <code>"setIdentityInfo"</code> + * <p>First, if there is a security manager, its {@code checkSecurityAccess} + * method is called with {@code "setIdentityInfo"} * as its argument to see if it's ok to specify the information string. * * @param info the information string. * * @exception SecurityException if a security manager exists and its - * <code>checkSecurityAccess</code> method doesn't allow + * {@code checkSecurityAccess} method doesn't allow * setting the information string. * * @see #getInfo @@ -226,8 +226,8 @@ * the identity does not have a public key, the identity's * public key is set to be that specified in the certificate. * - * <p>First, if there is a security manager, its <code>checkSecurityAccess</code> - * method is called with <code>"addIdentityCertificate"</code> + * <p>First, if there is a security manager, its {@code checkSecurityAccess} + * method is called with {@code "addIdentityCertificate"} * as its argument to see if it's ok to add a certificate. * * @param certificate the certificate to be added. @@ -237,7 +237,7 @@ * this identity's public key, or if another exception occurs. * * @exception SecurityException if a security manager exists and its - * <code>checkSecurityAccess</code> method doesn't allow + * {@code checkSecurityAccess} method doesn't allow * adding a certificate. * * @see SecurityManager#checkSecurityAccess @@ -277,8 +277,8 @@ /** * Removes a certificate from this identity. * - * <p>First, if there is a security manager, its <code>checkSecurityAccess</code> - * method is called with <code>"removeIdentityCertificate"</code> + * <p>First, if there is a security manager, its {@code checkSecurityAccess} + * method is called with {@code "removeIdentityCertificate"} * as its argument to see if it's ok to remove a certificate. * * @param certificate the certificate to be removed. @@ -287,7 +287,7 @@ * missing, or if another exception occurs. * * @exception SecurityException if a security manager exists and its - * <code>checkSecurityAccess</code> method doesn't allow + * {@code checkSecurityAccess} method doesn't allow * removing a certificate. * * @see SecurityManager#checkSecurityAccess @@ -390,15 +390,15 @@ * Returns a short string describing this identity, telling its * name and its scope (if any). * - * <p>First, if there is a security manager, its <code>checkSecurityAccess</code> - * method is called with <code>"printIdentity"</code> + * <p>First, if there is a security manager, its {@code checkSecurityAccess} + * method is called with {@code "printIdentity"} * as its argument to see if it's ok to return the string. * * @return information about this identity, such as its name and the * name of its scope (if any). * * @exception SecurityException if a security manager exists and its - * <code>checkSecurityAccess</code> method doesn't allow + * {@code checkSecurityAccess} method doesn't allow * returning a string describing this identity. * * @see SecurityManager#checkSecurityAccess @@ -415,20 +415,20 @@ /** * Returns a string representation of this identity, with * optionally more details than that provided by the - * <code>toString</code> method without any arguments. + * {@code toString} method without any arguments. * - * <p>First, if there is a security manager, its <code>checkSecurityAccess</code> - * method is called with <code>"printIdentity"</code> + * <p>First, if there is a security manager, its {@code checkSecurityAccess} + * method is called with {@code "printIdentity"} * as its argument to see if it's ok to return the string. * * @param detailed whether or not to provide detailed information. * - * @return information about this identity. If <code>detailed</code> + * @return information about this identity. If {@code detailed} * is true, then this method returns more information than that - * provided by the <code>toString</code> method without any arguments. + * provided by the {@code toString} method without any arguments. * * @exception SecurityException if a security manager exists and its - * <code>checkSecurityAccess</code> method doesn't allow + * {@code checkSecurityAccess} method doesn't allow * returning a string describing this identity. * * @see #toString
--- a/src/share/classes/java/security/IdentityScope.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/IdentityScope.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -57,9 +57,9 @@ * @author Benjamin Renaud * * @deprecated This class is no longer used. Its functionality has been - * replaced by <code>java.security.KeyStore</code>, the - * <code>java.security.cert</code> package, and - * <code>java.security.Principal</code>. + * replaced by {@code java.security.KeyStore}, the + * {@code java.security.cert} package, and + * {@code java.security.Principal}. */ @Deprecated public abstract @@ -146,14 +146,14 @@ * Sets the system's identity scope. * * <p>First, if there is a security manager, its - * <code>checkSecurityAccess</code> - * method is called with <code>"setSystemScope"</code> + * {@code checkSecurityAccess} + * method is called with {@code "setSystemScope"} * as its argument to see if it's ok to set the identity scope. * * @param scope the scope to set. * * @exception SecurityException if a security manager exists and its - * <code>checkSecurityAccess</code> method doesn't allow + * {@code checkSecurityAccess} method doesn't allow * setting the identity scope. * * @see #getSystemScope @@ -176,8 +176,8 @@ * * @param name the name of the identity to be retrieved. * - * @return the identity named <code>name</code>, or null if there are - * no identities named <code>name</code> in this scope. + * @return the identity named {@code name}, or null if there are + * no identities named {@code name} in this scope. */ public abstract Identity getIdentity(String name);
--- a/src/share/classes/java/security/InvalidAlgorithmParameterException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/InvalidAlgorithmParameterException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -65,13 +65,13 @@ } /** - * Creates a <code>InvalidAlgorithmParameterException</code> with the + * Creates a {@code InvalidAlgorithmParameterException} with the * specified detail message and cause. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */ @@ -80,14 +80,14 @@ } /** - * Creates a <code>InvalidAlgorithmParameterException</code> with the + * Creates a {@code InvalidAlgorithmParameterException} with the * specified cause and a detail message of - * <tt>(cause==null ? null : cause.toString())</tt> + * {@code (cause==null ? null : cause.toString())} * (which typically contains the class and detail message of - * <tt>cause</tt>). + * {@code cause}). * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */
--- a/src/share/classes/java/security/InvalidKeyException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/InvalidKeyException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -58,13 +58,13 @@ } /** - * Creates a <code>InvalidKeyException</code> with the specified + * Creates a {@code InvalidKeyException} with the specified * detail message and cause. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */ @@ -73,13 +73,13 @@ } /** - * Creates a <code>InvalidKeyException</code> with the specified cause - * and a detail message of <tt>(cause==null ? null : cause.toString())</tt> + * Creates a {@code InvalidKeyException} with the specified cause + * and a detail message of {@code (cause==null ? null : cause.toString())} * (which typically contains the class and detail message of - * <tt>cause</tt>). + * {@code cause}). * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */
--- a/src/share/classes/java/security/Key.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/Key.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -47,9 +47,9 @@ * representation of the key is needed outside the Java Virtual Machine, * as when transmitting the key to some other party. The key * is encoded according to a standard format (such as - * X.509 <code>SubjectPublicKeyInfo</code> or PKCS#8), and + * X.509 {@code SubjectPublicKeyInfo} or PKCS#8), and * is returned using the {@link #getEncoded() getEncoded} method. - * Note: The syntax of the ASN.1 type <code>SubjectPublicKeyInfo</code> + * Note: The syntax of the ASN.1 type {@code SubjectPublicKeyInfo} * is defined as follows: * * <pre> @@ -132,11 +132,11 @@ * For example, the name of the ASN.1 data format for public * keys is <I>SubjectPublicKeyInfo</I>, as * defined by the X.509 standard; in this case, the returned format is - * <code>"X.509"</code>. Similarly, + * {@code "X.509"}. Similarly, * the name of the ASN.1 data format for private keys is * <I>PrivateKeyInfo</I>, * as defined by the PKCS #8 standard; in this case, the returned format is - * <code>"PKCS#8"</code>. + * {@code "PKCS#8"}. * * @return the primary encoding format of the key. */
--- a/src/share/classes/java/security/KeyException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,13 +59,13 @@ } /** - * Creates a <code>KeyException</code> with the specified + * Creates a {@code KeyException} with the specified * detail message and cause. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */ @@ -74,13 +74,13 @@ } /** - * Creates a <code>KeyException</code> with the specified cause - * and a detail message of <tt>(cause==null ? null : cause.toString())</tt> + * Creates a {@code KeyException} with the specified cause + * and a detail message of {@code (cause==null ? null : cause.toString())} * (which typically contains the class and detail message of - * <tt>cause</tt>). + * {@code cause}). * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */
--- a/src/share/classes/java/security/KeyFactory.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyFactory.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ /** * Key factories are used to convert <I>keys</I> (opaque - * cryptographic keys of type <code>Key</code>) into <I>key specifications</I> + * cryptographic keys of type {@code Key}) into <I>key specifications</I> * (transparent representations of the underlying key material), and vice * versa. * @@ -47,8 +47,8 @@ * * <P> Multiple compatible key specifications may exist for the same key. * For example, a DSA public key may be specified using - * <code>DSAPublicKeySpec</code> or - * <code>X509EncodedKeySpec</code>. A key factory can be used to translate + * {@code DSAPublicKeySpec} or + * {@code X509EncodedKeySpec}. A key factory can be used to translate * between compatible key specifications. * * <P> The following is an example of how to use a key factory in order to @@ -68,11 +68,11 @@ * </pre> * * <p> Every implementation of the Java platform is required to support the - * following standard <code>KeyFactory</code> algorithms: + * following standard {@code KeyFactory} algorithms: * <ul> - * <li><tt>DiffieHellman</tt></li> - * <li><tt>DSA</tt></li> - * <li><tt>RSA</tt></li> + * <li>{@code DiffieHellman}</li> + * <li>{@code DSA}</li> + * <li>{@code RSA}</li> * </ul> * These algorithms are described in the <a href= * "{@docRoot}/../technotes/guides/security/StandardNames.html#KeyFactory"> @@ -120,7 +120,7 @@ * @param keyFacSpi the delegate * @param provider the provider * @param algorithm the name of the algorithm - * to associate with this <tt>KeyFactory</tt> + * to associate with this {@code KeyFactory} */ protected KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, String algorithm) { @@ -266,10 +266,10 @@ /** * Gets the name of the algorithm - * associated with this <tt>KeyFactory</tt>. + * associated with this {@code KeyFactory}. * * @return the name of the algorithm associated with this - * <tt>KeyFactory</tt> + * {@code KeyFactory} */ public final String getAlgorithm() { return this.algorithm; @@ -389,11 +389,11 @@ /** * Returns a specification (key material) of the given key object. - * <code>keySpec</code> identifies the specification class in which + * {@code keySpec} identifies the specification class in which * the key material should be returned. It could, for example, be - * <code>DSAPublicKeySpec.class</code>, to indicate that the + * {@code DSAPublicKeySpec.class}, to indicate that the * key material should be returned in an instance of the - * <code>DSAPublicKeySpec</code> class. + * {@code DSAPublicKeySpec} class. * * @param key the key. *
--- a/src/share/classes/java/security/KeyFactorySpi.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyFactorySpi.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -30,13 +30,13 @@ /** * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) - * for the <code>KeyFactory</code> class. + * for the {@code KeyFactory} class. * All the abstract methods in this class must be implemented by each * cryptographic service provider who wishes to supply the implementation * of a key factory for a particular algorithm. * * <P> Key factories are used to convert <I>keys</I> (opaque - * cryptographic keys of type <code>Key</code>) into <I>key specifications</I> + * cryptographic keys of type {@code Key}) into <I>key specifications</I> * (transparent representations of the underlying key material), and vice * versa. * @@ -46,8 +46,8 @@ * * <P> Multiple compatible key specifications may exist for the same key. * For example, a DSA public key may be specified using - * <code>DSAPublicKeySpec</code> or - * <code>X509EncodedKeySpec</code>. A key factory can be used to translate + * {@code DSAPublicKeySpec} or + * {@code X509EncodedKeySpec}. A key factory can be used to translate * between compatible key specifications. * * <P> A provider should document all the key specifications supported by its @@ -100,11 +100,11 @@ /** * Returns a specification (key material) of the given key * object. - * <code>keySpec</code> identifies the specification class in which + * {@code keySpec} identifies the specification class in which * the key material should be returned. It could, for example, be - * <code>DSAPublicKeySpec.class</code>, to indicate that the + * {@code DSAPublicKeySpec.class}, to indicate that the * key material should be returned in an instance of the - * <code>DSAPublicKeySpec</code> class. + * {@code DSAPublicKeySpec} class. * * @param key the key. *
--- a/src/share/classes/java/security/KeyManagementException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyManagementException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -68,13 +68,13 @@ } /** - * Creates a <code>KeyManagementException</code> with the specified + * Creates a {@code KeyManagementException} with the specified * detail message and cause. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */ @@ -83,13 +83,13 @@ } /** - * Creates a <code>KeyManagementException</code> with the specified cause - * and a detail message of <tt>(cause==null ? null : cause.toString())</tt> + * Creates a {@code KeyManagementException} with the specified cause + * and a detail message of {@code (cause==null ? null : cause.toString())} * (which typically contains the class and detail message of - * <tt>cause</tt>). + * {@code cause}). * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */
--- a/src/share/classes/java/security/KeyPair.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyPair.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -50,7 +50,7 @@ * * <p>Note that this constructor only stores references to the public * and private key components in the generated key pair. This is safe, - * because <code>Key</code> objects are immutable. + * because {@code Key} objects are immutable. * * @param publicKey the public key. *
--- a/src/share/classes/java/security/KeyPairGenerator.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyPairGenerator.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ /** * The KeyPairGenerator class is used to generate pairs of * public and private keys. Key pair generators are constructed using the - * <code>getInstance</code> factory methods (static methods that + * {@code getInstance} factory methods (static methods that * return instances of a given class). * * <p>A Key pair generator for a particular algorithm creates a public/private @@ -58,21 +58,21 @@ * {@link #initialize(int, java.security.SecureRandom) initialize} * method in this KeyPairGenerator class that takes these two universally * shared types of arguments. There is also one that takes just a - * <code>keysize</code> argument, and uses the <code>SecureRandom</code> + * {@code keysize} argument, and uses the {@code SecureRandom} * implementation of the highest-priority installed provider as the source * of randomness. (If none of the installed providers supply an implementation - * of <code>SecureRandom</code>, a system-provided source of randomness is + * of {@code SecureRandom}, a system-provided source of randomness is * used.) * * <p>Since no other parameters are specified when you call the above - * algorithm-independent <code>initialize</code> methods, it is up to the + * algorithm-independent {@code initialize} methods, it is up to the * provider what to do about the algorithm-specific parameters (if any) to be * associated with each of the keys. * * <p>If the algorithm is the <i>DSA</i> algorithm, and the keysize (modulus * size) is 512, 768, or 1024, then the <i>Sun</i> provider uses a set of - * precomputed values for the <code>p</code>, <code>q</code>, and - * <code>g</code> parameters. If the modulus size is not one of the above + * precomputed values for the {@code p}, {@code q}, and + * {@code g} parameters. If the modulus size is not one of the above * values, the <i>Sun</i> provider creates a new set of parameters. Other * providers might have precomputed parameter sets for more than just the * three modulus sizes mentioned above. Still others might not have a list of @@ -83,35 +83,35 @@ * <p>For situations where a set of algorithm-specific parameters already * exists (e.g., so-called <i>community parameters</i> in DSA), there are two * {@link #initialize(java.security.spec.AlgorithmParameterSpec) - * initialize} methods that have an <code>AlgorithmParameterSpec</code> - * argument. One also has a <code>SecureRandom</code> argument, while the - * the other uses the <code>SecureRandom</code> + * initialize} methods that have an {@code AlgorithmParameterSpec} + * argument. One also has a {@code SecureRandom} argument, while the + * the other uses the {@code SecureRandom} * implementation of the highest-priority installed provider as the source * of randomness. (If none of the installed providers supply an implementation - * of <code>SecureRandom</code>, a system-provided source of randomness is + * of {@code SecureRandom}, a system-provided source of randomness is * used.) * </ul> * * <p>In case the client does not explicitly initialize the KeyPairGenerator - * (via a call to an <code>initialize</code> method), each provider must + * (via a call to an {@code initialize} method), each provider must * supply (and document) a default initialization. * For example, the <i>Sun</i> provider uses a default modulus size (keysize) * of 1024 bits. * * <p>Note that this class is abstract and extends from - * <code>KeyPairGeneratorSpi</code> for historical reasons. + * {@code KeyPairGeneratorSpi} for historical reasons. * Application developers should only take notice of the methods defined in - * this <code>KeyPairGenerator</code> class; all the methods in + * this {@code KeyPairGenerator} class; all the methods in * the superclass are intended for cryptographic service providers who wish to * supply their own implementations of key pair generators. * * <p> Every implementation of the Java platform is required to support the - * following standard <code>KeyPairGenerator</code> algorithms and keysizes in + * following standard {@code KeyPairGenerator} algorithms and keysizes in * parentheses: * <ul> - * <li><tt>DiffieHellman</tt> (1024)</li> - * <li><tt>DSA</tt> (1024)</li> - * <li><tt>RSA</tt> (1024, 2048)</li> + * <li>{@code DiffieHellman} (1024)</li> + * <li>{@code DSA} (1024)</li> + * <li>{@code RSA} (1024, 2048)</li> * </ul> * These algorithms are described in the <a href= * "{@docRoot}/../technotes/guides/security/StandardNames.html#KeyPairGenerator"> @@ -322,18 +322,18 @@ /** * Initializes the key pair generator for a certain keysize using - * a default parameter set and the <code>SecureRandom</code> + * a default parameter set and the {@code SecureRandom} * implementation of the highest-priority installed provider as the source * of randomness. * (If none of the installed providers supply an implementation of - * <code>SecureRandom</code>, a system-provided source of randomness is + * {@code SecureRandom}, a system-provided source of randomness is * used.) * * @param keysize the keysize. This is an * algorithm-specific metric, such as modulus length, specified in * number of bits. * - * @exception InvalidParameterException if the <code>keysize</code> is not + * @exception InvalidParameterException if the {@code keysize} is not * supported by this KeyPairGenerator object. */ public void initialize(int keysize) { @@ -349,7 +349,7 @@ * number of bits. * @param random the source of randomness. * - * @exception InvalidParameterException if the <code>keysize</code> is not + * @exception InvalidParameterException if the {@code keysize} is not * supported by this KeyPairGenerator object. * * @since 1.2 @@ -369,11 +369,11 @@ /** * Initializes the key pair generator using the specified parameter - * set and the <code>SecureRandom</code> + * set and the {@code SecureRandom} * implementation of the highest-priority installed provider as the source * of randomness. * (If none of the installed providers supply an implementation of - * <code>SecureRandom</code>, a system-provided source of randomness is + * {@code SecureRandom}, a system-provided source of randomness is * used.). * * <p>This concrete method has been added to this previously-defined @@ -382,10 +382,10 @@ * {@link KeyPairGeneratorSpi#initialize( * java.security.spec.AlgorithmParameterSpec, * java.security.SecureRandom) initialize} method, - * passing it <code>params</code> and a source of randomness (obtained + * passing it {@code params} and a source of randomness (obtained * from the highest-priority installed provider or system-provided if none * of the installed providers supply one). - * That <code>initialize</code> method always throws an + * That {@code initialize} method always throws an * UnsupportedOperationException if it is not overridden by the provider. * * @param params the parameter set used to generate the keys. @@ -410,8 +410,8 @@ * KeyPairGeneratorSpi#initialize( * java.security.spec.AlgorithmParameterSpec, * java.security.SecureRandom) initialize} method, - * passing it <code>params</code> and <code>random</code>. - * That <code>initialize</code> + * passing it {@code params} and {@code random}. + * That {@code initialize} * method always throws an * UnsupportedOperationException if it is not overridden by the provider. *
--- a/src/share/classes/java/security/KeyPairGeneratorSpi.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyPairGeneratorSpi.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -29,7 +29,7 @@ /** * <p> This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) - * for the <code>KeyPairGenerator</code> class, which is used to generate + * for the {@code KeyPairGenerator} class, which is used to generate * pairs of public and private keys. * * <p> All the abstract methods in this class must be implemented by each @@ -37,7 +37,7 @@ * of a key pair generator for a particular algorithm. * * <p> In case the client does not explicitly initialize the KeyPairGenerator - * (via a call to an <code>initialize</code> method), each provider must + * (via a call to an {@code initialize} method), each provider must * supply (and document) a default initialization. * For example, the <i>Sun</i> provider uses a default modulus size (keysize) * of 1024 bits. @@ -61,7 +61,7 @@ * * @param random the source of randomness for this generator. * - * @exception InvalidParameterException if the <code>keysize</code> is not + * @exception InvalidParameterException if the {@code keysize} is not * supported by this KeyPairGeneratorSpi object. */ public abstract void initialize(int keysize, SecureRandom random); @@ -100,7 +100,7 @@ * will be used. This will generate a new key pair every time it * is called. * - * @return the newly generated <tt>KeyPair</tt> + * @return the newly generated {@code KeyPair} */ public abstract KeyPair generateKeyPair(); }
--- a/src/share/classes/java/security/KeyRep.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyRep.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, 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 @@ -116,17 +116,17 @@ * * @param type either one of Type.SECRET, Type.PUBLIC, or Type.PRIVATE * @param algorithm the algorithm returned from - * <code>Key.getAlgorithm()</code> + * {@code Key.getAlgorithm()} * @param format the encoding format returned from - * <code>Key.getFormat()</code> + * {@code Key.getFormat()} * @param encoded the encoded bytes returned from - * <code>Key.getEncoded()</code> + * {@code Key.getEncoded()} * * @exception NullPointerException - * if type is <code>null</code>, - * if algorithm is <code>null</code>, - * if format is <code>null</code>, - * or if encoded is <code>null</code> + * if type is {@code null}, + * if algorithm is {@code null}, + * if format is {@code null}, + * or if encoded is {@code null} */ public KeyRep(Type type, String algorithm, String format, byte[] encoded) {
--- a/src/share/classes/java/security/KeyStore.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyStore.java Thu Jul 11 12:31:10 2013 -0700 @@ -41,13 +41,13 @@ * This class represents a storage facility for cryptographic * keys and certificates. * - * <p> A <code>KeyStore</code> manages different types of entries. - * Each type of entry implements the <code>KeyStore.Entry</code> interface. - * Three basic <code>KeyStore.Entry</code> implementations are provided: + * <p> A {@code KeyStore} manages different types of entries. + * Each type of entry implements the {@code KeyStore.Entry} interface. + * Three basic {@code KeyStore.Entry} implementations are provided: * * <ul> * <li><b>KeyStore.PrivateKeyEntry</b> - * <p> This type of entry holds a cryptographic <code>PrivateKey</code>, + * <p> This type of entry holds a cryptographic {@code PrivateKey}, * which is optionally stored in a protected format to prevent * unauthorized access. It is also accompanied by a certificate chain * for the corresponding public key. @@ -58,12 +58,12 @@ * and/or licensing software. * * <li><b>KeyStore.SecretKeyEntry</b> - * <p> This type of entry holds a cryptographic <code>SecretKey</code>, + * <p> This type of entry holds a cryptographic {@code SecretKey}, * which is optionally stored in a protected format to prevent * unauthorized access. * * <li><b>KeyStore.TrustedCertificateEntry</b> - * <p> This type of entry contains a single public key <code>Certificate</code> + * <p> This type of entry contains a single public key {@code Certificate} * belonging to another party. It is called a <i>trusted certificate</i> * because the keystore owner trusts that the public key in the certificate * indeed belongs to the identity identified by the <i>subject</i> (owner) @@ -121,8 +121,8 @@ * } * </pre> * - * To create an empty keystore using the above <code>load</code> method, - * pass <code>null</code> as the <code>InputStream</code> argument. + * To create an empty keystore using the above {@code load} method, + * pass {@code null} as the {@code InputStream} argument. * * <p> Once the keystore has been loaded, it is possible * to read existing entries from the keystore, or to write new entries @@ -156,9 +156,9 @@ * may also be used. * * <p> Every implementation of the Java platform is required to support - * the following standard <code>KeyStore</code> type: + * the following standard {@code KeyStore} type: * <ul> - * <li><tt>PKCS12</tt></li> + * <li>{@code PKCS12}</li> * </ul> * This type is described in the <a href= * "{@docRoot}/../technotes/guides/security/StandardNames.html#KeyStore"> @@ -201,7 +201,7 @@ private boolean initialized = false; /** - * A marker interface for <code>KeyStore</code> + * A marker interface for {@code KeyStore} * {@link #load(KeyStore.LoadStoreParameter) load} * and * {@link #store(KeyStore.LoadStoreParameter) store} @@ -227,15 +227,13 @@ * {@link #store(KeyStore.LoadStoreParameter) store} operations. * <p> * The following syntax is supported for configuration data: - * <pre> - * + * <pre>{@code * domain <domainName> [<property> ...] { * keystore <keystoreName> [<property> ...] ; * ... * }; * ... - * - * </pre> + * }</pre> * where {@code domainName} and {@code keystoreName} are identifiers * and {@code property} is a key/value pairing. The key and value are * separated by an 'equals' symbol and the value is enclosed in double @@ -365,19 +363,19 @@ /** * A marker interface for keystore protection parameters. * - * <p> The information stored in a <code>ProtectionParameter</code> + * <p> The information stored in a {@code ProtectionParameter} * object protects the contents of a keystore. * For example, protection parameters may be used to check * the integrity of keystore data, or to protect the * confidentiality of sensitive keystore data - * (such as a <code>PrivateKey</code>). + * (such as a {@code PrivateKey}). * * @since 1.5 */ public static interface ProtectionParameter { } /** - * A password-based implementation of <code>ProtectionParameter</code>. + * A password-based implementation of {@code ProtectionParameter}. * * @since 1.5 */ @@ -392,10 +390,10 @@ /** * Creates a password parameter. * - * <p> The specified <code>password</code> is cloned before it is stored - * in the new <code>PasswordProtection</code> object. + * <p> The specified {@code password} is cloned before it is stored + * in the new {@code PasswordProtection} object. * - * @param password the password, which may be <code>null</code> + * @param password the password, which may be {@code null} */ public PasswordProtection(char[] password) { this.password = (password == null) ? null : password.clone(); @@ -476,7 +474,7 @@ * after it is no longer needed. * * @see #destroy() - * @return the password, which may be <code>null</code> + * @return the password, which may be {@code null} * @exception IllegalStateException if the password has * been cleared (destroyed) */ @@ -546,7 +544,7 @@ } /** - * A marker interface for <code>KeyStore</code> entry types. + * A marker interface for {@code KeyStore} entry types. * * @since 1.5 */ @@ -590,7 +588,7 @@ } /** - * A <code>KeyStore</code> entry that holds a <code>PrivateKey</code> + * A {@code KeyStore} entry that holds a {@code PrivateKey} * and corresponding certificate chain. * * @since 1.5 @@ -602,28 +600,28 @@ private final Set<Attribute> attributes; /** - * Constructs a <code>PrivateKeyEntry</code> with a - * <code>PrivateKey</code> and corresponding certificate chain. + * Constructs a {@code PrivateKeyEntry} with a + * {@code PrivateKey} and corresponding certificate chain. * - * <p> The specified <code>chain</code> is cloned before it is stored - * in the new <code>PrivateKeyEntry</code> object. + * <p> The specified {@code chain} is cloned before it is stored + * in the new {@code PrivateKeyEntry} object. * - * @param privateKey the <code>PrivateKey</code> - * @param chain an array of <code>Certificate</code>s + * @param privateKey the {@code PrivateKey} + * @param chain an array of {@code Certificate}s * representing the certificate chain. * The chain must be ordered and contain a - * <code>Certificate</code> at index 0 + * {@code Certificate} at index 0 * corresponding to the private key. * * @exception NullPointerException if - * <code>privateKey</code> or <code>chain</code> - * is <code>null</code> + * {@code privateKey} or {@code chain} + * is {@code null} * @exception IllegalArgumentException if the specified chain has a * length of 0, if the specified chain does not contain - * <code>Certificate</code>s of the same type, - * or if the <code>PrivateKey</code> algorithm - * does not match the algorithm of the <code>PublicKey</code> - * in the end entity <code>Certificate</code> (at index 0) + * {@code Certificate}s of the same type, + * or if the {@code PrivateKey} algorithm + * does not match the algorithm of the {@code PublicKey} + * in the end entity {@code Certificate} (at index 0) */ public PrivateKeyEntry(PrivateKey privateKey, Certificate[] chain) { this(privateKey, chain, Collections.<Attribute>emptySet()); @@ -699,38 +697,38 @@ } /** - * Gets the <code>PrivateKey</code> from this entry. + * Gets the {@code PrivateKey} from this entry. * - * @return the <code>PrivateKey</code> from this entry + * @return the {@code PrivateKey} from this entry */ public PrivateKey getPrivateKey() { return privKey; } /** - * Gets the <code>Certificate</code> chain from this entry. + * Gets the {@code Certificate} chain from this entry. * * <p> The stored chain is cloned before being returned. * - * @return an array of <code>Certificate</code>s corresponding + * @return an array of {@code Certificate}s corresponding * to the certificate chain for the public key. * If the certificates are of type X.509, * the runtime type of the returned array is - * <code>X509Certificate[]</code>. + * {@code X509Certificate[]}. */ public Certificate[] getCertificateChain() { return chain.clone(); } /** - * Gets the end entity <code>Certificate</code> + * Gets the end entity {@code Certificate} * from the certificate chain in this entry. * - * @return the end entity <code>Certificate</code> (at index 0) + * @return the end entity {@code Certificate} (at index 0) * from the certificate chain in this entry. * If the certificate is of type X.509, * the runtime type of the returned certificate is - * <code>X509Certificate</code>. + * {@code X509Certificate}. */ public Certificate getCertificate() { return chain[0]; @@ -767,7 +765,7 @@ } /** - * A <code>KeyStore</code> entry that holds a <code>SecretKey</code>. + * A {@code KeyStore} entry that holds a {@code SecretKey}. * * @since 1.5 */ @@ -777,13 +775,13 @@ private final Set<Attribute> attributes; /** - * Constructs a <code>SecretKeyEntry</code> with a - * <code>SecretKey</code>. + * Constructs a {@code SecretKeyEntry} with a + * {@code SecretKey}. * - * @param secretKey the <code>SecretKey</code> + * @param secretKey the {@code SecretKey} * - * @exception NullPointerException if <code>secretKey</code> - * is <code>null</code> + * @exception NullPointerException if {@code secretKey} + * is {@code null} */ public SecretKeyEntry(SecretKey secretKey) { if (secretKey == null) { @@ -819,9 +817,9 @@ } /** - * Gets the <code>SecretKey</code> from this entry. + * Gets the {@code SecretKey} from this entry. * - * @return the <code>SecretKey</code> from this entry + * @return the {@code SecretKey} from this entry */ public SecretKey getSecretKey() { return sKey; @@ -850,8 +848,8 @@ } /** - * A <code>KeyStore</code> entry that holds a trusted - * <code>Certificate</code>. + * A {@code KeyStore} entry that holds a trusted + * {@code Certificate}. * * @since 1.5 */ @@ -861,13 +859,13 @@ private final Set<Attribute> attributes; /** - * Constructs a <code>TrustedCertificateEntry</code> with a - * trusted <code>Certificate</code>. + * Constructs a {@code TrustedCertificateEntry} with a + * trusted {@code Certificate}. * - * @param trustedCert the trusted <code>Certificate</code> + * @param trustedCert the trusted {@code Certificate} * * @exception NullPointerException if - * <code>trustedCert</code> is <code>null</code> + * {@code trustedCert} is {@code null} */ public TrustedCertificateEntry(Certificate trustedCert) { if (trustedCert == null) { @@ -903,9 +901,9 @@ } /** - * Gets the trusted <code>Certficate</code> from this entry. + * Gets the trusted {@code Certficate} from this entry. * - * @return the trusted <code>Certificate</code> from this entry + * @return the trusted {@code Certificate} from this entry */ public Certificate getTrustedCertificate() { return cert; @@ -1129,9 +1127,9 @@ /** * Returns the key associated with the given alias, using the given * password to recover it. The key must have been associated with - * the alias by a call to <code>setKeyEntry</code>, - * or by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code> or <code>SecretKeyEntry</code>. + * the alias by a call to {@code setKeyEntry}, + * or by a call to {@code setEntry} with a + * {@code PrivateKeyEntry} or {@code SecretKeyEntry}. * * @param alias the alias name * @param password the password for recovering the key @@ -1159,9 +1157,9 @@ /** * Returns the certificate chain associated with the given alias. * The certificate chain must have been associated with the alias - * by a call to <code>setKeyEntry</code>, - * or by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code>. + * by a call to {@code setKeyEntry}, + * or by a call to {@code setEntry} with a + * {@code PrivateKeyEntry}. * * @param alias the alias name * @@ -1185,15 +1183,15 @@ * Returns the certificate associated with the given alias. * * <p> If the given alias name identifies an entry - * created by a call to <code>setCertificateEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>TrustedCertificateEntry</code>, + * created by a call to {@code setCertificateEntry}, + * or created by a call to {@code setEntry} with a + * {@code TrustedCertificateEntry}, * then the trusted certificate contained in that entry is returned. * * <p> If the given alias name identifies an entry - * created by a call to <code>setKeyEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code>, + * created by a call to {@code setKeyEntry}, + * or created by a call to {@code setEntry} with a + * {@code PrivateKeyEntry}, * then the first element of the certificate chain in that entry * is returned. * @@ -1238,7 +1236,7 @@ * Assigns the given key to the given alias, protecting it with the given * password. * - * <p>If the given key is of type <code>java.security.PrivateKey</code>, + * <p>If the given key is of type {@code java.security.PrivateKey}, * it must be accompanied by a certificate chain certifying the * corresponding public key. * @@ -1251,7 +1249,7 @@ * @param password the password to protect the key * @param chain the certificate chain for the corresponding public * key (only required if the given key is of type - * <code>java.security.PrivateKey</code>). + * {@code java.security.PrivateKey}). * * @exception KeyStoreException if the keystore has not been initialized * (loaded), the given key cannot be protected, or this operation fails @@ -1278,11 +1276,11 @@ * alias. * * <p>If the protected key is of type - * <code>java.security.PrivateKey</code>, it must be accompanied by a + * {@code java.security.PrivateKey}, it must be accompanied by a * certificate chain certifying the corresponding public key. If the - * underlying keystore implementation is of type <code>jks</code>, - * <code>key</code> must be encoded as an - * <code>EncryptedPrivateKeyInfo</code> as defined in the PKCS #8 standard. + * underlying keystore implementation is of type {@code jks}, + * {@code key} must be encoded as an + * {@code EncryptedPrivateKeyInfo} as defined in the PKCS #8 standard. * * <p>If the given alias already exists, the keystore information * associated with it is overridden by the given key (and possibly @@ -1292,7 +1290,7 @@ * @param key the key (in protected format) to be associated with the alias * @param chain the certificate chain for the corresponding public * key (only useful if the protected key is of type - * <code>java.security.PrivateKey</code>). + * {@code java.security.PrivateKey}). * * @exception KeyStoreException if the keystore has not been initialized * (loaded), or if this operation fails for some other reason. @@ -1311,9 +1309,9 @@ * Assigns the given trusted certificate to the given alias. * * <p> If the given alias identifies an existing entry - * created by a call to <code>setCertificateEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>TrustedCertificateEntry</code>, + * created by a call to {@code setCertificateEntry}, + * or created by a call to {@code setEntry} with a + * {@code TrustedCertificateEntry}, * the trusted certificate in the existing entry * is overridden by the given certificate. * @@ -1406,9 +1404,9 @@ /** * Returns true if the entry identified by the given alias - * was created by a call to <code>setKeyEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code> or a <code>SecretKeyEntry</code>. + * was created by a call to {@code setKeyEntry}, + * or created by a call to {@code setEntry} with a + * {@code PrivateKeyEntry} or a {@code SecretKeyEntry}. * * @param alias the alias for the keystore entry to be checked * @@ -1429,9 +1427,9 @@ /** * Returns true if the entry identified by the given alias - * was created by a call to <code>setCertificateEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>TrustedCertificateEntry</code>. + * was created by a call to {@code setCertificateEntry}, + * or created by a call to {@code setEntry} with a + * {@code TrustedCertificateEntry}. * * @param alias the alias for the keystore entry to be checked * @@ -1456,15 +1454,15 @@ * * <p> This method attempts to match the given certificate with each * keystore entry. If the entry being considered was - * created by a call to <code>setCertificateEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>TrustedCertificateEntry</code>, + * created by a call to {@code setCertificateEntry}, + * or created by a call to {@code setEntry} with a + * {@code TrustedCertificateEntry}, * then the given certificate is compared to that entry's certificate. * * <p> If the entry being considered was - * created by a call to <code>setKeyEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code>, + * created by a call to {@code setKeyEntry}, + * or created by a call to {@code setEntry} with a + * {@code PrivateKeyEntry}, * then the given certificate is compared to the first * element of that entry's certificate chain. * @@ -1511,14 +1509,14 @@ } /** - * Stores this keystore using the given <code>LoadStoreParameter</code>. + * Stores this keystore using the given {@code LoadStoreParameter}. * - * @param param the <code>LoadStoreParameter</code> + * @param param the {@code LoadStoreParameter} * that specifies how to store the keystore, - * which may be <code>null</code> + * which may be {@code null} * * @exception IllegalArgumentException if the given - * <code>LoadStoreParameter</code> + * {@code LoadStoreParameter} * input is not recognized * @exception KeyStoreException if the keystore has not been initialized * (loaded) @@ -1549,24 +1547,24 @@ * then integrity checking is not performed. * * <p>In order to create an empty keystore, or if the keystore cannot - * be initialized from a stream, pass <code>null</code> - * as the <code>stream</code> argument. + * be initialized from a stream, pass {@code null} + * as the {@code stream} argument. * * <p> Note that if this keystore has already been loaded, it is * reinitialized and loaded again from the given input stream. * * @param stream the input stream from which the keystore is loaded, - * or <code>null</code> + * or {@code null} * @param password the password used to check the integrity of * the keystore, the password used to unlock the keystore, - * or <code>null</code> + * or {@code null} * * @exception IOException if there is an I/O or format problem with the * keystore data, if a password is required but not given, * or if the given password was incorrect. If the error is due to a * wrong password, the {@link Throwable#getCause cause} of the - * <code>IOException</code> should be an - * <code>UnrecoverableKeyException</code> + * {@code IOException} should be an + * {@code UnrecoverableKeyException} * @exception NoSuchAlgorithmException if the algorithm used to check * the integrity of the keystore cannot be found * @exception CertificateException if any of the certificates in the @@ -1580,24 +1578,24 @@ } /** - * Loads this keystore using the given <code>LoadStoreParameter</code>. + * Loads this keystore using the given {@code LoadStoreParameter}. * * <p> Note that if this KeyStore has already been loaded, it is * reinitialized and loaded again from the given parameter. * - * @param param the <code>LoadStoreParameter</code> + * @param param the {@code LoadStoreParameter} * that specifies how to load the keystore, - * which may be <code>null</code> + * which may be {@code null} * * @exception IllegalArgumentException if the given - * <code>LoadStoreParameter</code> + * {@code LoadStoreParameter} * input is not recognized * @exception IOException if there is an I/O or format problem with the * keystore data. If the error is due to an incorrect - * <code>ProtectionParameter</code> (e.g. wrong password) + * {@code ProtectionParameter} (e.g. wrong password) * the {@link Throwable#getCause cause} of the - * <code>IOException</code> should be an - * <code>UnrecoverableKeyException</code> + * {@code IOException} should be an + * {@code UnrecoverableKeyException} * @exception NoSuchAlgorithmException if the algorithm used to check * the integrity of the keystore cannot be found * @exception CertificateException if any of the certificates in the @@ -1614,26 +1612,26 @@ } /** - * Gets a keystore <code>Entry</code> for the specified alias + * Gets a keystore {@code Entry} for the specified alias * with the specified protection parameter. * - * @param alias get the keystore <code>Entry</code> for this alias - * @param protParam the <code>ProtectionParameter</code> - * used to protect the <code>Entry</code>, - * which may be <code>null</code> + * @param alias get the keystore {@code Entry} for this alias + * @param protParam the {@code ProtectionParameter} + * used to protect the {@code Entry}, + * which may be {@code null} * - * @return the keystore <code>Entry</code> for the specified alias, - * or <code>null</code> if there is no such entry + * @return the keystore {@code Entry} for the specified alias, + * or {@code null} if there is no such entry * * @exception NullPointerException if - * <code>alias</code> is <code>null</code> + * {@code alias} is {@code null} * @exception NoSuchAlgorithmException if the algorithm for recovering the * entry cannot be found * @exception UnrecoverableEntryException if the specified - * <code>protParam</code> were insufficient or invalid + * {@code protParam} were insufficient or invalid * @exception UnrecoverableKeyException if the entry is a - * <code>PrivateKeyEntry</code> or <code>SecretKeyEntry</code> - * and the specified <code>protParam</code> does not contain + * {@code PrivateKeyEntry} or {@code SecretKeyEntry} + * and the specified {@code protParam} does not contain * the information needed to recover the key (e.g. wrong password) * @exception KeyStoreException if the keystore has not been initialized * (loaded). @@ -1655,22 +1653,22 @@ } /** - * Saves a keystore <code>Entry</code> under the specified alias. + * Saves a keystore {@code Entry} under the specified alias. * The protection parameter is used to protect the - * <code>Entry</code>. + * {@code Entry}. * * <p> If an entry already exists for the specified alias, * it is overridden. * - * @param alias save the keystore <code>Entry</code> under this alias - * @param entry the <code>Entry</code> to save - * @param protParam the <code>ProtectionParameter</code> - * used to protect the <code>Entry</code>, - * which may be <code>null</code> + * @param alias save the keystore {@code Entry} under this alias + * @param entry the {@code Entry} to save + * @param protParam the {@code ProtectionParameter} + * used to protect the {@code Entry}, + * which may be {@code null} * * @exception NullPointerException if - * <code>alias</code> or <code>entry</code> - * is <code>null</code> + * {@code alias} or {@code entry} + * is {@code null} * @exception KeyStoreException if the keystore has not been initialized * (loaded), or if this operation fails for some other reason * @@ -1691,20 +1689,20 @@ } /** - * Determines if the keystore <code>Entry</code> for the specified - * <code>alias</code> is an instance or subclass of the specified - * <code>entryClass</code>. + * Determines if the keystore {@code Entry} for the specified + * {@code alias} is an instance or subclass of the specified + * {@code entryClass}. * * @param alias the alias name * @param entryClass the entry class * - * @return true if the keystore <code>Entry</code> for the specified - * <code>alias</code> is an instance or subclass of the - * specified <code>entryClass</code>, false otherwise + * @return true if the keystore {@code Entry} for the specified + * {@code alias} is an instance or subclass of the + * specified {@code entryClass}, false otherwise * * @exception NullPointerException if - * <code>alias</code> or <code>entryClass</code> - * is <code>null</code> + * {@code alias} or {@code entryClass} + * is {@code null} * @exception KeyStoreException if the keystore has not been * initialized (loaded) * @@ -1764,7 +1762,7 @@ /** * Returns the ProtectionParameters that should be used to obtain * the {@link KeyStore.Entry Entry} with the given alias. - * The <code>getKeyStore</code> method must be invoked before this + * The {@code getKeyStore} method must be invoked before this * method may be called. * * @return the ProtectionParameters that should be used to obtain @@ -1782,9 +1780,9 @@ /** * Returns a new Builder that encapsulates the given KeyStore. * The {@linkplain #getKeyStore} method of the returned object - * will return <code>keyStore</code>, the {@linkplain + * will return {@code keyStore}, the {@linkplain * #getProtectionParameter getProtectionParameter()} method will - * return <code>protectionParameters</code>. + * return {@code protectionParameters}. * * <p> This is useful if an existing KeyStore object needs to be * used with Builder-based APIs. @@ -1832,15 +1830,15 @@ * Returns a new Builder object. * * <p>The first call to the {@link #getKeyStore} method on the returned - * builder will create a KeyStore of type <code>type</code> and call + * builder will create a KeyStore of type {@code type} and call * its {@link KeyStore#load load()} method. - * The <code>inputStream</code> argument is constructed from - * <code>file</code>. - * If <code>protection</code> is a - * <code>PasswordProtection</code>, the password is obtained by - * calling the <code>getPassword</code> method. - * Otherwise, if <code>protection</code> is a - * <code>CallbackHandlerProtection</code>, the password is obtained + * The {@code inputStream} argument is constructed from + * {@code file}. + * If {@code protection} is a + * {@code PasswordProtection}, the password is obtained by + * calling the {@code getPassword} method. + * Otherwise, if {@code protection} is a + * {@code CallbackHandlerProtection}, the password is obtained * by invoking the CallbackHandler. * * <p>Subsequent calls to {@link #getKeyStore} return the same object @@ -1848,13 +1846,13 @@ * KeyStoreException, subsequent calls also throw a * KeyStoreException. * - * <p>The KeyStore is instantiated from <code>provider</code> if + * <p>The KeyStore is instantiated from {@code provider} if * non-null. Otherwise, all installed providers are searched. * * <p>Calls to {@link #getProtectionParameter getProtectionParameter()} * will return a {@link KeyStore.PasswordProtection PasswordProtection} * object encapsulating the password that was used to invoke the - * <code>load</code> method. + * {@code load} method. * * <p><em>Note</em> that the {@link #getKeyStore} method is executed * within the {@link AccessControlContext} of the code invoking this @@ -2013,17 +2011,17 @@ * Returns a new Builder object. * * <p>Each call to the {@link #getKeyStore} method on the returned - * builder will return a new KeyStore object of type <code>type</code>. + * builder will return a new KeyStore object of type {@code type}. * Its {@link KeyStore#load(KeyStore.LoadStoreParameter) load()} * method is invoked using a - * <code>LoadStoreParameter</code> that encapsulates - * <code>protection</code>. + * {@code LoadStoreParameter} that encapsulates + * {@code protection}. * - * <p>The KeyStore is instantiated from <code>provider</code> if + * <p>The KeyStore is instantiated from {@code provider} if * non-null. Otherwise, all installed providers are searched. * * <p>Calls to {@link #getProtectionParameter getProtectionParameter()} - * will return <code>protection</code>. + * will return {@code protection}. * * <p><em>Note</em> that the {@link #getKeyStore} method is executed * within the {@link AccessControlContext} of the code invoking this
--- a/src/share/classes/java/security/KeyStoreException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyStoreException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,13 +59,13 @@ } /** - * Creates a <code>KeyStoreException</code> with the specified + * Creates a {@code KeyStoreException} with the specified * detail message and cause. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */ @@ -74,13 +74,13 @@ } /** - * Creates a <code>KeyStoreException</code> with the specified cause - * and a detail message of <tt>(cause==null ? null : cause.toString())</tt> + * Creates a {@code KeyStoreException} with the specified cause + * and a detail message of {@code (cause==null ? null : cause.toString())} * (which typically contains the class and detail message of - * <tt>cause</tt>). + * {@code cause}). * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */
--- a/src/share/classes/java/security/KeyStoreSpi.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/KeyStoreSpi.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,7 @@ /** * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) - * for the <code>KeyStore</code> class. + * for the {@code KeyStore} class. * All the abstract methods in this class must be implemented by each * cryptographic service provider who wishes to supply the implementation * of a keystore for a particular keystore type. @@ -56,9 +56,9 @@ /** * Returns the key associated with the given alias, using the given * password to recover it. The key must have been associated with - * the alias by a call to <code>setKeyEntry</code>, - * or by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code> or <code>SecretKeyEntry</code>. + * the alias by a call to {@code setKeyEntry}, + * or by a call to {@code setEntry} with a + * {@code PrivateKeyEntry} or {@code SecretKeyEntry}. * * @param alias the alias name * @param password the password for recovering the key @@ -77,9 +77,9 @@ /** * Returns the certificate chain associated with the given alias. * The certificate chain must have been associated with the alias - * by a call to <code>setKeyEntry</code>, - * or by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code>. + * by a call to {@code setKeyEntry}, + * or by a call to {@code setEntry} with a + * {@code PrivateKeyEntry}. * * @param alias the alias name * @@ -93,15 +93,15 @@ * Returns the certificate associated with the given alias. * * <p> If the given alias name identifies an entry - * created by a call to <code>setCertificateEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>TrustedCertificateEntry</code>, + * created by a call to {@code setCertificateEntry}, + * or created by a call to {@code setEntry} with a + * {@code TrustedCertificateEntry}, * then the trusted certificate contained in that entry is returned. * * <p> If the given alias name identifies an entry - * created by a call to <code>setKeyEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code>, + * created by a call to {@code setKeyEntry}, + * or created by a call to {@code setEntry} with a + * {@code PrivateKeyEntry}, * then the first element of the certificate chain in that entry * (if a chain exists) is returned. * @@ -126,7 +126,7 @@ * Assigns the given key to the given alias, protecting it with the given * password. * - * <p>If the given key is of type <code>java.security.PrivateKey</code>, + * <p>If the given key is of type {@code java.security.PrivateKey}, * it must be accompanied by a certificate chain certifying the * corresponding public key. * @@ -139,7 +139,7 @@ * @param password the password to protect the key * @param chain the certificate chain for the corresponding public * key (only required if the given key is of type - * <code>java.security.PrivateKey</code>). + * {@code java.security.PrivateKey}). * * @exception KeyStoreException if the given key cannot be protected, or * this operation fails for some other reason @@ -154,7 +154,7 @@ * alias. * * <p>If the protected key is of type - * <code>java.security.PrivateKey</code>, + * {@code java.security.PrivateKey}, * it must be accompanied by a certificate chain certifying the * corresponding public key. * @@ -166,7 +166,7 @@ * @param key the key (in protected format) to be associated with the alias * @param chain the certificate chain for the corresponding public * key (only useful if the protected key is of type - * <code>java.security.PrivateKey</code>). + * {@code java.security.PrivateKey}). * * @exception KeyStoreException if this operation fails. */ @@ -178,9 +178,9 @@ * Assigns the given certificate to the given alias. * * <p> If the given alias identifies an existing entry - * created by a call to <code>setCertificateEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>TrustedCertificateEntry</code>, + * created by a call to {@code setCertificateEntry}, + * or created by a call to {@code setEntry} with a + * {@code TrustedCertificateEntry}, * the trusted certificate in the existing entry * is overridden by the given certificate. * @@ -230,9 +230,9 @@ /** * Returns true if the entry identified by the given alias - * was created by a call to <code>setKeyEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code> or a <code>SecretKeyEntry</code>. + * was created by a call to {@code setKeyEntry}, + * or created by a call to {@code setEntry} with a + * {@code PrivateKeyEntry} or a {@code SecretKeyEntry}. * * @param alias the alias for the keystore entry to be checked * @@ -243,9 +243,9 @@ /** * Returns true if the entry identified by the given alias - * was created by a call to <code>setCertificateEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>TrustedCertificateEntry</code>. + * was created by a call to {@code setCertificateEntry}, + * or created by a call to {@code setEntry} with a + * {@code TrustedCertificateEntry}. * * @param alias the alias for the keystore entry to be checked * @@ -260,15 +260,15 @@ * * <p>This method attempts to match the given certificate with each * keystore entry. If the entry being considered was - * created by a call to <code>setCertificateEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>TrustedCertificateEntry</code>, + * created by a call to {@code setCertificateEntry}, + * or created by a call to {@code setEntry} with a + * {@code TrustedCertificateEntry}, * then the given certificate is compared to that entry's certificate. * * <p> If the entry being considered was - * created by a call to <code>setKeyEntry</code>, - * or created by a call to <code>setEntry</code> with a - * <code>PrivateKeyEntry</code>, + * created by a call to {@code setKeyEntry}, + * or created by a call to {@code setEntry} with a + * {@code PrivateKeyEntry}, * then the given certificate is compared to the first * element of that entry's certificate chain. * @@ -297,14 +297,14 @@ /** * Stores this keystore using the given - * <code>KeyStore.LoadStoreParmeter</code>. + * {@code KeyStore.LoadStoreParmeter}. * - * @param param the <code>KeyStore.LoadStoreParmeter</code> + * @param param the {@code KeyStore.LoadStoreParmeter} * that specifies how to store the keystore, - * which may be <code>null</code> + * which may be {@code null} * * @exception IllegalArgumentException if the given - * <code>KeyStore.LoadStoreParmeter</code> + * {@code KeyStore.LoadStoreParmeter} * input is not recognized * @exception IOException if there was an I/O problem with data * @exception NoSuchAlgorithmException if the appropriate data integrity @@ -330,17 +330,17 @@ * then integrity checking is not performed. * * @param stream the input stream from which the keystore is loaded, - * or <code>null</code> + * or {@code null} * @param password the password used to check the integrity of * the keystore, the password used to unlock the keystore, - * or <code>null</code> + * or {@code null} * * @exception IOException if there is an I/O or format problem with the * keystore data, if a password is required but not given, * or if the given password was incorrect. If the error is due to a * wrong password, the {@link Throwable#getCause cause} of the - * <code>IOException</code> should be an - * <code>UnrecoverableKeyException</code> + * {@code IOException} should be an + * {@code UnrecoverableKeyException} * @exception NoSuchAlgorithmException if the algorithm used to check * the integrity of the keystore cannot be found * @exception CertificateException if any of the certificates in the @@ -351,24 +351,24 @@ /** * Loads the keystore using the given - * <code>KeyStore.LoadStoreParameter</code>. + * {@code KeyStore.LoadStoreParameter}. * * <p> Note that if this KeyStore has already been loaded, it is * reinitialized and loaded again from the given parameter. * - * @param param the <code>KeyStore.LoadStoreParameter</code> + * @param param the {@code KeyStore.LoadStoreParameter} * that specifies how to load the keystore, - * which may be <code>null</code> + * which may be {@code null} * * @exception IllegalArgumentException if the given - * <code>KeyStore.LoadStoreParameter</code> + * {@code KeyStore.LoadStoreParameter} * input is not recognized * @exception IOException if there is an I/O or format problem with the * keystore data. If the error is due to an incorrect - * <code>ProtectionParameter</code> (e.g. wrong password) + * {@code ProtectionParameter} (e.g. wrong password) * the {@link Throwable#getCause cause} of the - * <code>IOException</code> should be an - * <code>UnrecoverableKeyException</code> + * {@code IOException} should be an + * {@code UnrecoverableKeyException} * @exception NoSuchAlgorithmException if the algorithm used to check * the integrity of the keystore cannot be found * @exception CertificateException if any of the certificates in the @@ -419,25 +419,25 @@ } /** - * Gets a <code>KeyStore.Entry</code> for the specified alias + * Gets a {@code KeyStore.Entry} for the specified alias * with the specified protection parameter. * - * @param alias get the <code>KeyStore.Entry</code> for this alias - * @param protParam the <code>ProtectionParameter</code> - * used to protect the <code>Entry</code>, - * which may be <code>null</code> + * @param alias get the {@code KeyStore.Entry} for this alias + * @param protParam the {@code ProtectionParameter} + * used to protect the {@code Entry}, + * which may be {@code null} * - * @return the <code>KeyStore.Entry</code> for the specified alias, - * or <code>null</code> if there is no such entry + * @return the {@code KeyStore.Entry} for the specified alias, + * or {@code null} if there is no such entry * * @exception KeyStoreException if the operation failed * @exception NoSuchAlgorithmException if the algorithm for recovering the * entry cannot be found * @exception UnrecoverableEntryException if the specified - * <code>protParam</code> were insufficient or invalid + * {@code protParam} were insufficient or invalid * @exception UnrecoverableKeyException if the entry is a - * <code>PrivateKeyEntry</code> or <code>SecretKeyEntry</code> - * and the specified <code>protParam</code> does not contain + * {@code PrivateKeyEntry} or {@code SecretKeyEntry} + * and the specified {@code protParam} does not contain * the information needed to recover the key (e.g. wrong password) * * @since 1.5 @@ -484,18 +484,18 @@ } /** - * Saves a <code>KeyStore.Entry</code> under the specified alias. + * Saves a {@code KeyStore.Entry} under the specified alias. * The specified protection parameter is used to protect the - * <code>Entry</code>. + * {@code Entry}. * * <p> If an entry already exists for the specified alias, * it is overridden. * - * @param alias save the <code>KeyStore.Entry</code> under this alias - * @param entry the <code>Entry</code> to save - * @param protParam the <code>ProtectionParameter</code> - * used to protect the <code>Entry</code>, - * which may be <code>null</code> + * @param alias save the {@code KeyStore.Entry} under this alias + * @param entry the {@code Entry} to save + * @param protParam the {@code ProtectionParameter} + * used to protect the {@code Entry}, + * which may be {@code null} * * @exception KeyStoreException if this operation fails * @@ -560,16 +560,16 @@ } /** - * Determines if the keystore <code>Entry</code> for the specified - * <code>alias</code> is an instance or subclass of the specified - * <code>entryClass</code>. + * Determines if the keystore {@code Entry} for the specified + * {@code alias} is an instance or subclass of the specified + * {@code entryClass}. * * @param alias the alias name * @param entryClass the entry class * - * @return true if the keystore <code>Entry</code> for the specified - * <code>alias</code> is an instance or subclass of the - * specified <code>entryClass</code>, false otherwise + * @return true if the keystore {@code Entry} for the specified + * {@code alias} is an instance or subclass of the + * specified {@code entryClass}, false otherwise * * @since 1.5 */
--- a/src/share/classes/java/security/MessageDigest.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/MessageDigest.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -48,8 +48,8 @@ * updated, one of the {@link #digest() digest} methods should * be called to complete the hash computation. * - * <p>The <code>digest</code> method can be called once for a given number - * of updates. After <code>digest</code> has been called, the MessageDigest + * <p>The {@code digest} method can be called once for a given number + * of updates. After {@code digest} has been called, the MessageDigest * object is reset to its initialized state. * * <p>Implementations are free to implement the Cloneable interface. @@ -75,18 +75,18 @@ * several instances, if the number of digests is known in advance. * * <p>Note that this class is abstract and extends from - * <code>MessageDigestSpi</code> for historical reasons. + * {@code MessageDigestSpi} for historical reasons. * Application developers should only take notice of the methods defined in - * this <code>MessageDigest</code> class; all the methods in + * this {@code MessageDigest} class; all the methods in * the superclass are intended for cryptographic service providers who wish to * supply their own implementations of message digest algorithms. * * <p> Every implementation of the Java platform is required to support - * the following standard <code>MessageDigest</code> algorithms: + * the following standard {@code MessageDigest} algorithms: * <ul> - * <li><tt>MD5</tt></li> - * <li><tt>SHA-1</tt></li> - * <li><tt>SHA-256</tt></li> + * <li>{@code MD5}</li> + * <li>{@code SHA-1}</li> + * <li>{@code SHA-256}</li> * </ul> * These algorithms are described in the <a href= * "{@docRoot}/../technotes/guides/security/StandardNames.html#MessageDigest"> @@ -301,7 +301,7 @@ * @param offset the offset to start from in the array of bytes. * * @param len the number of bytes to use, starting at - * <code>offset</code>. + * {@code offset}. */ public void update(byte[] input, int offset, int len) { if (input == null) { @@ -326,8 +326,8 @@ /** * Update the digest using the specified ByteBuffer. The digest is - * updated using the <code>input.remaining()</code> bytes starting - * at <code>input.position()</code>. + * updated using the {@code input.remaining()} bytes starting + * at {@code input.position()}. * Upon return, the buffer's position will be equal to its limit; * its limit will not have changed. * @@ -365,7 +365,7 @@ * * @param len number of bytes within buf allotted for the digest * - * @return the number of bytes placed into <code>buf</code> + * @return the number of bytes placed into {@code buf} * * @exception DigestException if an error occurs. */ @@ -386,7 +386,7 @@ * Performs a final update on the digest using the specified array * of bytes, then completes the digest computation. That is, this * method first calls {@link #update(byte[]) update(input)}, - * passing the <i>input</i> array to the <code>update</code> method, + * passing the <i>input</i> array to the {@code update} method, * then calls {@link #digest() digest()}. * * @param input the input to be updated before the digest is @@ -492,7 +492,7 @@ * @return a clone if the implementation is cloneable. * * @exception CloneNotSupportedException if this is called on an - * implementation that does not support <code>Cloneable</code>. + * implementation that does not support {@code Cloneable}. */ public Object clone() throws CloneNotSupportedException { if (this instanceof Cloneable) { @@ -536,7 +536,7 @@ * @return a clone if the delegate is cloneable. * * @exception CloneNotSupportedException if this is called on a - * delegate that does not support <code>Cloneable</code>. + * delegate that does not support {@code Cloneable}. */ public Object clone() throws CloneNotSupportedException { if (digestSpi instanceof Cloneable) {
--- a/src/share/classes/java/security/MessageDigestSpi.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/MessageDigestSpi.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,7 +31,7 @@ /** * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) - * for the <code>MessageDigest</code> class, which provides the functionality + * for the {@code MessageDigest} class, which provides the functionality * of a message digest algorithm, such as MD5 or SHA. Message digests are * secure one-way hash functions that take arbitrary-sized data and output a * fixed-length hash value. @@ -88,14 +88,14 @@ * @param offset the offset to start from in the array of bytes. * * @param len the number of bytes to use, starting at - * <code>offset</code>. + * {@code offset}. */ protected abstract void engineUpdate(byte[] input, int offset, int len); /** * Update the digest using the specified ByteBuffer. The digest is - * updated using the <code>input.remaining()</code> bytes starting - * at <code>input.position()</code>. + * updated using the {@code input.remaining()} bytes starting + * at {@code input.position()}. * Upon return, the buffer's position will be equal to its limit; * its limit will not have changed. * @@ -130,7 +130,7 @@ /** * Completes the hash computation by performing final - * operations such as padding. Once <code>engineDigest</code> has + * operations such as padding. Once {@code engineDigest} has * been called, the engine should be reset (see * {@link #engineReset() engineReset}). * Resetting is the responsibility of the @@ -142,7 +142,7 @@ /** * Completes the hash computation by performing final - * operations such as padding. Once <code>engineDigest</code> has + * operations such as padding. Once {@code engineDigest} has * been called, the engine should be reset (see * {@link #engineReset() engineReset}). * Resetting is the responsibility of the @@ -194,7 +194,7 @@ * @return a clone if the implementation is cloneable. * * @exception CloneNotSupportedException if this is called on an - * implementation that does not support <code>Cloneable</code>. + * implementation that does not support {@code Cloneable}. */ public Object clone() throws CloneNotSupportedException { if (this instanceof Cloneable) {
--- a/src/share/classes/java/security/NoSuchAlgorithmException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/NoSuchAlgorithmException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -58,13 +58,13 @@ } /** - * Creates a <code>NoSuchAlgorithmException</code> with the specified + * Creates a {@code NoSuchAlgorithmException} with the specified * detail message and cause. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */ @@ -73,13 +73,13 @@ } /** - * Creates a <code>NoSuchAlgorithmException</code> with the specified cause - * and a detail message of <tt>(cause==null ? null : cause.toString())</tt> + * Creates a {@code NoSuchAlgorithmException} with the specified cause + * and a detail message of {@code (cause==null ? null : cause.toString())} * (which typically contains the class and detail message of - * <tt>cause</tt>). + * {@code cause}). * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is permitted, + * {@link #getCause()} method). (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @since 1.5 */
--- a/src/share/classes/java/security/Permission.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/Permission.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,17 +33,17 @@ * * <p>Most Permission objects also include an "actions" list that tells the actions * that are permitted for the object. For example, - * for a <code>java.io.FilePermission</code> object, the permission name is + * for a {@code java.io.FilePermission} object, the permission name is * the pathname of a file (or directory), and the actions list * (such as "read, write") specifies which actions are granted for the * specified file (or for files in the specified directory). * The actions list is optional for Permission objects, such as - * <code>java.lang.RuntimePermission</code>, + * {@code java.lang.RuntimePermission}, * that don't need such a list; you either have the named permission (such * as "system.exit") or you don't. * * <p>An important method that must be implemented by each subclass is - * the <code>implies</code> method to compare Permissions. Basically, + * the {@code implies} method to compare Permissions. Basically, * "permission p1 implies permission p2" means that * if one is granted permission p1, one is naturally granted permission p2. * Thus, this is not an equality test, but rather more of a @@ -81,7 +81,7 @@ /** * Implements the guard interface for a permission. The - * <code>SecurityManager.checkPermission</code> method is called, + * {@code SecurityManager.checkPermission} method is called, * passing this permission object as the permission to check. * Returns silently if access is granted. Otherwise, throws * a SecurityException. @@ -90,7 +90,7 @@ * * @throws SecurityException * if a security manager exists and its - * <code>checkPermission</code> method doesn't allow access. + * {@code checkPermission} method doesn't allow access. * * @see Guard * @see GuardedObject @@ -109,7 +109,7 @@ * This must be implemented by subclasses of Permission, as they are the * only ones that can impose semantics on a Permission object. * - * <p>The <code>implies</code> method is used by the AccessController to determine + * <p>The {@code implies} method is used by the AccessController to determine * whether or not a requested permission is implied by another permission that * is known to be valid in the current execution context. * @@ -124,8 +124,8 @@ /** * Checks two Permission objects for equality. * <P> - * Do not use the <code>equals</code> method for making access control - * decisions; use the <code>implies</code> method. + * Do not use the {@code equals} method for making access control + * decisions; use the {@code implies} method. * * @param obj the object we are testing for equality with this object. * @@ -137,18 +137,18 @@ /** * Returns the hash code value for this Permission object. * <P> - * The required <code>hashCode</code> behavior for Permission Objects is + * The required {@code hashCode} behavior for Permission Objects is * the following: <p> * <ul> * <li>Whenever it is invoked on the same Permission object more than * once during an execution of a Java application, the - * <code>hashCode</code> method + * {@code hashCode} method * must consistently return the same integer. This integer need not * remain consistent from one execution of an application to another * execution of the same application. <p> * <li>If two Permission objects are equal according to the - * <code>equals</code> - * method, then calling the <code>hashCode</code> method on each of the + * {@code equals} + * method, then calling the {@code hashCode} method on each of the * two Permission objects must produce the same integer result. * </ul> * @@ -159,7 +159,7 @@ /** * Returns the name of this Permission. - * For example, in the case of a <code>java.io.FilePermission</code>, + * For example, in the case of a {@code java.io.FilePermission}, * the name will be a pathname. * * @return the name of this Permission. @@ -184,7 +184,7 @@ * </pre> * * both return - * "read,write" when the <code>getActions</code> method is invoked. + * "read,write" when the {@code getActions} method is invoked. * * @return the actions of this Permission. * @@ -197,7 +197,7 @@ * one is not defined. Subclasses of class Permission should * override this if they need to store their permissions in a particular * PermissionCollection object in order to provide the correct semantics - * when the <code>PermissionCollection.implies</code> method is called. + * when the {@code PermissionCollection.implies} method is called. * If null is returned, * then the caller of this method is free to store permissions of this * type in any PermissionCollection they choose (one that uses a Hashtable,
--- a/src/share/classes/java/security/PermissionCollection.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/PermissionCollection.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,29 +32,29 @@ * * <p>With a PermissionCollection, you can: * <UL> - * <LI> add a permission to the collection using the <code>add</code> method. + * <LI> add a permission to the collection using the {@code add} method. * <LI> check to see if a particular permission is implied in the - * collection, using the <code>implies</code> method. - * <LI> enumerate all the permissions, using the <code>elements</code> method. + * collection, using the {@code implies} method. + * <LI> enumerate all the permissions, using the {@code elements} method. * </UL> * <P> * * <p>When it is desirable to group together a number of Permission objects - * of the same type, the <code>newPermissionCollection</code> method on that + * of the same type, the {@code newPermissionCollection} method on that * particular type of Permission object should first be called. The default * behavior (from the Permission class) is to simply return null. * Subclasses of class Permission override the method if they need to store * their permissions in a particular PermissionCollection object in order * to provide the correct semantics when the - * <code>PermissionCollection.implies</code> method is called. + * {@code PermissionCollection.implies} method is called. * If a non-null value is returned, that PermissionCollection must be used. - * If null is returned, then the caller of <code>newPermissionCollection</code> + * If null is returned, then the caller of {@code newPermissionCollection} * is free to store permissions of the * given type in any PermissionCollection they choose * (one that uses a Hashtable, one that uses a Vector, etc). * * <p>The PermissionCollection returned by the - * <code>Permission.newPermissionCollection</code> + * {@code Permission.newPermissionCollection} * method is a homogeneous collection, which stores only Permission objects * for a given Permission type. A PermissionCollection may also be * heterogeneous. For example, Permissions is a PermissionCollection @@ -62,16 +62,16 @@ * That is, its members are each a homogeneous PermissionCollection. * For example, a Permissions object might have a FilePermissionCollection * for all the FilePermission objects, a SocketPermissionCollection for all the - * SocketPermission objects, and so on. Its <code>add</code> method adds a + * SocketPermission objects, and so on. Its {@code add} method adds a * permission to the appropriate collection. * * <p>Whenever a permission is added to a heterogeneous PermissionCollection * such as Permissions, and the PermissionCollection doesn't yet contain a * PermissionCollection of the specified permission's type, the * PermissionCollection should call - * the <code>newPermissionCollection</code> method on the permission's class + * the {@code newPermissionCollection} method on the permission's class * to see if it requires a special PermissionCollection. If - * <code>newPermissionCollection</code> + * {@code newPermissionCollection} * returns null, the PermissionCollection * is free to store the permission in any type of PermissionCollection it * desires (one using a Hashtable, one using a Vector, etc.). For example, @@ -81,7 +81,7 @@ * <p> Subclass implementations of PermissionCollection should assume * that they may be called simultaneously from multiple threads, * and therefore should be synchronized properly. Furthermore, - * Enumerations returned via the <code>elements</code> method are + * Enumerations returned via the {@code elements} method are * not <em>fail-fast</em>. Modifications to a collection should not be * performed while enumerating over that collection. * @@ -134,7 +134,7 @@ * Marks this PermissionCollection object as "readonly". After * a PermissionCollection object * is marked as readonly, no new Permission objects can be added to it - * using <code>add</code>. + * using {@code add}. */ public void setReadOnly() { readOnly = true; @@ -143,10 +143,10 @@ /** * Returns true if this PermissionCollection object is marked as readonly. * If it is readonly, no new Permission objects can be added to it - * using <code>add</code>. + * using {@code add}. * * <p>By default, the object is <i>not</i> readonly. It can be set to - * readonly by a call to <code>setReadOnly</code>. + * readonly by a call to {@code setReadOnly}. * * @return true if this PermissionCollection object is marked as readonly, * false otherwise. @@ -166,7 +166,7 @@ * // one per line.. * )</pre> * - * <code>super.toString</code> is a call to the <code>toString</code> + * {@code super.toString} is a call to the {@code toString} * method of this * object's superclass, which is Object. The result is * this PermissionCollection's type name followed by this object's
--- a/src/share/classes/java/security/Permissions.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/Permissions.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -44,26 +44,26 @@ * This class represents a heterogeneous collection of Permissions. That is, * it contains different types of Permission objects, organized into * PermissionCollections. For example, if any - * <code>java.io.FilePermission</code> objects are added to an instance of + * {@code java.io.FilePermission} objects are added to an instance of * this class, they are all stored in a single * PermissionCollection. It is the PermissionCollection returned by a call to - * the <code>newPermissionCollection</code> method in the FilePermission class. - * Similarly, any <code>java.lang.RuntimePermission</code> objects are + * the {@code newPermissionCollection} method in the FilePermission class. + * Similarly, any {@code java.lang.RuntimePermission} objects are * stored in the PermissionCollection returned by a call to the - * <code>newPermissionCollection</code> method in the + * {@code newPermissionCollection} method in the * RuntimePermission class. Thus, this class represents a collection of * PermissionCollections. * - * <p>When the <code>add</code> method is called to add a Permission, the + * <p>When the {@code add} method is called to add a Permission, the * Permission is stored in the appropriate PermissionCollection. If no such * collection exists yet, the Permission object's class is determined and the - * <code>newPermissionCollection</code> method is called on that class to create + * {@code newPermissionCollection} method is called on that class to create * the PermissionCollection and add it to the Permissions object. If - * <code>newPermissionCollection</code> returns null, then a default + * {@code newPermissionCollection} returns null, then a default * PermissionCollection that uses a hashtable will be created and used. Each * hashtable entry stores a Permission object as both the key and the value. * - * <p> Enumerations returned via the <code>elements</code> method are + * <p> Enumerations returned via the {@code elements} method are * not <em>fail-fast</em>. Modifications to a collection should not be * performed while enumerating over that collection. * @@ -155,9 +155,9 @@ * "read" access for all files in all subdirectories of the "/tmp" * directory, and another FilePermission that specifies "write" access * for all files in the "/tmp/scratch/foo" directory. - * Then if the <code>implies</code> method + * Then if the {@code implies} method * is called with a permission specifying both "read" and "write" access - * to files in the "/tmp/scratch/foo" directory, <code>true</code> is + * to files in the "/tmp/scratch/foo" directory, {@code true} is * returned. * * <p>Additionally, if this PermissionCollection contains the @@ -214,11 +214,11 @@ * If createEmpty is true, * this method creates a new PermissionCollection object for the specified * type of permission objects if one does not yet exist. - * To do so, it first calls the <code>newPermissionCollection</code> method + * To do so, it first calls the {@code newPermissionCollection} method * on <i>p</i>. Subclasses of class Permission * override that method if they need to store their permissions in a * particular PermissionCollection object in order to provide the - * correct semantics when the <code>PermissionCollection.implies</code> + * correct semantics when the {@code PermissionCollection.implies} * method is called. * If the call returns a PermissionCollection, that collection is stored * in this Permissions object. If the call returns null and createEmpty
--- a/src/share/classes/java/security/Policy.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/Policy.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, 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 @@ -41,11 +41,11 @@ * * <p> There is only one Policy object installed in the runtime at any * given time. A Policy object can be installed by calling the - * <code>setPolicy</code> method. The installed Policy object can be - * obtained by calling the <code>getPolicy</code> method. + * {@code setPolicy} method. The installed Policy object can be + * obtained by calling the {@code getPolicy} method. * * <p> If no Policy object has been installed in the runtime, a call to - * <code>getPolicy</code> installs an instance of the default Policy + * {@code getPolicy} installs an instance of the default Policy * implementation (a default subclass implementation of this abstract class). * The default Policy implementation can be changed by setting the value * of the {@code policy.provider} security property to the fully qualified @@ -53,26 +53,26 @@ * * <p> Application code can directly subclass Policy to provide a custom * implementation. In addition, an instance of a Policy object can be - * constructed by invoking one of the <code>getInstance</code> factory methods + * constructed by invoking one of the {@code getInstance} factory methods * with a standard type. The default policy type is "JavaPolicy". * * <p> Once a Policy instance has been installed (either by default, or by - * calling <code>setPolicy</code>), the Java runtime invokes its - * <code>implies</code> method when it needs to + * calling {@code setPolicy}), the Java runtime invokes its + * {@code implies} method when it needs to * determine whether executing code (encapsulated in a ProtectionDomain) * can perform SecurityManager-protected operations. How a Policy object * retrieves its policy data is up to the Policy implementation itself. * The policy data may be stored, for example, in a flat ASCII file, * in a serialized binary file of the Policy class, or in a database. * - * <p> The <code>refresh</code> method causes the policy object to + * <p> The {@code refresh} method causes the policy object to * refresh/reload its data. This operation is implementation-dependent. * For example, if the policy object stores its data in configuration files, - * calling <code>refresh</code> will cause it to re-read the configuration + * calling {@code refresh} will cause it to re-read the configuration * policy files. If a refresh operation is not supported, this method does * nothing. Note that refreshed policy may not have an effect on classes * in a particular ProtectionDomain. This is dependent on the Policy - * provider's implementation of the <code>implies</code> + * provider's implementation of the {@code implies} * method and its PermissionCollection caching strategy. * * @author Roland Schemers @@ -130,17 +130,17 @@ /** * Returns the installed Policy object. This value should not be cached, - * as it may be changed by a call to <code>setPolicy</code>. + * as it may be changed by a call to {@code setPolicy}. * This method first calls - * <code>SecurityManager.checkPermission</code> with a - * <code>SecurityPermission("getPolicy")</code> permission + * {@code SecurityManager.checkPermission} with a + * {@code SecurityPermission("getPolicy")} permission * to ensure it's ok to get the Policy object. * * @return the installed Policy. * * @throws SecurityException * if a security manager exists and its - * <code>checkPermission</code> method doesn't allow + * {@code checkPermission} method doesn't allow * getting the Policy object. * * @see SecurityManager#checkPermission(Permission) @@ -246,15 +246,15 @@ /** * Sets the system-wide Policy object. This method first calls - * <code>SecurityManager.checkPermission</code> with a - * <code>SecurityPermission("setPolicy")</code> + * {@code SecurityManager.checkPermission} with a + * {@code SecurityPermission("setPolicy")} * permission to ensure it's ok to set the Policy. * * @param p the new system Policy object. * * @throws SecurityException * if a security manager exists and its - * <code>checkPermission</code> method doesn't allow + * {@code checkPermission} method doesn't allow * setting the Policy. * * @see SecurityManager#checkPermission(Permission) @@ -536,7 +536,7 @@ * Return the Provider of this Policy. * * <p> This Policy instance will only have a Provider if it - * was obtained via a call to <code>Policy.getInstance</code>. + * was obtained via a call to {@code Policy.getInstance}. * Otherwise this method returns null. * * @return the Provider of this Policy, or null. @@ -551,7 +551,7 @@ * Return the type of this Policy. * * <p> This Policy instance will only have a type if it - * was obtained via a call to <code>Policy.getInstance</code>. + * was obtained via a call to {@code Policy.getInstance}. * Otherwise this method returns null. * * @return the type of this Policy, or null. @@ -566,7 +566,7 @@ * Return Policy parameters. * * <p> This Policy instance will only have parameters if it - * was obtained via a call to <code>Policy.getInstance</code>. + * was obtained via a call to {@code Policy.getInstance}. * Otherwise this method returns null. * * @return Policy parameters, or null. @@ -583,10 +583,10 @@ * * <p> Applications are discouraged from calling this method * since this operation may not be supported by all policy implementations. - * Applications should solely rely on the <code>implies</code> method + * Applications should solely rely on the {@code implies} method * to perform policy checks. If an application absolutely must call * a getPermissions method, it should call - * <code>getPermissions(ProtectionDomain)</code>. + * {@code getPermissions(ProtectionDomain)}. * * <p> The default implementation of this method returns * Policy.UNSUPPORTED_EMPTY_COLLECTION. This method can be @@ -613,15 +613,15 @@ * * <p> Applications are discouraged from calling this method * since this operation may not be supported by all policy implementations. - * Applications should rely on the <code>implies</code> method + * Applications should rely on the {@code implies} method * to perform policy checks. * * <p> The default implementation of this method first retrieves - * the permissions returned via <code>getPermissions(CodeSource)</code> + * the permissions returned via {@code getPermissions(CodeSource)} * (the CodeSource is taken from the specified ProtectionDomain), * as well as the permissions located inside the specified ProtectionDomain. * All of these permissions are then combined and returned in a new - * PermissionCollection object. If <code>getPermissions(CodeSource)</code> + * PermissionCollection object. If {@code getPermissions(CodeSource)} * returns Policy.UNSUPPORTED_EMPTY_COLLECTION, then this method * returns the permissions contained inside the specified ProtectionDomain * in a new PermissionCollection object. @@ -733,7 +733,7 @@ /** * Refreshes/reloads the policy configuration. The behavior of this method - * depends on the implementation. For example, calling <code>refresh</code> + * depends on the implementation. For example, calling {@code refresh} * on a file-based policy will cause the file to be re-read. * * <p> The default implementation of this method does nothing. @@ -794,8 +794,8 @@ /** * This class represents a read-only empty PermissionCollection object that - * is returned from the <code>getPermissions(CodeSource)</code> and - * <code>getPermissions(ProtectionDomain)</code> + * is returned from the {@code getPermissions(CodeSource)} and + * {@code getPermissions(ProtectionDomain)} * methods in the Policy class when those operations are not * supported by the Policy implementation. */
--- a/src/share/classes/java/security/PolicySpi.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/PolicySpi.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,15 +28,15 @@ /** * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) - * for the <code>Policy</code> class. + * for the {@code Policy} class. * All the abstract methods in this class must be implemented by each * service provider who wishes to supply a Policy implementation. * * <p> Subclass implementations of this abstract class must provide - * a public constructor that takes a <code>Policy.Parameters</code> + * a public constructor that takes a {@code Policy.Parameters} * object as an input parameter. This constructor also must throw * an IllegalArgumentException if it does not understand the - * <code>Policy.Parameters</code> input. + * {@code Policy.Parameters} input. * * * @since 1.6 @@ -59,7 +59,7 @@ /** * Refreshes/reloads the policy configuration. The behavior of this method - * depends on the implementation. For example, calling <code>refresh</code> + * depends on the implementation. For example, calling {@code refresh} * on a file-based policy will cause the file to be re-read. * * <p> The default implementation of this method does nothing.
--- a/src/share/classes/java/security/PrivilegedAction.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/PrivilegedAction.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,10 +28,10 @@ /** * A computation to be performed with privileges enabled. The computation is - * performed by invoking <code>AccessController.doPrivileged</code> on the - * <code>PrivilegedAction</code> object. This interface is used only for + * performed by invoking {@code AccessController.doPrivileged} on the + * {@code PrivilegedAction} object. This interface is used only for * computations that do not throw checked exceptions; computations that - * throw checked exceptions must use <code>PrivilegedExceptionAction</code> + * throw checked exceptions must use {@code PrivilegedExceptionAction} * instead. * * @see AccessController @@ -42,11 +42,11 @@ public interface PrivilegedAction<T> { /** * Performs the computation. This method will be called by - * <code>AccessController.doPrivileged</code> after enabling privileges. + * {@code AccessController.doPrivileged} after enabling privileges. * * @return a class-dependent value that may represent the results of the * computation. Each class that implements - * <code>PrivilegedAction</code> + * {@code PrivilegedAction} * should document what (if anything) this value represents. * @see AccessController#doPrivileged(PrivilegedAction) * @see AccessController#doPrivileged(PrivilegedAction,
--- a/src/share/classes/java/security/PrivilegedActionException.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/PrivilegedActionException.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,13 +27,13 @@ /** * This exception is thrown by - * <code>doPrivileged(PrivilegedExceptionAction)</code> and - * <code>doPrivileged(PrivilegedExceptionAction, - * AccessControlContext context)</code> to indicate + * {@code doPrivileged(PrivilegedExceptionAction)} and + * {@code doPrivileged(PrivilegedExceptionAction, + * AccessControlContext context)} to indicate * that the action being performed threw a checked exception. The exception * thrown by the action can be obtained by calling the - * <code>getException</code> method. In effect, an - * <code>PrivilegedActionException</code> is a "wrapper" + * {@code getException} method. In effect, an + * {@code PrivilegedActionException} is a "wrapper" * for an exception thrown by a privileged action. * * <p>As of release 1.4, this exception has been retrofitted to conform to @@ -69,14 +69,14 @@ /** * Returns the exception thrown by the privileged computation that - * resulted in this <code>PrivilegedActionException</code>. + * resulted in this {@code PrivilegedActionException}. * * <p>This method predates the general-purpose exception chaining facility. * The {@link Throwable#getCause()} method is now the preferred means of * obtaining this information. * * @return the exception thrown by the privileged computation that - * resulted in this <code>PrivilegedActionException</code>. + * resulted in this {@code PrivilegedActionException}. * @see PrivilegedExceptionAction * @see AccessController#doPrivileged(PrivilegedExceptionAction) * @see AccessController#doPrivileged(PrivilegedExceptionAction, @@ -89,7 +89,7 @@ /** * Returns the cause of this exception (the exception thrown by * the privileged computation that resulted in this - * <code>PrivilegedActionException</code>). + * {@code PrivilegedActionException}). * * @return the cause of this exception. * @since 1.4
--- a/src/share/classes/java/security/PrivilegedExceptionAction.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/PrivilegedExceptionAction.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, 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 @@ -29,11 +29,11 @@ /** * A computation to be performed with privileges enabled, that throws one or * more checked exceptions. The computation is performed by invoking - * <code>AccessController.doPrivileged</code> on the - * <code>PrivilegedExceptionAction</code> object. This interface is + * {@code AccessController.doPrivileged} on the + * {@code PrivilegedExceptionAction} object. This interface is * used only for computations that throw checked exceptions; * computations that do not throw - * checked exceptions should use <code>PrivilegedAction</code> instead. + * checked exceptions should use {@code PrivilegedAction} instead. * * @see AccessController * @see AccessController#doPrivileged(PrivilegedExceptionAction) @@ -45,14 +45,14 @@ public interface PrivilegedExceptionAction<T> { /** * Performs the computation. This method will be called by - * <code>AccessController.doPrivileged</code> after enabling privileges. + * {@code AccessController.doPrivileged} after enabling privileges. * * @return a class-dependent value that may represent the results of the * computation. Each class that implements - * <code>PrivilegedExceptionAction</code> should document what + * {@code PrivilegedExceptionAction} should document what * (if anything) this value represents. * @throws Exception an exceptional condition has occurred. Each class - * that implements <code>PrivilegedExceptionAction</code> should + * that implements {@code PrivilegedExceptionAction} should * document the exceptions that its run method can throw. * @see AccessController#doPrivileged(PrivilegedExceptionAction) * @see AccessController#doPrivileged(PrivilegedExceptionAction,AccessControlContext)
--- a/src/share/classes/java/security/ProtectionDomain.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/ProtectionDomain.java Thu Jul 11 12:31:10 2013 -0700 @@ -119,7 +119,7 @@ /** * Creates a new ProtectionDomain with the given CodeSource and * Permissions. If the permissions object is not null, then - * <code>setReadOnly())</code> will be called on the passed in + * {@code setReadOnly())} will be called on the passed in * Permissions object. The only permissions granted to this domain * are the ones specified; the current Policy will not be consulted. * @@ -145,7 +145,7 @@ /** * Creates a new ProtectionDomain qualified by the given CodeSource, * Permissions, ClassLoader and array of Principals. If the - * permissions object is not null, then <code>setReadOnly()</code> + * permissions object is not null, then {@code setReadOnly()} * will be called on the passed in Permissions object. * The permissions granted to this domain are dynamic; they include * both the static permissions passed to this constructor, and any @@ -155,7 +155,7 @@ * This constructor is typically used by * {@link SecureClassLoader ClassLoaders} * and {@link DomainCombiner DomainCombiners} which delegate to - * <code>Policy</code> to actively associate the permissions granted to + * {@code Policy} to actively associate the permissions granted to * this domain. This constructor affords the * Policy provider the opportunity to augment the supplied * PermissionCollection to reflect policy changes.
--- a/src/share/classes/java/security/Provider.java Tue Jul 02 17:38:40 2013 -0700 +++ b/src/share/classes/java/security/Provider.java Thu Jul 11 12:31:10 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, 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 @@ -62,20 +62,21 @@ * security token. A {@link ProviderException} should be used to indicate * such errors. * - * <p>The service type <code>Provider</code> is reserved for use by the + * <p>The service type {@code Provider} is reserved for use by the * security framework. Services of this type cannot be added, removed, * or modified by applications. * The following attributes are automatically placed in each Provider object: * <table cellspacing=4> + * <caption><b>Attributes Automatically Placed in a Provider Object</b></caption> * <tr><th>Name</th><th>Value</th> - * <tr><td><code>Provider.id name</code></td> - * <td><code>String.valueOf(provider.getName())</code></td>