changeset 12644:daf91fa9bd3b

Merge
author ddehaven
date Mon, 17 Aug 2015 10:12:16 -0700
parents e268e771e2eb (current diff) 1c0d6ff652c2 (diff)
children b062834de9bc a978b903ad5d
files
diffstat 145 files changed, 3120 insertions(+), 2358 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Aug 17 16:56:22 2015 +0300
+++ b/.hgtags	Mon Aug 17 10:12:16 2015 -0700
@@ -319,3 +319,4 @@
 6dd82d2e4a104f4d204b2890f33ef11ec3e3f8d0 jdk9-b74
 4dd09cb5f7c2a2a23a9958ea7a602dd74d5709b2 jdk9-b75
 4526c0da8fb362eebd7e88f4d44e86858cf9b80b jdk9-b76
+7fd081100f48828431e7c1bff65c906ee759069b jdk9-b77
--- a/make/data/tzdata/VERSION	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/data/tzdata/VERSION	Mon Aug 17 10:12:16 2015 -0700
@@ -21,4 +21,4 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
-tzdata2015e
+tzdata2015f
--- a/make/data/tzdata/africa	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/data/tzdata/africa	Mon Aug 17 10:12:16 2015 -0700
@@ -561,7 +561,7 @@
 
 # From Alex Krivenyshev (2008-07-11):
 # Seems that English language article "The revival of daylight saving
-# time: Energy conservation?"-# No. 16578 (07/11/2008) was originally
+# time: Energy conservation?"- No. 16578 (07/11/2008) was originally
 # published on Monday, June 30, 2008...
 #
 # I guess that article in French "Le gouvernement avance l'introduction
@@ -693,7 +693,7 @@
 # Here is a link to official document from Royaume du Maroc Premier Ministre,
 # Ministère de la Modernisation des Secteurs Publics
 #
-# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 june 1967)
+# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 June 1967)
 # concerning the amendment of the legal time, the Ministry of Modernization of
 # Public Sectors announced that the official time in the Kingdom will be
 # advanced 60 minutes from Sunday 31 May 2009 at midnight.
--- a/make/data/tzdata/asia	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/data/tzdata/asia	Mon Aug 17 10:12:16 2015 -0700
@@ -29,7 +29,7 @@
 # tz@iana.org for general use in the future).  For more, please see
 # the file CONTRIBUTING in the tz distribution.
 
-# From Paul Eggert (2014-10-31):
+# From Paul Eggert (2015-08-08):
 #
 # Unless otherwise specified, the source for data through 1990 is:
 # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
@@ -66,7 +66,7 @@
 #	2:00 EET  EEST	Eastern European Time
 #	2:00 IST  IDT	Israel
 #	3:00 AST  ADT	Arabia*
-#	3:30 IRST IRDT	Iran
+#	3:30 IRST IRDT	Iran*
 #	4:00 GST	Gulf*
 #	5:30 IST	India
 #	7:00 ICT	Indochina, most times and locations*
@@ -75,10 +75,11 @@
 #	8:00 CST	China
 #	8:00 IDT	Indochina, 1943-45, 1947-55, 1960-75 (some locations)*
 #	8:00 JWST	Western Standard Time (Japan, 1896/1937)*
+#	8:30 KST  KDT	Korea when at +0830*
 #	9:00 JCST	Central Standard Time (Japan, 1896/1937)
 #	9:00 WIT	east Indonesia (Waktu Indonesia Timur)
 #	9:00 JST  JDT	Japan
-#	9:00 KST  KDT	Korea
+#	9:00 KST  KDT	Korea when at +09
 #	9:30 ACST	Australian Central Standard Time
 #
 # See the 'europe' file for Russia and Turkey in Asia.
@@ -1050,7 +1051,7 @@
 #
 # From Roozbeh Pournader (2007-11-05):
 # This is quoted from Official Gazette of the Islamic Republic of
-# Iran, Volume 63, Number 18242, dated Tuesday 1386/6/24
+# Iran, Volume 63, No. 18242, dated Tuesday 1386/6/24
 # [2007-10-16]. I am doing the best translation I can:...
 # The official time of the country will be moved forward for one hour
 # on the 24 hours of the first day of the month of Farvardin and will
@@ -1580,7 +1581,7 @@
 # - Qyzylorda switched from +5:00 to +6:00 on 1992-01-19 02:00.
 # - Oral switched from +5:00 to +4:00 in spring 1989.
 
-# From Kazakhstan Embassy's News Bulletin #11
+# From Kazakhstan Embassy's News Bulletin No. 11
 # <http://www.kazsociety.org.uk/news/2005/03/30.htm> (2005-03-21):
 # The Government of Kazakhstan passed a resolution March 15 abolishing
 # daylight saving time citing lack of economic benefits and health
@@ -1734,6 +1735,17 @@
 #
 # For Pyongyang we have no information; guess no changes since World War II.
 
+# From Steffen Thorsen (2015-08-07):
+# According to many news sources, North Korea is going to change to
+# the 8:30 time zone on August 15, one example:
+# http://www.bbc.com/news/world-asia-33815049
+#
+# From Paul Eggert (2015-08-07):
+# No transition time is specified; assume 00:00.
+# There is no common English-language abbreviation for this time zone.
+# Use %z rather than invent one.  We can't assume %z works everywhere yet,
+# so for now substitute its output manually.
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Seoul	8:27:52	-	LMT	1908 Apr  1
 			8:30	-	KST	1912 Jan  1
@@ -1746,7 +1758,8 @@
 			8:30	-	KST	1912 Jan  1
 			9:00	-	JCST	1937 Oct  1
 			9:00	-	JST	1945 Aug 24
-			9:00	-	KST
+			9:00	-	KST	2015 Aug 15
+			8:30	-	KST
 
 ###############################################################################
 
--- a/make/data/tzdata/europe	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/data/tzdata/europe	Mon Aug 17 10:12:16 2015 -0700
@@ -216,11 +216,14 @@
 #	republished in Finest Hour (Spring 2002) 1(114):26
 #	http://www.winstonchurchill.org/images/finesthour/Vol.01%20No.114.pdf
 
-# From Paul Eggert (1996-09-03):
+# From Paul Eggert (2015-08-08):
 # The OED Supplement says that the English originally said "Daylight Saving"
 # when they were debating the adoption of DST in 1908; but by 1916 this
 # term appears only in quotes taken from DST's opponents, whereas the
 # proponents (who eventually won the argument) are quoted as using "Summer".
+# The term "Summer Time" was introduced by Herbert Samuel, Home Secretary; see:
+# Viscount Samuel. Leisure in a Democracy. Cambridge University Press
+# ISBN 978-1-107-49471-8 (1949, reissued 2015), p 8.
 
 # From Arthur David Olson (1989-01-19):
 # A source at the British Information Office in New York avers that it's
@@ -366,7 +369,7 @@
 
 # From an anonymous contributor (1996-06-02):
 # The law governing time in Ireland is under Statutory Instrument SI 395/94,
-# which gives force to European Union 7th Council Directive # 94/21/EC.
+# which gives force to European Union 7th Council Directive No. 94/21/EC.
 # Under this directive, the Minister for Justice in Ireland makes appropriate
 # regulations. I spoke this morning with the Secretary of the Department of
 # Justice (tel +353 1 678 9711) who confirmed to me that the correct name is
@@ -615,11 +618,11 @@
 Rule	Russia	1921	only	-	Mar	20	23:00	2:00	MSM  # Midsummer
 Rule	Russia	1921	only	-	Sep	 1	 0:00	1:00	MSD
 Rule	Russia	1921	only	-	Oct	 1	 0:00	0	-
-# Act No.925 of the Council of Ministers of the USSR (1980-10-24):
+# Act No. 925 of the Council of Ministers of the USSR (1980-10-24):
 Rule	Russia	1981	1984	-	Apr	 1	 0:00	1:00	S
 Rule	Russia	1981	1983	-	Oct	 1	 0:00	0	-
-# Act No.967 of the Council of Ministers of the USSR (1984-09-13), repeated in
-# Act No.227 of the Council of Ministers of the USSR (1989-03-14):
+# Act No. 967 of the Council of Ministers of the USSR (1984-09-13), repeated in
+# Act No. 227 of the Council of Ministers of the USSR (1989-03-14):
 Rule	Russia	1984	1991	-	Sep	lastSun	 2:00s	0	-
 Rule	Russia	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
 #
@@ -851,7 +854,7 @@
 # Bulgaria
 #
 # From Plamen Simenov via Steffen Thorsen (1999-09-09):
-# A document of Government of Bulgaria (No.94/1997) says:
+# A document of Government of Bulgaria (No. 94/1997) says:
 # EET -> EETDST is in 03:00 Local time in last Sunday of March ...
 # EETDST -> EET is in 04:00 Local time in last Sunday of October
 #
@@ -868,7 +871,7 @@
 			1:00	C-Eur	CE%sT	1945
 			1:00	-	CET	1945 Apr  2  3:00
 			2:00	-	EET	1979 Mar 31 23:00
-			2:00	Bulg	EE%sT	1982 Sep 26  2:00
+			2:00	Bulg	EE%sT	1982 Sep 26  3:00
 			2:00	C-Eur	EE%sT	1991
 			2:00	E-Eur	EE%sT	1997
 			2:00	EU	EE%sT
@@ -1085,8 +1088,8 @@
 # after that.
 
 # From Mart Oruaas (2000-01-29):
-# Regulation no. 301 (1999-10-12) obsoletes previous regulation
-# no. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all
+# Regulation No. 301 (1999-10-12) obsoletes previous regulation
+# No. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all
 # the year round.  The regulation is effective 1999-11-01.
 
 # From Toomas Soome (2002-02-21):
@@ -1107,7 +1110,7 @@
 			3:00	Russia	MSK/MSD	1989 Mar 26  2:00s
 			2:00	1:00	EEST	1989 Sep 24  2:00s
 			2:00	C-Eur	EE%sT	1998 Sep 22
-			2:00	EU	EE%sT	1999 Nov  1
+			2:00	EU	EE%sT	1999 Oct 31  4:00
 			2:00	-	EET	2002 Feb 21
 			2:00	EU	EE%sT
 
@@ -1550,21 +1553,21 @@
 # correct data in juridical acts and I found some juridical documents about
 # changes in the counting of time in Latvia from 1981....
 #
-# Act No.35 of the Council of Ministers of Latvian SSR of 1981-01-22 ...
-# according to the Act No.925 of the Council of Ministers of USSR of 1980-10-24
+# Act No. 35 of the Council of Ministers of Latvian SSR of 1981-01-22 ...
+# according to the Act No. 925 of the Council of Ministers of USSR of 1980-10-24
 # ...: all year round the time of 2nd time zone + 1 hour, in addition turning
 # the hands of the clock 1 hour forward on 1 April at 00:00 (GMT 31 March 21:00)
 # and 1 hour backward on the 1 October at 00:00 (GMT 30 September 20:00).
 #
-# Act No.592 of the Council of Ministers of Latvian SSR of 1984-09-24 ...
-# according to the Act No.967 of the Council of Ministers of USSR of 1984-09-13
+# Act No. 592 of the Council of Ministers of Latvian SSR of 1984-09-24 ...
+# according to the Act No. 967 of the Council of Ministers of USSR of 1984-09-13
 # ...: all year round the time of 2nd time zone + 1 hour, in addition turning
 # the hands of the clock 1 hour forward on the last Sunday of March at 02:00
 # (GMT 23:00 on the previous day) and 1 hour backward on the last Sunday of
 # September at 03:00 (GMT 23:00 on the previous day).
 #
-# Act No.81 of the Council of Ministers of Latvian SSR of 1989-03-22 ...
-# according to the Act No.227 of the Council of Ministers of USSR of 1989-03-14
+# Act No. 81 of the Council of Ministers of Latvian SSR of 1989-03-22 ...
+# according to the Act No. 227 of the Council of Ministers of USSR of 1989-03-14
 # ...: since the last Sunday of March 1989 in Lithuanian SSR, Latvian SSR,
 # Estonian SSR and Kaliningrad region of Russian Federation all year round the
 # time of 2nd time zone (Moscow time minus one hour). On the territory of Latvia
@@ -1581,7 +1584,7 @@
 # From Andrei Ivanov (2000-03-06):
 # This year Latvia will not switch to Daylight Savings Time (as specified in
 # The Regulations of the Cabinet of Ministers of the Rep. of Latvia of
-# 29-Feb-2000 (#79) <http://www.lv-laiks.lv/wwwraksti/2000/071072/vd4.htm>,
+# 29-Feb-2000 (No. 79) <http://www.lv-laiks.lv/wwwraksti/2000/071072/vd4.htm>,
 # in Latvian for subscribers only).
 
 # From RFE/RL Newsline
@@ -1786,6 +1789,18 @@
 # News from Moldova (in russian):
 # http://ru.publika.md/link_317061.html
 
+# From Roman Tudos (2015-07-02):
+# http://lex.justice.md/index.php?action=view&view=doc&lang=1&id=355077
+# From Paul Eggert (2015-07-01):
+# The abovementioned official link to IGO1445-868/2014 states that
+# 2014-10-26's fallback transition occurred at 03:00 local time.  Also,
+# http://www.trm.md/en/social/la-30-martie-vom-trece-la-ora-de-vara
+# says the 2014-03-30 spring-forward transition was at 02:00 local time.
+# Guess that since 1997 Moldova has switched one hour before the EU.
+
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Moldova	1997	max	-	Mar	lastSun	 2:00	1:00	S
+Rule	Moldova	1997	max	-	Oct	lastSun	 3:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Chisinau	1:55:20 -	LMT	1880
@@ -1800,7 +1815,7 @@
 			2:00	Russia	EE%sT	1992
 			2:00	E-Eur	EE%sT	1997
 # See Romania commentary for the guessed 1997 transition to EU rules.
-			2:00	EU	EE%sT
+			2:00	Moldova	EE%sT
 
 # Monaco
 # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
@@ -2146,7 +2161,7 @@
 # Russia
 
 # From Alexander Krivenyshev (2011-09-15):
-# Based on last Russian Government Decree # 725 on August 31, 2011
+# Based on last Russian Government Decree No. 725 on August 31, 2011
 # (Government document
 # http://www.government.ru/gov/results/16355/print/
 # in Russian)
@@ -2156,7 +2171,7 @@
 # http://www.worldtimezone.com/dst_news/dst_news_russia36.htm
 
 # From Sanjeev Gupta (2011-09-27):
-# Scans of [Decree #23 of January 8, 1992] are available at:
+# Scans of [Decree No. 23 of January 8, 1992] are available at:
 # http://government.consultant.ru/page.aspx?1223966
 # They are in Cyrillic letters (presumably Russian).
 
@@ -2167,19 +2182,19 @@
 # One source is
 # http://government.ru/gov/results/16355/
 # which, according to translate.google.com, begins "Decree of August 31,
-# 2011 No 725" and contains no other dates or "effective date" information.
+# 2011 No. 725" and contains no other dates or "effective date" information.
 #
 # Another source is
 # http://www.rg.ru/2011/09/06/chas-zona-dok.html
 # which, according to translate.google.com, begins "Resolution of the
 # Government of the Russian Federation on August 31, 2011 N 725" and also
 # contains "Date first official publication: September 6, 2011 Posted on:
-# in the 'RG' - Federal Issue number 5573 September 6, 2011" but which
+# in the 'RG' - Federal Issue No. 5573 September 6, 2011" but which
 # does not contain any "effective date" information.
 #
 # Another source is
 # http://en.wikipedia.org/wiki/Oymyakonsky_District#cite_note-RuTime-7
-# which, in note 8, contains "Resolution #725 of August 31, 2011...
+# which, in note 8, contains "Resolution No. 725 of August 31, 2011...
 # Effective as of after 7 days following the day of the official publication"
 # but which does not contain any reference to September 6, 2011.
 #
@@ -2387,7 +2402,7 @@
 # changed in May.
 			 2:00	E-Eur	EE%sT	1994 May
 # From IATA SSIM (1994/1997), which also says that Kerch is still like Kiev.
-			 3:00	E-Eur	MSK/MSD	1996 Mar 31  3:00s
+			 3:00	E-Eur	MSK/MSD	1996 Mar 31  0:00s
 			 3:00	1:00	MSD	1996 Oct 27  3:00s
 # IATA SSIM (1997-09) says Crimea switched to EET/EEST.
 # Assume it happened in March by not changing the clocks.
@@ -2522,7 +2537,7 @@
 # from current Russia Zone 6 - Krasnoyarsk Time Zone (KRA) UTC +0700
 # to Russia Zone 5 - Novosibirsk Time Zone (NOV) UTC +0600
 #
-# This is according to Government of Russia decree # 740, on September
+# This is according to Government of Russia decree No. 740, on September
 # 14, 2009 "Application in the territory of the Kemerovo region the Fifth
 # time zone." ("Russia Zone 5" or old "USSR Zone 5" is GMT +0600)
 #
@@ -2945,7 +2960,7 @@
 Zone	Atlantic/Canary	-1:01:36 -	LMT	1922 Mar # Las Palmas de Gran C.
 			-1:00	-	CANT	1946 Sep 30  1:00 # Canaries T
 			 0:00	-	WET	1980 Apr  6  0:00s
-			 0:00	1:00	WEST	1980 Sep 28  0:00s
+			 0:00	1:00	WEST	1980 Sep 28  1:00u
 			 0:00	EU	WE%sT
 # IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u.
 # Ignore this for now, as the Canaries are part of the EU.
@@ -3235,7 +3250,7 @@
 # From Igor Karpov, who works for the Ukrainian Ministry of Justice,
 # via Garrett Wollman (2003-01-27):
 # BTW, I've found the official document on this matter. It's government
-# regulations number 509, May 13, 1996. In my poor translation it says:
+# regulations No. 509, May 13, 1996. In my poor translation it says:
 # "Time in Ukraine is set to second timezone (Kiev time). Each last Sunday
 # of March at 3am the time is changing to 4am and each last Sunday of
 # October the time at 4am is changing to 3am"
@@ -3244,7 +3259,7 @@
 # On September 20, 2011 the deputies of the Verkhovna Rada agreed to
 # abolish the transfer clock to winter time.
 #
-# Bill number 8330 of MP from the Party of Regions Oleg Nadoshi got
+# Bill No. 8330 of MP from the Party of Regions Oleg Nadoshi got
 # approval from 266 deputies.
 #
 # Ukraine abolishes transfer back to the winter time (in Russian)
--- a/make/data/tzdata/leapseconds	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/data/tzdata/leapseconds	Mon Aug 17 10:12:16 2015 -0700
@@ -79,5 +79,5 @@
 Leap	2012	Jun	30	23:59:60	+	S
 Leap	2015	Jun	30	23:59:60	+	S
 
-#	Updated through IERS Bulletin C49
-#	File expires on:  28 December 2015
+#	Updated through IERS Bulletin C50
+#	File expires on:  28 June 2016
--- a/make/data/tzdata/northamerica	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/data/tzdata/northamerica	Mon Aug 17 10:12:16 2015 -0700
@@ -1258,10 +1258,19 @@
 
 # west Labrador, Nova Scotia, Prince Edward I
 
-# From Paul Eggert (2006-03-22):
+# From Brian Inglis (2015-07-20):
+# From the historical weather station records available at:
+# https://weatherspark.com/history/28351/1971/Sydney-Nova-Scotia-Canada
+# Sydney shares the same time history as Glace Bay, so was
+# likely to be the same across the island....
+# Sydney, as the capital and most populous location, or Cape Breton, would
+# have been better names for the zone had we known this in 1996.
+
+# From Paul Eggert (2015-07-20):
 # Shanks & Pottenger write that since 1970 most of this region has been like
 # Halifax.  Many locales did not observe peacetime DST until 1972;
-# Glace Bay, NS is the largest that we know of.
+# the Cape Breton area, represented by Glace Bay, is the largest we know of
+# (Glace Bay was perhaps not the best name choice but no point changing now).
 # Shanks & Pottenger also write that Liverpool, NS was the only town
 # in Canada to observe DST in 1971 but not 1970; for now we'll assume
 # this is a typo.
@@ -1819,13 +1828,13 @@
 # Exact date in October unknown; Sunday October 1 is a reasonable guess.
 # 3. June 1918: switch to Pacific Daylight Time (GMT-7)
 # Exact date in June unknown; Sunday June 2 is a reasonable guess.
-# note#1:
+# note 1:
 # On Oct 27/1918 when daylight saving ended in the rest of Canada,
 # Creston did not change its clocks.
-# note#2:
+# note 2:
 # During WWII when the Federal Government legislated a mandatory clock change,
 # Creston did not oblige.
-# note#3:
+# note 3:
 # There is no guarantee that Creston will remain on Mountain Standard Time
 # (UTC-7) forever.
 # The subject was debated at least once this year by the town Council.
--- a/make/data/tzdata/southamerica	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/data/tzdata/southamerica	Mon Aug 17 10:12:16 2015 -0700
@@ -154,7 +154,7 @@
 # Timezone Law (which never was effectively applied) will (would?) be
 # in effect.... The article is at
 # http://ar.clarin.com/diario/2001-06-06/e-01701.htm
-# ... The Law itself is "Ley No 25155", sanctioned on 1999-08-25, enacted
+# ... The Law itself is "Ley No. 25155", sanctioned on 1999-08-25, enacted
 # 1999-09-17, and published 1999-09-21.  The official publication is at:
 # http://www.boletin.jus.gov.ar/BON/Primera/1999/09-Septiembre/21/PDF/BO21-09-99LEG.PDF
 # Regretfully, you have to subscribe (and pay) for the on-line version....
@@ -198,15 +198,11 @@
 # http://www.worldtimezone.com/dst_news/dst_news_argentina03.html
 # http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish)
 
-# From Rodrigo Severo (2008-10-06):
-# Here is some info available at a Gentoo bug related to TZ on Argentina's DST:
-# ...
-# ------- Comment #1 from [jmdocile]  2008-10-06 16:28 0000 -------
-# Hi, there is a problem with timezone-data-2008e and maybe with
-# timezone-data-2008f
-# Argentinian law [Number] 25.155 is no longer valid.
+# From Juan Manuel Docile in https://bugs.gentoo.org/240339 (2008-10-07)
+# via Rodrigo Severo:
+# Argentinian law No. 25.155 is no longer valid.
 # http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm
-# The new one is law [Number] 26.350
+# The new one is law No. 26.350
 # http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm
 # So there is no summer time in Argentina for now.
 
@@ -794,7 +790,7 @@
 #	 [ and in a second message (same day): ]
 # I found the decree.
 #
-# DECRETO No- 7.584, DE 13 DE OUTUBRO DE 2011
+# DECRETO No. 7.584, DE 13 DE OUTUBRO DE 2011
 # Link :
 # http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6
 
@@ -1148,7 +1144,7 @@
 # Conflicts between [1] and [2] were resolved as follows:
 #
 #  - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites
-#    Boletín Nº 1, Aviso Nº 1 (1910).  Go with [2].
+#    Boletín No. 1, Aviso No. 1 (1910).  Go with [2].
 #
 #  - [1] says SMT was -4:42:45, [2] says Chile's official time from
 #    1916 to 1919 was -4:42:46.3, the meridian of Chile's National
@@ -1156,7 +1152,7 @@
 #    Quinta Normal in Santiago.  Go with [2], rounding it to -4:42:46.
 #
 #  - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites
-#    Boletín Nº 22, Aviso Nº 129/1918 (1918-08-23).  Go with [2].
+#    Boletín No. 22, Aviso No. 129/1918 (1918-08-23).  Go with [2].
 #
 #  - [1] does not give times for transitions; assume they occur
 #    at midnight mainland time, the current common practice.  However,
@@ -1556,7 +1552,7 @@
 # (1999-09) reports no date; go with above sources and Gerd Knops (2001-02-27).
 Rule	Para	1998	2001	-	Mar	Sun>=1	0:00	0	-
 # From Rives McDow (2002-02-28):
-# A decree was issued in Paraguay (no. 16350) on 2002-02-26 that changed the
+# A decree was issued in Paraguay (No. 16350) on 2002-02-26 that changed the
 # dst method to be from the first Sunday in September to the first Sunday in
 # April.
 Rule	Para	2002	2004	-	Apr	Sun>=1	0:00	0	-
@@ -1736,8 +1732,19 @@
 Rule	Uruguay	2006	only	-	Mar	12	 2:00	0	-
 # From Jesper Nørgaard Welen (2006-09-06):
 # http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006_00001.PDF
-Rule	Uruguay	2006	max	-	Oct	Sun>=1	 2:00	1:00	S
-Rule	Uruguay	2007	max	-	Mar	Sun>=8	 2:00	0	-
+#
+# From Steffen Thorsen (2015-06-30):
+# ... it looks like they will not be using DST the coming summer:
+# http://www.elobservador.com.uy/gobierno-resolvio-que-no-habra-cambio-horario-verano-n656787
+# http://www.republica.com.uy/este-ano-no-se-modificara-el-huso-horario-en-uruguay/523760/
+# From Paul Eggert (2015-06-30):
+# Apparently restaurateurs complained that DST caused people to go to the beach
+# instead of out to dinner.
+# From Pablo Camargo (2015-07-13):
+# http://archivo.presidencia.gub.uy/sci/decretos/2015/06/cons_min_201.pdf
+# [dated 2015-06-29; repeals Decree 311/006 dated 2006-09-04]
+Rule	Uruguay	2006	2014	-	Oct	Sun>=1	 2:00	1:00	S
+Rule	Uruguay	2007	2015	-	Mar	Sun>=8	 2:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Montevideo	-3:44:44 -	LMT	1898 Jun 28
 			-3:44:44 -	MMT	1920 May  1 # Montevideo MT
@@ -1746,6 +1753,10 @@
 
 # Venezuela
 #
+# From Paul Eggert (2015-07-28):
+# For the 1965 transition see Gaceta Oficial No. 27.619 (1964-12-15), p 205.533
+# http://www.pgr.gob.ve/dmdocuments/1964/27619.pdf
+#
 # From John Stainforth (2007-11-28):
 # ... the change for Venezuela originally expected for 2007-12-31 has
 # been brought forward to 2007-12-09.  The official announcement was
@@ -1757,6 +1768,6 @@
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Caracas	-4:27:44 -	LMT	1890
 			-4:27:40 -	CMT	1912 Feb 12 # Caracas Mean Time?
-			-4:30	-	VET	1965        # Venezuela Time
+			-4:30	-	VET	1965 Jan  1  0:00 # Venezuela T.
 			-4:00	-	VET	2007 Dec  9  3:00
 			-4:30	-	VET
--- a/make/data/tzdata/zone.tab	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/data/tzdata/zone.tab	Mon Aug 17 10:12:16 2015 -0700
@@ -129,8 +129,8 @@
 BY	+5354+02734	Europe/Minsk
 BZ	+1730-08812	America/Belize
 CA	+4734-05243	America/St_Johns	Newfoundland Time, including SE Labrador
-CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (most places), PEI
-CA	+4612-05957	America/Glace_Bay	Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971
+CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (peninsula), PEI
+CA	+4612-05957	America/Glace_Bay	Atlantic Time - Nova Scotia (Cape Breton)
 CA	+4606-06447	America/Moncton	Atlantic Time - New Brunswick
 CA	+5320-06025	America/Goose_Bay	Atlantic Time - Labrador - most locations
 CA	+5125-05707	America/Blanc-Sablon	Atlantic Standard Time - Quebec - Lower North Shore
--- a/make/launcher/Launcher-jdk.scripting.nashorn.gmk	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/launcher/Launcher-jdk.scripting.nashorn.gmk	Mon Aug 17 10:12:16 2015 -0700
@@ -26,5 +26,5 @@
 include LauncherCommon.gmk
 
 $(eval $(call SetupLauncher,jjs, \
-    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "jdk.nashorn.tools.Shell"$(COMMA) }'))
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "jdk.nashorn.tools.jjs.Main"$(COMMA) }'))
 
--- a/make/lib/NioLibraries.gmk	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/lib/NioLibraries.gmk	Mon Aug 17 10:12:16 2015 -0700
@@ -24,6 +24,7 @@
 #
 
 BUILD_LIBNIO_SRC := \
+    $(JDK_TOPDIR)/src/java.base/share/native/libnio \
     $(JDK_TOPDIR)/src/java.base/share/native/libnio/ch \
     $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio \
     $(sort $(wildcard \
--- a/make/mapfiles/libnio/mapfile-linux	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/mapfiles/libnio/mapfile-linux	Mon Aug 17 10:12:16 2015 -0700
@@ -25,6 +25,7 @@
 
 SUNWprivate_1.1 {
 	global:
+                JNI_OnLoad;
                 Java_java_nio_MappedByteBuffer_force0;
                 Java_java_nio_MappedByteBuffer_isLoaded0;
                 Java_java_nio_MappedByteBuffer_load0;
--- a/make/mapfiles/libnio/mapfile-macosx	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/mapfiles/libnio/mapfile-macosx	Mon Aug 17 10:12:16 2015 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2001, 2015, 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
@@ -25,6 +25,7 @@
 
 SUNWprivate_1.1 {
 	global:
+                JNI_OnLoad;
                 Java_java_nio_MappedByteBuffer_force0;
                 Java_java_nio_MappedByteBuffer_isLoaded0;
                 Java_java_nio_MappedByteBuffer_load0;
--- a/make/mapfiles/libnio/mapfile-solaris	Mon Aug 17 16:56:22 2015 +0300
+++ b/make/mapfiles/libnio/mapfile-solaris	Mon Aug 17 10:12:16 2015 -0700
@@ -25,6 +25,7 @@
 
 SUNWprivate_1.1 {
 	global:
+                JNI_OnLoad;
                 Java_java_nio_MappedByteBuffer_force0;
                 Java_java_nio_MappedByteBuffer_isLoaded0;
                 Java_java_nio_MappedByteBuffer_load0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/aix/native/libjava/ProcessHandleImpl_aix.c	Mon Aug 17 10:12:16 2015 -0700
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "jni.h"
+
+#include "ProcessHandleImpl_unix.h"
+
+#include <sys/procfs.h>
+
+/*
+ * Implementation of native ProcessHandleImpl functions for AIX.
+ * See ProcessHandleImpl_unix.c for more details.
+ */
+
+void os_initNative(JNIEnv *env, jclass clazz) {}
+
+jint os_getChildren(JNIEnv *env, jlong jpid, jlongArray jarray,
+                    jlongArray jparentArray, jlongArray jstimesArray) {
+    return unix_getChildren(env, jpid, jarray, jparentArray, jstimesArray);
+}
+
+pid_t os_getParentPidAndTimings(JNIEnv *env, pid_t pid, jlong *total, jlong *start) {
+    return unix_getParentPidAndTimings(env, pid, total, start);
+}
+
+void os_getCmdlineAndUserInfo(JNIEnv *env, jobject jinfo, pid_t pid) {
+    unix_getCmdlineAndUserInfo(env, jinfo, pid);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/linux/native/libjava/ProcessHandleImpl_linux.c	Mon Aug 17 10:12:16 2015 -0700
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "jni.h"
+#include "jni_util.h"
+#include "java_lang_ProcessHandleImpl.h"
+#include "java_lang_ProcessHandleImpl_Info.h"
+
+#include "ProcessHandleImpl_unix.h"
+
+
+#include <fcntl.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <string.h>
+#include <ctype.h>
+
+/*
+ * Implementation of native ProcessHandleImpl functions for Linux.
+ * See ProcessHandleImpl_unix.c for more details.
+ */
+
+/* Signatures for internal OS specific functions. */
+static long long getBoottime(JNIEnv *env);
+
+/* A static offset in milliseconds since boot. */
+static long long bootTime_ms;
+static long clock_ticks_per_second;
+static int pageSize;
+
+void os_initNative(JNIEnv *env, jclass clazz) {
+    bootTime_ms = getBoottime(env);
+    clock_ticks_per_second = sysconf(_SC_CLK_TCK);
+    pageSize = sysconf(_SC_PAGESIZE);
+}
+
+jint os_getChildren(JNIEnv *env, jlong jpid, jlongArray jarray,
+                    jlongArray jparentArray, jlongArray jstimesArray) {
+    return unix_getChildren(env, jpid, jarray, jparentArray, jstimesArray);
+}
+
+/**
+ * Read /proc/<pid>/stat and return the ppid, total cputime and start time.
+ * -1 is fail;  >=  0 is parent pid
+ * 'total' will contain the running time of 'pid' in nanoseconds.
+ * 'start' will contain the start time of 'pid' in milliseconds since epoch.
+ */
+pid_t os_getParentPidAndTimings(JNIEnv *env, pid_t pid,
+                                jlong *totalTime, jlong* startTime) {
+    FILE* fp;
+    char buffer[2048];
+    int statlen;
+    char fn[32];
+    char* s;
+    int parentPid;
+    long unsigned int utime = 0;      // clock tics
+    long unsigned int stime = 0;      // clock tics
+    long long unsigned int start = 0; // microseconds
+
+    /*
+     * Try to stat and then open /proc/%d/stat
+     */
+    snprintf(fn, sizeof fn, "/proc/%d/stat", pid);
+
+    fp = fopen(fn, "r");
+    if (fp == NULL) {
+        return -1;              // fail, no such /proc/pid/stat
+    }
+
+    /*
+     * The format is: pid (command) state ppid ...
+     * As the command could be anything we must find the right most
+     * ")" and then skip the white spaces that follow it.
+     */
+    statlen = fread(buffer, 1, (sizeof buffer - 1), fp);
+    fclose(fp);
+    if (statlen < 0) {
+        return -1;               // parent pid is not available
+    }
+
+    buffer[statlen] = '\0';
+    s = strchr(buffer, '(');
+    if (s == NULL) {
+        return -1;               // parent pid is not available
+    }
+    // Found start of command, skip to end
+    s++;
+    s = strrchr(s, ')');
+    if (s == NULL) {
+        return -1;               // parent pid is not available
+    }
+    s++;
+
+    // Scan the needed fields from status, retaining only ppid(4),
+    // utime (14), stime(15), starttime(22)
+    if (4 != sscanf(s, " %*c %d %*d %*d %*d %*d %*d %*u %*u %*u %*u %lu %lu %*d %*d %*d %*d %*d %*d %llu",
+            &parentPid, &utime, &stime, &start)) {
+        return 0;              // not all values parsed; return error
+    }
+
+    *totalTime = (utime + stime) * (jlong)(1000000000 / clock_ticks_per_second);
+
+    *startTime = bootTime_ms + ((start * 1000) / clock_ticks_per_second);
+
+    return parentPid;
+}
+
+void os_getCmdlineAndUserInfo(JNIEnv *env, jobject jinfo, pid_t pid) {
+    int fd;
+    int cmdlen = 0;
+    char *cmdline = NULL, *cmdEnd = NULL; // used for command line args and exe
+    char *args = NULL;
+    jstring cmdexe = NULL;
+    char fn[32];
+    struct stat stat_buf;
+
+    /*
+     * Try to open /proc/<pid>/cmdline
+     */
+    snprintf(fn, sizeof fn, "/proc/%d/cmdline", pid);
+    if ((fd = open(fn, O_RDONLY)) < 0) {
+        return;
+    }
+
+    if (fstat(fd, &stat_buf) == 0) {
+        unix_getUserInfo(env, jinfo, stat_buf.st_uid);
+    }
+
+    do {                // Block to break out of on errors
+        int i, truncated = 0;
+        int count;
+        char *s;
+
+        /*
+         * The path name read by readlink() is limited to PATH_MAX characters.
+         * The content of /proc/<pid>/cmdline is limited to PAGE_SIZE characters.
+         */
+        cmdline = (char*)malloc((PATH_MAX > pageSize ? PATH_MAX : pageSize) + 1);
+        if (cmdline == NULL) {
+            break;
+        }
+
+        /*
+         * On Linux, the full path to the executable command is the link in
+         * /proc/<pid>/exe. But it is only readable for processes we own.
+         */
+        snprintf(fn, sizeof fn, "/proc/%d/exe", pid);
+        if ((cmdlen = readlink(fn, cmdline, PATH_MAX)) > 0) {
+            // null terminate and create String to store for command
+            cmdline[cmdlen] = '\0';
+            cmdexe = JNU_NewStringPlatform(env, cmdline);
+            (*env)->ExceptionClear(env);        // unconditionally clear any exception
+        }
+
+        /*
+         * The command-line arguments appear as a set of strings separated by
+         * null bytes ('\0'), with a further null byte after the last
+         * string. The last string is only null terminated if the whole command
+         * line is not exceeding (PAGE_SIZE - 1) characters.
+         */
+        cmdlen = 0;
+        s = cmdline;
+        while ((count = read(fd, s, pageSize - cmdlen)) > 0) {
+            cmdlen += count;
+            s += count;
+        }
+        if (count < 0) {
+            break;
+        }
+        // We have to null-terminate because the process may have changed argv[]
+        // or because the content in /proc/<pid>/cmdline is truncated.
+        cmdline[cmdlen] = '\0';
+        if (cmdlen == pageSize && cmdline[pageSize - 1] != '\0') {
+            truncated = 1;
+        } else if (cmdlen == 0) {
+            // /proc/<pid>/cmdline was empty. This usually happens for kernel processes
+            // like '[kthreadd]'. We could try to read /proc/<pid>/comm in the future.
+        }
+        if (cmdlen > 0 && (cmdexe == NULL || truncated)) {
+            // We have no exact command or the arguments are truncated.
+            // In this case we save the command line from /proc/<pid>/cmdline.
+            args = (char*)malloc(pageSize + 1);
+            if (args != NULL) {
+                memcpy(args, cmdline, cmdlen + 1);
+                for (i = 0; i < cmdlen; i++) {
+                    if (args[i] == '\0') {
+                        args[i] = ' ';
+                    }
+                }
+            }
+        }
+        i = 0;
+        if (!truncated) {
+            // Count the arguments
+            cmdEnd = &cmdline[cmdlen];
+            for (s = cmdline; *s != '\0' && (s < cmdEnd); i++) {
+                s += strnlen(s, (cmdEnd - s)) + 1;
+            }
+        }
+        unix_fillArgArray(env, jinfo, i, cmdline, cmdEnd, cmdexe, args);
+    } while (0);
+
+    if (cmdline != NULL) {
+        free(cmdline);
+    }
+    if (args != NULL) {
+        free(args);
+    }
+    if (fd >= 0) {
+        close(fd);
+    }
+}
+
+/**
+ * Read the boottime from /proc/stat.
+ */
+static long long getBoottime(JNIEnv *env) {
+    FILE *fp;
+    char *line = NULL;
+    size_t len = 0;
+    long long bootTime = 0;
+
+    fp = fopen("/proc/stat", "r");
+    if (fp == NULL) {
+        return -1;
+    }
+
+    while (getline(&line, &len, fp) != -1) {
+        if (sscanf(line, "btime %llu", &bootTime) == 1) {
+            break;
+        }
+    }
+    free(line);
+
+    if (fp != 0) {
+        fclose(fp);
+    }
+
+    return bootTime * 1000;
+}
--- a/src/java.base/macosx/native/libjava/ProcessHandleImpl_macosx.c	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/macosx/native/libjava/ProcessHandleImpl_macosx.c	Mon Aug 17 10:12:16 2015 -0700
@@ -28,6 +28,8 @@
 #include "java_lang_ProcessHandleImpl.h"
 #include "java_lang_ProcessHandleImpl_Info.h"
 
+#include "ProcessHandleImpl_unix.h"
+
 #include <stdio.h>
 #include <errno.h>
 #include <signal.h>
@@ -38,144 +40,15 @@
 #include <sys/sysctl.h>
 
 /**
- * Implementations of ProcessHandleImpl functions for MAC OS X;
- * are NOT common to all Unix variants.
+ * Implementation of native ProcessHandleImpl functions for MAC OS X.
+ * See ProcessHandleImpl_unix.c for more details.
  */
 
-static void getStatInfo(JNIEnv *env, jobject jinfo, pid_t pid);
-static void getCmdlineInfo(JNIEnv *env, jobject jinfo, pid_t pid);
-
-/*
- * Common Unix function to lookup the uid and return the user name.
- */
-extern jstring uidToUser(JNIEnv* env, uid_t uid);
-
-/* Field id for jString 'command' in java.lang.ProcessHandle.Info */
-static jfieldID ProcessHandleImpl_Info_commandID;
-
-/* Field id for jString[] 'arguments' in java.lang.ProcessHandle.Info */
-static jfieldID ProcessHandleImpl_Info_argumentsID;
-
-/* Field id for jlong 'totalTime' in java.lang.ProcessHandle.Info */
-static jfieldID ProcessHandleImpl_Info_totalTimeID;
-
-/* Field id for jlong 'startTime' in java.lang.ProcessHandle.Info */
-static jfieldID ProcessHandleImpl_Info_startTimeID;
-
-/* Field id for jString 'user' in java.lang.ProcessHandleImpl.Info */
-static jfieldID ProcessHandleImpl_Info_userID;
-
-/* static value for clock ticks per second. */
-static long clock_ticks_per_second;
-
-/**************************************************************
- * Static method to initialize field IDs and the ticks per second rate.
- *
- * Class:     java_lang_ProcessHandleImpl_Info
- * Method:    initIDs
- * Signature: ()V
- */
-JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_00024Info_initIDs(JNIEnv *env, jclass clazz) {
-    CHECK_NULL(ProcessHandleImpl_Info_commandID =
-            (*env)->GetFieldID(env, clazz, "command", "Ljava/lang/String;"));
-    CHECK_NULL(ProcessHandleImpl_Info_argumentsID =
-            (*env)->GetFieldID(env, clazz, "arguments", "[Ljava/lang/String;"));
-    CHECK_NULL(ProcessHandleImpl_Info_totalTimeID =
-            (*env)->GetFieldID(env, clazz, "totalTime", "J"));
-    CHECK_NULL(ProcessHandleImpl_Info_startTimeID =
-            (*env)->GetFieldID(env, clazz, "startTime", "J"));
-    CHECK_NULL(ProcessHandleImpl_Info_userID =
-            (*env)->GetFieldID(env, clazz, "user", "Ljava/lang/String;"));
-}
-/**************************************************************
- * Static method to initialize the ticks per second rate.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    initNative
- * Signature: ()V
- */
-JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_initNative(JNIEnv *env, jclass clazz) {
-      clock_ticks_per_second = sysconf(_SC_CLK_TCK);
-}
-
-/*
- * Check if a process is alive.
- * Return the start time (ms since 1970) if it is available.
- * If the start time is not available return 0.
- * If the pid is invalid, return -1.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    isAlive0
- * Signature: (J)J
- */
-JNIEXPORT jlong JNICALL
-Java_java_lang_ProcessHandleImpl_isAlive0(JNIEnv *env, jobject obj, jlong jpid) {
-    pid_t pid = (pid_t) jpid;
-    struct kinfo_proc kp;
-    size_t bufSize = sizeof kp;
-
-    // Read the process info for the specific pid
-    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
-
-    if (sysctl(mib, 4, &kp, &bufSize, NULL, 0) < 0) {
-        return  (errno == EINVAL) ? -1 : 0;
-    } else {
-        return (bufSize == 0) ?  -1 :
-                                 (jlong) (kp.kp_proc.p_starttime.tv_sec * 1000
-                                        + kp.kp_proc.p_starttime.tv_usec / 1000);
-    }
-}
-
-/*
- * Returns the parent pid of the requested pid.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    parent0
- * Signature: (J)J
- */
-JNIEXPORT jlong JNICALL
-Java_java_lang_ProcessHandleImpl_parent0(JNIEnv *env,
-                                         jobject obj,
-                                         jlong jpid,
-                                         jlong startTime) {
-    pid_t pid = (pid_t) jpid;
-    pid_t ppid = -1;
-
-    if (pid == getpid()) {
-        ppid = getppid();
-    } else {
-        const pid_t pid = (pid_t) jpid;
-        struct kinfo_proc kp;
-        size_t bufSize = sizeof kp;
-
-        // Read the process info for the specific pid
-        int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
-        if (sysctl(mib, 4, &kp, &bufSize, NULL, 0) < 0) {
-            JNU_ThrowByNameWithLastError(env,
-                "java/lang/RuntimeException", "sysctl failed");
-            return -1;
-        }
-        // If the buffer is full and for the pid requested then check the start
-        if (bufSize > 0 && kp.kp_proc.p_pid == pid) {
-            jlong start = (jlong) (kp.kp_proc.p_starttime.tv_sec * 1000
-                                   + kp.kp_proc.p_starttime.tv_usec / 1000);
-            if (start == startTime || start == 0 || startTime == 0) {
-                ppid = kp.kp_eproc.e_ppid;
-            }
-        }
-    }
-    return (jlong) ppid;
-}
+void os_initNative(JNIEnv *env, jclass clazz) {}
 
 /*
  * Returns the children of the requested pid and optionally each parent.
  *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    getProcessPids0
- * Signature: (J[J[J)I
- *
  * Use sysctl to accumulate any process whose parent pid is zero or matches.
  * The resulting pids are stored into the array of longs.
  * The number of pids is returned if they all fit.
@@ -183,13 +56,8 @@
  * If the array is too short, excess pids are not stored and
  * the desired length is returned.
  */
-JNIEXPORT jint JNICALL
-Java_java_lang_ProcessHandleImpl_getProcessPids0(JNIEnv *env,
-                                                 jclass clazz,
-                                                 jlong jpid,
-                                                 jlongArray jarray,
-                                                 jlongArray jparentArray,
-                                                 jlongArray jstimesArray) {
+jint os_getChildren(JNIEnv *env, jlong jpid, jlongArray jarray,
+                    jlongArray jparentArray, jlongArray jstimesArray) {
     jlong* pids = NULL;
     jlong* ppids = NULL;
     jlong* stimes = NULL;
@@ -303,35 +171,17 @@
     return count;
 }
 
-/**************************************************************
- * Implementation of ProcessHandleImpl_Info native methods.
- */
-
-/*
- * Fill in the Info object from the OS information about the process.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    info0
- * Signature: (J)I
+/**
+ * Use sysctl and return the ppid, total cputime and start time.
+ * Return: -1 is fail;  >=  0 is parent pid
+ * 'total' will contain the running time of 'pid' in nanoseconds.
+ * 'start' will contain the start time of 'pid' in milliseconds since epoch.
  */
-JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_00024Info_info0(JNIEnv *env,
-                                                 jobject jinfo,
-                                                 jlong jpid) {
-    pid_t pid = (pid_t) jpid;
-    getStatInfo(env, jinfo, pid);
-    getCmdlineInfo(env, jinfo, pid);
-}
-
-/**
- * Read /proc/<pid>/stat and fill in the fields of the Info object.
- * The executable name, plus the user, system, and start times are gathered.
- */
-static void getStatInfo(JNIEnv *env, jobject jinfo, pid_t jpid) {
-    jlong totalTime;                    // nanoseconds
-    unsigned long long startTime;       // milliseconds
+pid_t os_getParentPidAndTimings(JNIEnv *env, pid_t jpid,
+                                jlong *totalTime, jlong *startTime) {
 
     const pid_t pid = (pid_t) jpid;
+    pid_t ppid = -1;
     struct kinfo_proc kp;
     size_t bufSize = sizeof kp;
 
@@ -339,92 +189,70 @@
     int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
 
     if (sysctl(mib, 4, &kp, &bufSize, NULL, 0) < 0) {
-        if (errno == EINVAL) {
-            return;
-        } else {
-            JNU_ThrowByNameWithLastError(env,
-                "java/lang/RuntimeException", "sysctl failed");
-        }
-        return;
+        JNU_ThrowByNameWithLastError(env,
+            "java/lang/RuntimeException", "sysctl failed");
+        return -1;
     }
-
-    // Convert the UID to the username
-    jstring name = NULL;
-    CHECK_NULL((name = uidToUser(env, kp.kp_eproc.e_ucred.cr_uid)));
-    (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_userID, name);
-    JNU_CHECK_EXCEPTION(env);
-
-    startTime = kp.kp_proc.p_starttime.tv_sec * 1000 +
-                kp.kp_proc.p_starttime.tv_usec / 1000;
-
-    (*env)->SetLongField(env, jinfo, ProcessHandleImpl_Info_startTimeID, startTime);
-    JNU_CHECK_EXCEPTION(env);
+    if (bufSize > 0 && kp.kp_proc.p_pid == pid) {
+        *startTime = (jlong) (kp.kp_proc.p_starttime.tv_sec * 1000 +
+                              kp.kp_proc.p_starttime.tv_usec / 1000);
+        ppid = kp.kp_eproc.e_ppid;
+    }
 
     // Get cputime if for current process
     if (pid == getpid()) {
         struct rusage usage;
-        if (getrusage(RUSAGE_SELF, &usage) != 0) {
-            return;
+        if (getrusage(RUSAGE_SELF, &usage) == 0) {
+          jlong microsecs =
+              usage.ru_utime.tv_sec * 1000 * 1000 + usage.ru_utime.tv_usec +
+              usage.ru_stime.tv_sec * 1000 * 1000 + usage.ru_stime.tv_usec;
+          *totalTime = microsecs * 1000;
         }
-        jlong microsecs =
-            usage.ru_utime.tv_sec * 1000 * 1000 + usage.ru_utime.tv_usec +
-            usage.ru_stime.tv_sec * 1000 * 1000 + usage.ru_stime.tv_usec;
-        totalTime = microsecs * 1000;
-        (*env)->SetLongField(env, jinfo, ProcessHandleImpl_Info_totalTimeID, totalTime);
-        JNU_CHECK_EXCEPTION(env);
     }
+
+    return ppid;
+
 }
 
 /**
- * Construct the argument array by parsing the arguments from the sequence of arguments.
+ * Return the uid of a process or -1 on error
  */
-static int fillArgArray(JNIEnv *env, jobject jinfo, int nargs,
-                        const char *cp, const char *argsEnd) {
-    jstring str = NULL;
-    jobject argsArray;
-    int i;
-
-    if (nargs < 1) {
-        return 0;
-    }
-    // Create a String array for nargs-1 elements
-    CHECK_NULL_RETURN((argsArray = (*env)->NewObjectArray(env,
-            nargs - 1, JNU_ClassString(env), NULL)), -1);
+static uid_t getUID(pid_t pid) {
+    struct kinfo_proc kp;
+    size_t bufSize = sizeof kp;
 
-    for (i = 0; i < nargs - 1; i++) {
-        // skip to the next argument; omits arg[0]
-        cp += strnlen(cp, (argsEnd - cp)) + 1;
-
-        if (cp > argsEnd || *cp == '\0') {
-            return -2;  // Off the end pointer or an empty argument is an error
-        }
+    // Read the process info for the specific pid
+    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
 
-        CHECK_NULL_RETURN((str = JNU_NewStringPlatform(env, cp)), -1);
-
-        (*env)->SetObjectArrayElement(env, argsArray, i, str);
-        JNU_CHECK_EXCEPTION_RETURN(env, -3);
+    if (sysctl(mib, 4, &kp, &bufSize, NULL, 0) == 0) {
+        if (bufSize > 0 && kp.kp_proc.p_pid == pid) {
+            return kp.kp_eproc.e_ucred.cr_uid;
+        }
     }
-    (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_argumentsID, argsArray);
-    JNU_CHECK_EXCEPTION_RETURN(env, -4);
-    return 0;
+    return (uid_t)-1;
 }
 
 /**
  * Retrieve the command and arguments for the process and store them
  * into the Info object.
  */
-static void getCmdlineInfo(JNIEnv *env, jobject jinfo, pid_t pid) {
+void os_getCmdlineAndUserInfo(JNIEnv *env, jobject jinfo, pid_t pid) {
     int mib[3], maxargs, nargs, i;
     size_t size;
     char *args, *cp, *sp, *np;
 
+    // Get the UID first. This is done here because it is cheap to do it here
+    // on other platforms like Linux/Solaris/AIX where the uid comes from the
+    // same source like the command line info.
+    unix_getUserInfo(env, jinfo, getUID(pid));
+
     // Get the maximum size of the arguments
     mib[0] = CTL_KERN;
     mib[1] = KERN_ARGMAX;
     size = sizeof(maxargs);
     if (sysctl(mib, 2, &maxargs, &size, NULL, 0) == -1) {
             JNU_ThrowByNameWithLastError(env,
-                    "java/lang/RuntimeException", "sysctl failed");
+                "java/lang/RuntimeException", "sysctl failed");
         return;
     }
 
@@ -437,7 +265,7 @@
 
     do {            // a block to break out of on error
         char *argsEnd;
-        jstring str = NULL;
+        jstring cmdexe = NULL;
 
         mib[0] = CTL_KERN;
         mib[1] = KERN_PROCARGS2;
@@ -445,7 +273,7 @@
         size = (size_t) maxargs;
         if (sysctl(mib, 3, args, &size, NULL, 0) == -1) {
             if (errno != EINVAL) {
-            JNU_ThrowByNameWithLastError(env,
+                JNU_ThrowByNameWithLastError(env,
                     "java/lang/RuntimeException", "sysctl failed");
             }
             break;
@@ -456,11 +284,7 @@
         argsEnd = &args[size];
 
         // Store the command executable path
-        if ((str = JNU_NewStringPlatform(env, cp)) == NULL) {
-            break;
-        }
-        (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_commandID, str);
-        if ((*env)->ExceptionCheck(env)) {
+        if ((cmdexe = JNU_NewStringPlatform(env, cp)) == NULL) {
             break;
         }
 
@@ -471,7 +295,7 @@
             }
         }
 
-        fillArgArray(env, jinfo, nargs, cp, argsEnd);
+        unix_fillArgArray(env, jinfo, nargs, cp, argsEnd, cmdexe, NULL);
     } while (0);
     // Free the arg buffer
     free(args);
--- a/src/java.base/share/classes/java/lang/ProcessHandle.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/lang/ProcessHandle.java	Mon Aug 17 10:12:16 2015 -0700
@@ -225,8 +225,34 @@
         public Optional<String> command();
 
         /**
+         * Returns the command line of the process.
+         * <p>
+         * If {@link #command command()} and  {@link #arguments arguments()} return
+         * non-empty optionals, this is simply a convenience method which concatenates
+         * the values of the two functions separated by spaces. Otherwise it will return a
+         * best-effort, platform dependent representation of the command line.
+         *
+         * @apiNote Note that the returned executable pathname and the
+         *          arguments may be truncated on some platforms due to system
+         *          limitations.
+         *          <p>
+         *          The executable pathname may contain only the
+         *          name of the executable without the full path information.
+         *          It is undecideable whether white space separates different
+         *          arguments or is part of a single argument.
+         *
+         * @return an {@code Optional<String>} of the command line
+         *         of the process
+         */
+        public Optional<String> commandLine();
+
+        /**
          * Returns an array of Strings of the arguments of the process.
          *
+         * @apiNote On some platforms, native applications are free to change
+         *          the arguments array after startup and this method may only
+         *          show the changed values.
+         *
          * @return an {@code Optional<String[]>} of the arguments of the process
          */
         public Optional<String[]> arguments();
--- a/src/java.base/share/classes/java/lang/ProcessHandleImpl.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/lang/ProcessHandleImpl.java	Mon Aug 17 10:12:16 2015 -0700
@@ -472,7 +472,7 @@
     /**
      * Implementation of ProcessHandle.Info.
      * Information snapshot about a process.
-     * The attributes of a process vary by operating system and not available
+     * The attributes of a process vary by operating system and are not available
      * in all implementations.  Additionally, information about other processes
      * is limited by the operating system privileges of the process making the request.
      * If a value is not available, either a {@code null} or {@code -1} is stored.
@@ -496,6 +496,7 @@
         private native void info0(long pid);
 
         String command;
+        String commandLine;
         String[] arguments;
         long startTime;
         long totalTime;
@@ -503,6 +504,7 @@
 
         Info() {
             command = null;
+            commandLine = null;
             arguments = null;
             startTime = -1L;
             totalTime = -1L;
@@ -539,6 +541,15 @@
         }
 
         @Override
+        public Optional<String> commandLine() {
+            if (command != null && arguments != null) {
+                return Optional.of(command + " " + String.join(" ", arguments));
+            } else {
+                return Optional.ofNullable(commandLine);
+            }
+        }
+
+        @Override
         public Optional<String[]> arguments() {
             return Optional.ofNullable(arguments);
         }
@@ -580,6 +591,11 @@
                 sb.append("args: ");
                 sb.append(Arrays.toString(arguments));
             }
+            if (commandLine != null) {
+                if (sb.length() != 0) sb.append(", ");
+                sb.append("cmdLine: ");
+                sb.append(commandLine);
+            }
             if (startTime > 0) {
                 if (sb.length() != 0) sb.append(", ");
                 sb.append("startTime: ");
--- a/src/java.base/share/classes/java/net/InetSocketAddress.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/net/InetSocketAddress.java	Mon Aug 17 10:12:16 2015 -0700
@@ -206,7 +206,7 @@
      * @param   hostname the Host name
      * @param   port    The port number
      * @throws IllegalArgumentException if the port parameter is outside the range
-     * of valid port values, or if the hostname parameter is <TT>null</TT>.
+     * of valid port values, or if the hostname parameter is {@code null}.
      * @throws SecurityException if a security manager is present and
      *                           permission to resolve the host name is
      *                           denied.
@@ -244,7 +244,7 @@
      * @param   port    The port number
      * @throws IllegalArgumentException if the port parameter is outside
      *                  the range of valid port values, or if the hostname
-     *                  parameter is <TT>null</TT>.
+     *                  parameter is {@code null}.
      * @see     #isUnresolved()
      * @return  a {@code InetSocketAddress} representing the unresolved
      *          socket address
--- a/src/java.base/share/classes/java/net/spi/package-info.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/net/spi/package-info.java	Mon Aug 17 10:12:16 2015 -0700
@@ -24,7 +24,7 @@
  */
 
 /**
- * Service-provider classes for the <tt>{@link java.net}</tt> package.
+ * Service-provider classes for the {@link java.net} package.
  *
  * <p> Only developers who are defining new URL stream handler providers
  * should need to make direct use of this package.
--- a/src/java.base/share/classes/java/nio/Buffer.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/Buffer.java	Mon Aug 17 10:12:16 2015 -0700
@@ -96,10 +96,10 @@
  * capacity values:
  *
  * <blockquote>
- *     <tt>0</tt> <tt>&lt;=</tt>
- *     <i>mark</i> <tt>&lt;=</tt>
- *     <i>position</i> <tt>&lt;=</tt>
- *     <i>limit</i> <tt>&lt;=</tt>
+ *     {@code 0} {@code <=}
+ *     <i>mark</i> {@code <=}
+ *     <i>position</i> {@code <=}
+ *     <i>limit</i> {@code <=}
  *     <i>capacity</i>
  * </blockquote>
  *
@@ -229,7 +229,7 @@
      *         The new buffer's capacity, in $type$s
      *
      * @throws  IllegalArgumentException
-     *          If the <tt>capacity</tt> is a negative integer
+     *          If the {@code capacity} is a negative integer
      */
     static IllegalArgumentException createCapacityException(int capacity) {
         assert capacity < 0 : "capacity expected to be negative";
@@ -266,7 +266,7 @@
      * @return  This buffer
      *
      * @throws  IllegalArgumentException
-     *          If the preconditions on <tt>newPosition</tt> do not hold
+     *          If the preconditions on {@code newPosition} do not hold
      */
     public Buffer position(int newPosition) {
         if (newPosition > limit | newPosition < 0)
@@ -319,7 +319,7 @@
      * @return  This buffer
      *
      * @throws  IllegalArgumentException
-     *          If the preconditions on <tt>newLimit</tt> do not hold
+     *          If the preconditions on {@code newLimit} do not hold
      */
     public Buffer limit(int newLimit) {
         if (newLimit > capacity | newLimit < 0)
@@ -468,7 +468,7 @@
      * Tells whether there are any elements between the current position and
      * the limit.
      *
-     * @return  <tt>true</tt> if, and only if, there is at least one element
+     * @return  {@code true} if, and only if, there is at least one element
      *          remaining in this buffer
      */
     public final boolean hasRemaining() {
@@ -478,7 +478,7 @@
     /**
      * Tells whether or not this buffer is read-only.
      *
-     * @return  <tt>true</tt> if, and only if, this buffer is read-only
+     * @return  {@code true} if, and only if, this buffer is read-only
      */
     public abstract boolean isReadOnly();
 
@@ -486,11 +486,11 @@
      * Tells whether or not this buffer is backed by an accessible
      * array.
      *
-     * <p> If this method returns <tt>true</tt> then the {@link #array() array}
+     * <p> If this method returns {@code true} then the {@link #array() array}
      * and {@link #arrayOffset() arrayOffset} methods may safely be invoked.
      * </p>
      *
-     * @return  <tt>true</tt> if, and only if, this buffer
+     * @return  {@code true} if, and only if, this buffer
      *          is backed by an array and is not read-only
      *
      * @since 1.6
@@ -529,7 +529,7 @@
      * element of the buffer&nbsp;&nbsp;<i>(optional operation)</i>.
      *
      * <p> If this buffer is backed by an array then buffer position <i>p</i>
-     * corresponds to array index <i>p</i>&nbsp;+&nbsp;<tt>arrayOffset()</tt>.
+     * corresponds to array index <i>p</i>&nbsp;+&nbsp;{@code arrayOffset()}.
      *
      * <p> Invoke the {@link #hasArray hasArray} method before invoking this
      * method in order to ensure that this buffer has an accessible backing
@@ -552,7 +552,7 @@
      * Tells whether or not this buffer is
      * <a href="ByteBuffer.html#direct"><i>direct</i></a>.
      *
-     * @return  <tt>true</tt> if, and only if, this buffer is direct
+     * @return  {@code true} if, and only if, this buffer is direct
      *
      * @since 1.6
      */
--- a/src/java.base/share/classes/java/nio/ByteOrder.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/ByteOrder.java	Mon Aug 17 10:12:16 2015 -0700
@@ -75,9 +75,9 @@
     /**
      * Constructs a string describing this object.
      *
-     * <p> This method returns the string <tt>"BIG_ENDIAN"</tt> for {@link
-     * #BIG_ENDIAN} and <tt>"LITTLE_ENDIAN"</tt> for {@link #LITTLE_ENDIAN}.
-     * </p>
+     * <p> This method returns the string
+     * {@code "BIG_ENDIAN"} for {@link #BIG_ENDIAN} and
+     * {@code "LITTLE_ENDIAN"} for {@link #LITTLE_ENDIAN}.
      *
      * @return  The specified string
      */
--- a/src/java.base/share/classes/java/nio/MappedByteBuffer.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/MappedByteBuffer.java	Mon Aug 17 10:12:16 2015 -0700
@@ -116,10 +116,10 @@
      * Tells whether or not this buffer's content is resident in physical
      * memory.
      *
-     * <p> A return value of <tt>true</tt> implies that it is highly likely
+     * <p> A return value of {@code true} implies that it is highly likely
      * that all of the data in this buffer is resident in physical memory and
      * may therefore be accessed without incurring any virtual-memory page
-     * faults or I/O operations.  A return value of <tt>false</tt> does not
+     * faults or I/O operations.  A return value of {@code false} does not
      * necessarily imply that the buffer's content is not resident in physical
      * memory.
      *
@@ -127,7 +127,7 @@
      * underlying operating system may have paged out some of the buffer's data
      * by the time that an invocation of this method returns.  </p>
      *
-     * @return  <tt>true</tt> if it is likely that this buffer's content
+     * @return  {@code true} if it is likely that this buffer's content
      *          is resident in physical memory
      */
     public final boolean isLoaded() {
--- a/src/java.base/share/classes/java/nio/X-Buffer-bin.java.template	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/X-Buffer-bin.java.template	Mon Aug 17 10:12:16 2015 -0700
@@ -78,7 +78,7 @@
      * @return  The $type$ value at the given index
      *
      * @throws  IndexOutOfBoundsException
-     *          If <tt>index</tt> is negative
+     *          If {@code index} is negative
      *          or not smaller than the buffer's limit,
      *          minus $nbytesButOne$
      */
@@ -100,7 +100,7 @@
      * @return  This buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If <tt>index</tt> is negative
+     *          If {@code index} is negative
      *          or not smaller than the buffer's limit,
      *          minus $nbytesButOne$
      *
--- a/src/java.base/share/classes/java/nio/X-Buffer.java.template	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/X-Buffer.java.template	Mon Aug 17 10:12:16 2015 -0700
@@ -133,7 +133,7 @@
  * <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
+ * primitive types, except {@code boolean}.  Primitive values are translated
  * to (or from) sequences of bytes according to the buffer's current byte
  * order, which may be retrieved and modified via the {@link #order order}
  * methods.  Specific byte orders are represented by instances of the {@link
@@ -151,8 +151,8 @@
  *  void  {@link #putFloat(float) putFloat(float f)}
  *  void  {@link #putFloat(int,float) putFloat(int index, float f)}</pre></blockquote>
  *
- * <p> Corresponding methods are defined for the types <tt>char</tt>,
- * <tt>short</tt>, <tt>int</tt>, <tt>long</tt>, and <tt>double</tt>.  The index
+ * <p> Corresponding methods are defined for the types {@code char,
+ * short, int, long}, and {@code double}.  The index
  * 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.
  *
@@ -167,8 +167,7 @@
  * #asFloatBuffer() asFloatBuffer} method, for example, creates an instance of
  * the {@link FloatBuffer} class that is backed by the byte buffer upon which
  * the method is invoked.  Corresponding view-creation methods are defined for
- * the types <tt>char</tt>, <tt>short</tt>, <tt>int</tt>, <tt>long</tt>, and
- * <tt>double</tt>.
+ * the types {@code char, short, int, long}, and {@code double}.
  *
  * <p> View buffers have three important advantages over the families of
  * type-specific <i>get</i> and <i>put</i> methods described above:
@@ -196,7 +195,7 @@
  *
  * <p> Like a byte buffer, $a$ $type$ buffer is either <a
  * href="ByteBuffer.html#direct"><i>direct</i> or <i>non-direct</i></a>.  A
- * $type$ buffer created via the <tt>wrap</tt> methods of this class will
+ * $type$ buffer created via the {@code wrap} methods of this class will
  * be non-direct.  $A$ $type$ buffer created as a view of a byte buffer will
  * be direct if, and only if, the byte buffer itself is direct.  Whether or not
  * $a$ $type$ buffer is direct may be determined by invoking the {@link
@@ -208,7 +207,7 @@
  *
  * <p> This class implements the {@link CharSequence} interface so that
  * character buffers may be used wherever character sequences are accepted, for
- * example in the regular-expression package <tt>{@link java.util.regex}</tt>.
+ * example in the regular-expression package {@link java.util.regex}.
  * </p>
  *
 #end[char]
@@ -306,7 +305,7 @@
      * @return  The new $type$ buffer
      *
      * @throws  IllegalArgumentException
-     *          If the <tt>capacity</tt> is a negative integer
+     *          If the {@code capacity} is a negative integer
      */
     public static $Type$Buffer allocateDirect(int capacity) {
         return new Direct$Type$Buffer(capacity);
@@ -335,7 +334,7 @@
      * @return  The new $type$ buffer
      *
      * @throws  IllegalArgumentException
-     *          If the <tt>capacity</tt> is a negative integer
+     *          If the {@code capacity} is a negative integer
      */
     public static $Type$Buffer allocate(int capacity) {
         if (capacity < 0)
@@ -349,8 +348,8 @@
      * <p> The new buffer will be backed by the given $type$ array;
      * that is, modifications to the buffer will cause the array to be modified
      * 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>, its mark will be undefined, and its
+     * {@code array.length}, its position will be {@code offset}, its limit
+     * will be {@code offset + length}, its mark will be undefined, and its
      * byte order will be
 #if[byte]
      * {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
@@ -366,19 +365,19 @@
      *
      * @param  offset
      *         The offset of the subarray to be used; must be non-negative and
-     *         no larger than <tt>array.length</tt>.  The new buffer's position
+     *         no larger than {@code array.length}.  The new buffer's position
      *         will be set to this value.
      *
      * @param  length
      *         The length of the subarray to be used;
      *         must be non-negative and no larger than
-     *         <tt>array.length - offset</tt>.
-     *         The new buffer's limit will be set to <tt>offset + length</tt>.
+     *         {@code array.length - offset}.
+     *         The new buffer's limit will be set to {@code offset + length}.
      *
      * @return  The new $type$ buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on the <tt>offset</tt> and <tt>length</tt>
+     *          If the preconditions on the {@code offset} and {@code length}
      *          parameters do not hold
      */
     public static $Type$Buffer wrap($type$[] array,
@@ -397,7 +396,7 @@
      * <p> The new buffer will be backed by the given $type$ array;
      * 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, its mark will be
+     * {@code array.length}, its position will be zero, its mark will be
      * undefined, and its byte order will be
 #if[byte]
      * {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
@@ -458,8 +457,8 @@
      *
      * <p> The content of the new, read-only buffer will be the content of the
      * given character sequence.  The buffer's capacity will be
-     * <tt>csq.length()</tt>, its position will be <tt>start</tt>, its limit
-     * will be <tt>end</tt>, and its mark will be undefined.  </p>
+     * {@code csq.length()}, its position will be {@code start}, its limit
+     * will be {@code end}, and its mark will be undefined.  </p>
      *
      * @param  csq
      *         The character sequence from which the new character buffer is to
@@ -467,19 +466,19 @@
      *
      * @param  start
      *         The index of the first character to be used;
-     *         must be non-negative and no larger than <tt>csq.length()</tt>.
+     *         must be non-negative and no larger than {@code csq.length()}.
      *         The new buffer's position will be set to this value.
      *
      * @param  end
      *         The index of the character following the last character to be
-     *         used; must be no smaller than <tt>start</tt> and no larger
-     *         than <tt>csq.length()</tt>.
+     *         used; must be no smaller than {@code start} and no larger
+     *         than {@code csq.length()}.
      *         The new buffer's limit will be set to this value.
      *
      * @return  The new character buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on the <tt>start</tt> and <tt>end</tt>
+     *          If the preconditions on the {@code start} and {@code end}
      *          parameters do not hold
      */
     public static CharBuffer wrap(CharSequence csq, int start, int end) {
@@ -495,7 +494,7 @@
      *
      * <p> The content of the new, read-only buffer will be the content of the
      * given character sequence.  The new buffer's capacity and limit will be
-     * <tt>csq.length()</tt>, its position will be zero, and its mark will be
+     * {@code csq.length()}, its position will be zero, and its mark will be
      * undefined.  </p>
      *
      * @param  csq
@@ -624,7 +623,7 @@
      * @return  The $type$ at the given index
      *
      * @throws  IndexOutOfBoundsException
-     *          If <tt>index</tt> is negative
+     *          If {@code index} is negative
      *          or not smaller than the buffer's limit
      */
     public abstract $type$ get(int index);
@@ -657,7 +656,7 @@
      * @return  This buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If <tt>index</tt> is negative
+     *          If {@code index} is negative
      *          or not smaller than the buffer's limit
      *
      * @throws  ReadOnlyBufferException
@@ -674,17 +673,17 @@
      * <p> This method transfers $type$s from this buffer into the given
      * destination array.  If there are fewer $type$s remaining in the
      * buffer than are required to satisfy the request, that is, if
-     * <tt>length</tt>&nbsp;<tt>&gt;</tt>&nbsp;<tt>remaining()</tt>, then no
+     * {@code length}&nbsp;{@code >}&nbsp;{@code remaining()}, then no
      * $type$s are transferred and a {@link BufferUnderflowException} is
      * thrown.
      *
-     * <p> Otherwise, this method copies <tt>length</tt> $type$s from this
+     * <p> Otherwise, this method copies {@code length} $type$s from this
      * buffer into the given array, starting at the current position of this
      * buffer and at the given offset in the array.  The position of this
-     * buffer is then incremented by <tt>length</tt>.
+     * buffer is then incremented by {@code length}.
      *
      * <p> In other words, an invocation of this method of the form
-     * <tt>src.get(dst,&nbsp;off,&nbsp;len)</tt> has exactly the same effect as
+     * <code>src.get(dst,&nbsp;off,&nbsp;len)</code> has exactly the same effect as
      * the loop
      *
      * <pre>{@code
@@ -701,21 +700,21 @@
      * @param  offset
      *         The offset within the array of the first $type$ to be
      *         written; must be non-negative and no larger than
-     *         <tt>dst.length</tt>
+     *         {@code dst.length}
      *
      * @param  length
      *         The maximum number of $type$s to be written to the given
      *         array; must be non-negative and no larger than
-     *         <tt>dst.length - offset</tt>
+     *         {@code dst.length - offset}
      *
      * @return  This buffer
      *
      * @throws  BufferUnderflowException
-     *          If there are fewer than <tt>length</tt> $type$s
+     *          If there are fewer than {@code length} $type$s
      *          remaining in this buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on the <tt>offset</tt> and <tt>length</tt>
+     *          If the preconditions on the {@code offset} and {@code length}
      *          parameters do not hold
      */
     public $Type$Buffer get($type$[] dst, int offset, int length) {
@@ -733,7 +732,7 @@
      *
      * <p> This method transfers $type$s from this buffer into the given
      * destination array.  An invocation of this method of the form
-     * <tt>src.get(a)</tt> behaves in exactly the same way as the invocation
+     * {@code src.get(a)} behaves in exactly the same way as the invocation
      *
      * <pre>
      *     src.get(a, 0, a.length) </pre>
@@ -744,7 +743,7 @@
      * @return  This buffer
      *
      * @throws  BufferUnderflowException
-     *          If there are fewer than <tt>length</tt> $type$s
+     *          If there are fewer than {@code length} $type$s
      *          remaining in this buffer
      */
     public $Type$Buffer get($type$[] dst) {
@@ -760,17 +759,17 @@
      * <p> This method transfers the $type$s remaining in the given source
      * buffer into this buffer.  If there are more $type$s remaining in the
      * source buffer than in this buffer, that is, if
-     * <tt>src.remaining()</tt>&nbsp;<tt>&gt;</tt>&nbsp;<tt>remaining()</tt>,
+     * {@code src.remaining()}&nbsp;{@code >}&nbsp;{@code remaining()},
      * then no $type$s are transferred and a {@link
      * BufferOverflowException} is thrown.
      *
      * <p> Otherwise, this method copies
-     * <i>n</i>&nbsp;=&nbsp;<tt>src.remaining()</tt> $type$s from the given
+     * <i>n</i>&nbsp;=&nbsp;{@code src.remaining()} $type$s from the given
      * buffer into this buffer, starting at each buffer's current position.
      * The positions of both buffers are then incremented by <i>n</i>.
      *
      * <p> In other words, an invocation of this method of the form
-     * <tt>dst.put(src)</tt> has exactly the same effect as the loop
+     * {@code dst.put(src)} has exactly the same effect as the loop
      *
      * <pre>
      *     while (src.hasRemaining())
@@ -814,17 +813,17 @@
      * <p> This method transfers $type$s into this buffer from the given
      * source array.  If there are more $type$s to be copied from the array
      * than remain in this buffer, that is, if
-     * <tt>length</tt>&nbsp;<tt>&gt;</tt>&nbsp;<tt>remaining()</tt>, then no
+     * {@code length}&nbsp;{@code >}&nbsp;{@code remaining()}, then no
      * $type$s are transferred and a {@link BufferOverflowException} is
      * thrown.
      *
-     * <p> Otherwise, this method copies <tt>length</tt> $type$s from the
+     * <p> Otherwise, this method copies {@code length} $type$s from the
      * given array into this buffer, starting at the given offset in the array
      * and at the current position of this buffer.  The position of this buffer
-     * is then incremented by <tt>length</tt>.
+     * is then incremented by {@code length}.
      *
      * <p> In other words, an invocation of this method of the form
-     * <tt>dst.put(src,&nbsp;off,&nbsp;len)</tt> has exactly the same effect as
+     * <code>dst.put(src,&nbsp;off,&nbsp;len)</code> has exactly the same effect as
      * the loop
      *
      * <pre>{@code
@@ -840,12 +839,12 @@
      *
      * @param  offset
      *         The offset within the array of the first $type$ to be read;
-     *         must be non-negative and no larger than <tt>array.length</tt>
+     *         must be non-negative and no larger than {@code array.length}
      *
      * @param  length
      *         The number of $type$s to be read from the given array;
      *         must be non-negative and no larger than
-     *         <tt>array.length - offset</tt>
+     *         {@code array.length - offset}
      *
      * @return  This buffer
      *
@@ -853,7 +852,7 @@
      *          If there is insufficient space in this buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on the <tt>offset</tt> and <tt>length</tt>
+     *          If the preconditions on the {@code offset} and {@code length}
      *          parameters do not hold
      *
      * @throws  ReadOnlyBufferException
@@ -874,7 +873,7 @@
      *
      * <p> This method transfers the entire content of the given source
      * $type$ array into this buffer.  An invocation of this method of the
-     * form <tt>dst.put(a)</tt> behaves in exactly the same way as the
+     * form {@code dst.put(a)} behaves in exactly the same way as the
      * invocation
      *
      * <pre>
@@ -903,18 +902,18 @@
      * <p> This method transfers $type$s from the given string into this
      * buffer.  If there are more $type$s to be copied from the string than
      * remain in this buffer, that is, if
-     * <tt>end&nbsp;-&nbsp;start</tt>&nbsp;<tt>&gt;</tt>&nbsp;<tt>remaining()</tt>,
+     * <code>end&nbsp;-&nbsp;start</code>&nbsp;{@code >}&nbsp;{@code remaining()},
      * then no $type$s are transferred and a {@link
      * BufferOverflowException} is thrown.
      *
      * <p> Otherwise, this method copies
-     * <i>n</i>&nbsp;=&nbsp;<tt>end</tt>&nbsp;-&nbsp;<tt>start</tt> $type$s
+     * <i>n</i>&nbsp;=&nbsp;{@code end}&nbsp;-&nbsp;{@code start} $type$s
      * from the given string into this buffer, starting at the given
-     * <tt>start</tt> index and at the current position of this buffer.  The
+     * {@code start} index and at the current position of this buffer.  The
      * position of this buffer is then incremented by <i>n</i>.
      *
      * <p> In other words, an invocation of this method of the form
-     * <tt>dst.put(src,&nbsp;start,&nbsp;end)</tt> has exactly the same effect
+     * <code>dst.put(src,&nbsp;start,&nbsp;end)</code> has exactly the same effect
      * as the loop
      *
      * <pre>{@code
@@ -931,12 +930,12 @@
      * @param  start
      *         The offset within the string of the first $type$ to be read;
      *         must be non-negative and no larger than
-     *         <tt>string.length()</tt>
+     *         {@code string.length()}
      *
      * @param  end
      *         The offset within the string of the last $type$ to be read,
      *         plus one; must be non-negative and no larger than
-     *         <tt>string.length()</tt>
+     *         {@code string.length()}
      *
      * @return  This buffer
      *
@@ -944,7 +943,7 @@
      *          If there is insufficient space in this buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on the <tt>start</tt> and <tt>end</tt>
+     *          If the preconditions on the {@code start} and {@code end}
      *          parameters do not hold
      *
      * @throws  ReadOnlyBufferException
@@ -966,7 +965,7 @@
      *
      * <p> This method transfers the entire content of the given source string
      * into this buffer.  An invocation of this method of the form
-     * <tt>dst.put(s)</tt> behaves in exactly the same way as the invocation
+     * {@code dst.put(s)} behaves in exactly the same way as the invocation
      *
      * <pre>
      *     dst.put(s, 0, s.length()) </pre>
@@ -995,11 +994,11 @@
      * Tells whether or not this buffer is backed by an accessible $type$
      * array.
      *
-     * <p> If this method returns <tt>true</tt> then the {@link #array() array}
+     * <p> If this method returns {@code true} then the {@link #array() array}
      * and {@link #arrayOffset() arrayOffset} methods may safely be invoked.
      * </p>
      *
-     * @return  <tt>true</tt> if, and only if, this buffer
+     * @return  {@code true} if, and only if, this buffer
      *          is backed by an array and is not read-only
      */
     public final boolean hasArray() {
@@ -1038,7 +1037,7 @@
      * element of the buffer&nbsp;&nbsp;<i>(optional operation)</i>.
      *
      * <p> If this buffer is backed by an array then buffer position <i>p</i>
-     * corresponds to array index <i>p</i>&nbsp;+&nbsp;<tt>arrayOffset()</tt>.
+     * corresponds to array index <i>p</i>&nbsp;+&nbsp;{@code arrayOffset()}.
      *
      * <p> Invoke the {@link #hasArray hasArray} method before invoking this
      * method in order to ensure that this buffer has an accessible backing
@@ -1166,11 +1165,11 @@
      *
      * <p> The $type$s between the buffer's current position and its limit,
      * if any, are copied to the beginning of the buffer.  That is, the
-     * $type$ at index <i>p</i>&nbsp;=&nbsp;<tt>position()</tt> is copied
+     * $type$ at index <i>p</i>&nbsp;=&nbsp;{@code position()} is copied
      * to index zero, the $type$ at index <i>p</i>&nbsp;+&nbsp;1 is copied
      * to index one, and so forth until the $type$ at index
-     * <tt>limit()</tt>&nbsp;-&nbsp;1 is copied to index
-     * <i>n</i>&nbsp;=&nbsp;<tt>limit()</tt>&nbsp;-&nbsp;<tt>1</tt>&nbsp;-&nbsp;<i>p</i>.
+     * {@code limit()}&nbsp;-&nbsp;1 is copied to index
+     * <i>n</i>&nbsp;=&nbsp;{@code limit()}&nbsp;-&nbsp;{@code 1}&nbsp;-&nbsp;<i>p</i>.
      * The buffer's position is then set to <i>n+1</i> and its limit is set to
      * its capacity.  The mark, if defined, is discarded.
      *
@@ -1183,7 +1182,7 @@
      *
      * <p> Invoke this method after writing data from a buffer in case the
      * write was incomplete.  The following loop, for example, copies bytes
-     * from one channel to another via the buffer <tt>buf</tt>:
+     * from one channel to another via the buffer {@code buf}:
      *
      * <blockquote><pre>{@code
      *   buf.clear();          // Prepare buffer for use
@@ -1206,7 +1205,7 @@
     /**
      * Tells whether or not this $type$ buffer is direct.
      *
-     * @return  <tt>true</tt> if, and only if, this buffer is direct
+     * @return  {@code true} if, and only if, this buffer is direct
      */
     public abstract boolean isDirect();
 
@@ -1239,8 +1238,8 @@
      * Returns the current hash code of this buffer.
      *
      * <p> The hash code of a $type$ buffer depends only upon its remaining
-     * elements; that is, upon the elements from <tt>position()</tt> up to, and
-     * including, the element at <tt>limit()</tt>&nbsp;-&nbsp;<tt>1</tt>.
+     * elements; that is, upon the elements from {@code position()} up to, and
+     * including, the element at {@code limit()}&nbsp;-&nbsp;{@code 1}.
      *
      * <p> Because buffer hash codes are content-dependent, it is inadvisable
      * to use buffers as keys in hash maps or similar data structures unless it
@@ -1289,7 +1288,7 @@
      *
      * @param  ob  The object to which this buffer is to be compared
      *
-     * @return  <tt>true</tt> if, and only if, this buffer is equal to the
+     * @return  {@code true} if, and only if, this buffer is equal to the
      *           given object
      */
     public boolean equals(Object ob) {
@@ -1368,7 +1367,7 @@
      *
      * <p> The first character of the resulting string will be the character at
      * this buffer's position, while the last character will be the character
-     * at index <tt>limit()</tt>&nbsp;-&nbsp;1.  Invoking this method does not
+     * at index {@code limit()}&nbsp;-&nbsp;1.  Invoking this method does not
      * change the buffer's position. </p>
      *
      * @return  The specified string
@@ -1388,7 +1387,7 @@
      * <p> When viewed as a character sequence, the length of a character
      * buffer is simply the number of characters between the position
      * (inclusive) and the limit (exclusive); that is, it is equivalent to
-     * <tt>remaining()</tt>. </p>
+     * {@code remaining()}. </p>
      *
      * @return  The length of this character buffer
      */
@@ -1402,13 +1401,13 @@
      *
      * @param  index
      *         The index of the character to be read, relative to the position;
-     *         must be non-negative and smaller than <tt>remaining()</tt>
+     *         must be non-negative and smaller than {@code remaining()}
      *
      * @return  The character at index
-     *          <tt>position()&nbsp;+&nbsp;index</tt>
+     *          <code>position()&nbsp;+&nbsp;index</code>
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on <tt>index</tt> do not hold
+     *          If the preconditions on {@code index} do not hold
      */
     public final char charAt(int index) {
         return get(position() + checkIndex(index, 1));
@@ -1422,26 +1421,26 @@
      * content of this buffer is mutable then modifications to one buffer will
      * cause the other to be modified.  The new buffer's capacity will be that
      * of this buffer, its position will be
-     * <tt>position()</tt>&nbsp;+&nbsp;<tt>start</tt>, and its limit will be
-     * <tt>position()</tt>&nbsp;+&nbsp;<tt>end</tt>.  The new buffer will be
+     * {@code position()}&nbsp;+&nbsp;{@code start}, and its limit will be
+     * {@code position()}&nbsp;+&nbsp;{@code end}.  The new buffer will be
      * direct if, and only if, this buffer is direct, and it will be read-only
      * if, and only if, this buffer is read-only.  </p>
      *
      * @param  start
      *         The index, relative to the current position, of the first
      *         character in the subsequence; must be non-negative and no larger
-     *         than <tt>remaining()</tt>
+     *         than {@code remaining()}
      *
      * @param  end
      *         The index, relative to the current position, of the character
      *         following the last character in the subsequence; must be no
-     *         smaller than <tt>start</tt> and no larger than
-     *         <tt>remaining()</tt>
+     *         smaller than {@code start} and no larger than
+     *         {@code remaining()}
      *
      * @return  The new character buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on <tt>start</tt> and <tt>end</tt>
+     *          If the preconditions on {@code start} and {@code end}
      *          do not hold
      */
     public abstract CharBuffer subSequence(int start, int end);
@@ -1453,21 +1452,21 @@
      * Appends the specified character sequence  to this
      * buffer&nbsp;&nbsp;<i>(optional operation)</i>.
      *
-     * <p> An invocation of this method of the form <tt>dst.append(csq)</tt>
+     * <p> An invocation of this method of the form {@code dst.append(csq)}
      * behaves in exactly the same way as the invocation
      *
      * <pre>
      *     dst.put(csq.toString()) </pre>
      *
-     * <p> Depending on the specification of <tt>toString</tt> for the
-     * character sequence <tt>csq</tt>, the entire sequence may not be
+     * <p> Depending on the specification of {@code toString} for the
+     * character sequence {@code csq}, the entire sequence may not be
      * appended.  For instance, invoking the {@link $Type$Buffer#toString()
      * toString} method of a character buffer will return a subsequence whose
      * content depends upon the buffer's position and limit.
      *
      * @param  csq
-     *         The character sequence to append.  If <tt>csq</tt> is
-     *         <tt>null</tt>, then the four characters <tt>"null"</tt> are
+     *         The character sequence to append.  If {@code csq} is
+     *         {@code null}, then the four characters {@code "null"} are
      *         appended to this character buffer.
      *
      * @return  This buffer
@@ -1491,8 +1490,8 @@
      * Appends a subsequence of the  specified character sequence  to this
      * buffer&nbsp;&nbsp;<i>(optional operation)</i>.
      *
-     * <p> An invocation of this method of the form <tt>dst.append(csq, start,
-     * end)</tt> when <tt>csq</tt> is not <tt>null</tt>, behaves in exactly the
+     * <p> An invocation of this method of the form {@code dst.append(csq, start,
+     * end)} when {@code csq} is not {@code null}, behaves in exactly the
      * same way as the invocation
      *
      * <pre>
@@ -1500,9 +1499,9 @@
      *
      * @param  csq
      *         The character sequence from which a subsequence will be
-     *         appended.  If <tt>csq</tt> is <tt>null</tt>, then characters
-     *         will be appended as if <tt>csq</tt> contained the four
-     *         characters <tt>"null"</tt>.
+     *         appended.  If {@code csq} is {@code null}, then characters
+     *         will be appended as if {@code csq} contained the four
+     *         characters {@code "null"}.
      *
      * @return  This buffer
      *
@@ -1510,9 +1509,9 @@
      *          If there is insufficient space in this buffer
      *
      * @throws  IndexOutOfBoundsException
-     *          If <tt>start</tt> or <tt>end</tt> are negative, <tt>start</tt>
-     *          is greater than <tt>end</tt>, or <tt>end</tt> is greater than
-     *          <tt>csq.length()</tt>
+     *          If {@code start} or {@code end} are negative, {@code start}
+     *          is greater than {@code end}, or {@code end} is greater than
+     *          {@code csq.length()}
      *
      * @throws  ReadOnlyBufferException
      *          If this buffer is read-only
@@ -1528,7 +1527,7 @@
      * Appends the specified $type$  to this
      * buffer&nbsp;&nbsp;<i>(optional operation)</i>.
      *
-     * <p> An invocation of this method of the form <tt>dst.append($x$)</tt>
+     * <p> An invocation of this method of the form {@code dst.append($x$)}
      * behaves in exactly the same way as the invocation
      *
      * <pre>
@@ -1562,7 +1561,7 @@
      * Retrieves this buffer's byte order.
      *
      * <p> The byte order of $a$ $type$ buffer created by allocation or by
-     * wrapping an existing <tt>$type$</tt> array is the {@link
+     * wrapping an existing {@code $type$} array is the {@link
      * 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
--- a/src/java.base/share/classes/java/nio/channels/AsynchronousByteChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/AsynchronousByteChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -70,13 +70,13 @@
      * {@code 0} without initiating an I/O operation.
      *
      * <p> Suppose that a byte sequence of length <i>n</i> is read, where
-     * <tt>0</tt>&nbsp;<tt>&lt;</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;<i>r</i>.
+     * {@code 0}&nbsp;{@code <}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;<i>r</i>.
      * This byte sequence will be transferred into the buffer so that the first
      * byte in the sequence is at index <i>p</i> and the last byte is at index
-     * <i>p</i>&nbsp;<tt>+</tt>&nbsp;<i>n</i>&nbsp;<tt>-</tt>&nbsp;<tt>1</tt>,
+     * <i>p</i>&nbsp;{@code +}&nbsp;<i>n</i>&nbsp;{@code -}&nbsp;{@code 1},
      * where <i>p</i> is the buffer's position at the moment the read is
      * performed. Upon completion the buffer's position will be equal to
-     * <i>p</i>&nbsp;<tt>+</tt>&nbsp;<i>n</i>; its limit will not have changed.
+     * <i>p</i>&nbsp;{@code +}&nbsp;<i>n</i>; its limit will not have changed.
      *
      * <p> Buffers are not safe for use by multiple concurrent threads so care
      * should be taken to not access the buffer until the operation has
@@ -151,13 +151,13 @@
      * {@code 0} without initiating an I/O operation.
      *
      * <p> Suppose that a byte sequence of length <i>n</i> is written, where
-     * <tt>0</tt>&nbsp;<tt>&lt;</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;<i>r</i>.
+     * {@code 0}&nbsp;{@code <}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;<i>r</i>.
      * This byte sequence will be transferred from the buffer starting at index
      * <i>p</i>, where <i>p</i> is the buffer's position at the moment the
      * write is performed; the index of the last byte written will be
-     * <i>p</i>&nbsp;<tt>+</tt>&nbsp;<i>n</i>&nbsp;<tt>-</tt>&nbsp;<tt>1</tt>.
+     * <i>p</i>&nbsp;{@code +}&nbsp;<i>n</i>&nbsp;{@code -}&nbsp;{@code 1}.
      * Upon completion the buffer's position will be equal to
-     * <i>p</i>&nbsp;<tt>+</tt>&nbsp;<i>n</i>; its limit will not have changed.
+     * <i>p</i>&nbsp;{@code +}&nbsp;<i>n</i>; its limit will not have changed.
      *
      * <p> Buffers are not safe for use by multiple concurrent threads so care
      * should be taken to not access the buffer until the operation has
--- a/src/java.base/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -41,7 +41,7 @@
  * by invoking the {@link #bind(SocketAddress,int) bind} method. Once bound,
  * the {@link #accept(Object,CompletionHandler) accept} method
  * is used to initiate the accepting of connections to the channel's socket.
- * An attempt to invoke the <tt>accept</tt> method on an unbound channel will
+ * An attempt to invoke the {@code accept} method on an unbound channel will
  * cause a {@link NotYetBoundException} to be thrown.
  *
  * <p> Channels of this type are safe for use by multiple concurrent threads
@@ -122,13 +122,13 @@
      * java.nio.channels.spi.AsynchronousChannelProvider#openAsynchronousServerSocketChannel
      * openAsynchronousServerSocketChannel} method on the {@link
      * java.nio.channels.spi.AsynchronousChannelProvider} object that created
-     * the given group. If the group parameter is <tt>null</tt> then the
+     * the given group. If the group parameter is {@code null} then the
      * resulting channel is created by the system-wide default provider, and
      * bound to the <em>default group</em>.
      *
      * @param   group
      *          The group to which the newly constructed channel should be bound,
-     *          or <tt>null</tt> for the default group
+     *          or {@code null} for the default group
      *
      * @return  A new asynchronous server socket channel
      *
@@ -176,7 +176,7 @@
      * </pre></blockquote>
      *
      * @param   local
-     *          The local address to bind the socket, or <tt>null</tt> to bind
+     *          The local address to bind the socket, or {@code null} to bind
      *          to an automatically assigned socket address
      *
      * @return  This channel
--- a/src/java.base/share/classes/java/nio/channels/AsynchronousSocketChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/AsynchronousSocketChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -452,11 +452,11 @@
      * at the moment that the read is attempted.
      *
      * <p> Suppose that a byte sequence of length <i>n</i> is read, where
-     * <tt>0</tt>&nbsp;<tt>&lt;</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;<i>r</i>.
-     * Up to the first <tt>dsts[offset].remaining()</tt> bytes of this sequence
-     * are transferred into buffer <tt>dsts[offset]</tt>, up to the next
-     * <tt>dsts[offset+1].remaining()</tt> bytes are transferred into buffer
-     * <tt>dsts[offset+1]</tt>, and so forth, until the entire byte sequence
+     * {@code 0}&nbsp;{@code <}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;<i>r</i>.
+     * Up to the first {@code dsts[offset].remaining()} bytes of this sequence
+     * are transferred into buffer {@code dsts[offset]}, up to the next
+     * {@code dsts[offset+1].remaining()} bytes are transferred into buffer
+     * {@code dsts[offset+1]}, and so forth, until the entire byte sequence
      * is transferred into the given buffers.  As many bytes as possible are
      * transferred into each buffer, hence the final position of each updated
      * buffer, except the last updated buffer, is guaranteed to be equal to
@@ -606,11 +606,11 @@
      * at the moment that the write is attempted.
      *
      * <p> Suppose that a byte sequence of length <i>n</i> is written, where
-     * <tt>0</tt>&nbsp;<tt>&lt;</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;<i>r</i>.
-     * Up to the first <tt>srcs[offset].remaining()</tt> bytes of this sequence
-     * are written from buffer <tt>srcs[offset]</tt>, up to the next
-     * <tt>srcs[offset+1].remaining()</tt> bytes are written from buffer
-     * <tt>srcs[offset+1]</tt>, and so forth, until the entire byte sequence is
+     * {@code 0}&nbsp;{@code <}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;<i>r</i>.
+     * Up to the first {@code srcs[offset].remaining()} bytes of this sequence
+     * are written from buffer {@code srcs[offset]}, up to the next
+     * {@code srcs[offset+1].remaining()} bytes are written from buffer
+     * {@code srcs[offset+1]}, and so forth, until the entire byte sequence is
      * written.  As many bytes as possible are written from each buffer, hence
      * the final position of each updated buffer, except the last updated
      * buffer, is guaranteed to be equal to that buffer's limit. The underlying
--- a/src/java.base/share/classes/java/nio/channels/Channel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/Channel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -58,7 +58,7 @@
     /**
      * Tells whether or not this channel is open.
      *
-     * @return <tt>true</tt> if, and only if, this channel is open
+     * @return {@code true} if, and only if, this channel is open
      */
     public boolean isOpen();
 
--- a/src/java.base/share/classes/java/nio/channels/DatagramChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/DatagramChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -187,8 +187,8 @@
      * operations.
      *
      * <p> Datagram channels support reading and writing, so this method
-     * returns <tt>(</tt>{@link SelectionKey#OP_READ} <tt>|</tt>&nbsp;{@link
-     * SelectionKey#OP_WRITE}<tt>)</tt>.  </p>
+     * returns {@code (}{@link SelectionKey#OP_READ} {@code |}&nbsp;{@link
+     * SelectionKey#OP_WRITE}{@code )}.
      *
      * @return  The valid-operation set
      */
@@ -341,7 +341,7 @@
      * copied into the given byte buffer and its source address is returned.
      * If this channel is in non-blocking mode and a datagram is not
      * immediately available then this method immediately returns
-     * <tt>null</tt>.
+     * {@code null}.
      *
      * <p> The datagram is transferred into the given byte buffer starting at
      * its current position, as if by a regular {@link
@@ -371,7 +371,7 @@
      *         The buffer into which the datagram is to be transferred
      *
      * @return  The datagram's source address,
-     *          or <tt>null</tt> if this channel is in non-blocking mode
+     *          or {@code null} if this channel is in non-blocking mode
      *          and no datagram was immediately available
      *
      * @throws  ClosedChannelException
--- a/src/java.base/share/classes/java/nio/channels/FileChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/FileChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -63,7 +63,7 @@
  *
  *   <li><p> A region of a file may be {@link #map <i>mapped</i>}
  *   directly into memory; for large files this is often much more efficient
- *   than invoking the usual <tt>read</tt> or <tt>write</tt> methods.
+ *   than invoking the usual {@code read} or {@code write} methods.
  *   </p></li>
  *
  *   <li><p> Updates made to a file may be {@link #force <i>forced
@@ -107,10 +107,10 @@
  * existing {@link java.io.FileInputStream#getChannel FileInputStream}, {@link
  * java.io.FileOutputStream#getChannel FileOutputStream}, or {@link
  * java.io.RandomAccessFile#getChannel RandomAccessFile} object by invoking
- * that object's <tt>getChannel</tt> method, which returns a file channel that
+ * that object's {@code getChannel} method, which returns a file channel that
  * is connected to the same underlying file. Where the file channel is obtained
  * from an existing stream or random access file then the state of the file
- * channel is intimately connected to that of the object whose <tt>getChannel</tt>
+ * channel is intimately connected to that of the object whose {@code getChannel}
  * method returned the channel.  Changing the channel's position, whether
  * explicitly or by reading or writing bytes, will change the file position of
  * the originating object, and vice versa. Changing the file's length via the
@@ -128,14 +128,14 @@
  * writing.  Finally, a channel obtained via the {@link
  * java.io.RandomAccessFile#getChannel getChannel} method of a {@link
  * java.io.RandomAccessFile} instance will be open for reading if the instance
- * was created with mode <tt>"r"</tt> and will be open for reading and writing
- * if the instance was created with mode <tt>"rw"</tt>.
+ * was created with mode {@code "r"} and will be open for reading and writing
+ * if the instance was created with mode {@code "rw"}.
  *
  * <a name="append-mode"></a><p> A file channel that is open for writing may be in
  * <i>append mode</i>, for example if it was obtained from a file-output stream
  * that was created by invoking the {@link
  * java.io.FileOutputStream#FileOutputStream(java.io.File,boolean)
- * FileOutputStream(File,boolean)} constructor and passing <tt>true</tt> for
+ * FileOutputStream(File,boolean)} constructor and passing {@code true} for
  * the second parameter.  In this mode each invocation of a relative write
  * operation first advances the position to the end of the file and then writes
  * the requested data.  Whether the advancement of the position and the writing
@@ -516,10 +516,10 @@
      * <p> If the file does not reside on a local device then no such guarantee
      * is made.
      *
-     * <p> The <tt>metaData</tt> parameter can be used to limit the number of
+     * <p> The {@code metaData} parameter can be used to limit the number of
      * I/O operations that this method is required to perform.  Passing
-     * <tt>false</tt> for this parameter indicates that only updates to the
-     * file's content need be written to storage; passing <tt>true</tt>
+     * {@code false} for this parameter indicates that only updates to the
+     * file's content need be written to storage; passing {@code true}
      * indicates that updates to both the file's content and metadata must be
      * written, which generally requires at least one more I/O operation.
      * Whether this parameter actually has any effect is dependent upon the
@@ -540,7 +540,7 @@
      * force changes made to the buffer's content to be written.  </p>
      *
      * @param   metaData
-     *          If <tt>true</tt> then this method is required to force changes
+     *          If {@code true} then this method is required to force changes
      *          to both the file's content and metadata to be written to
      *          storage; otherwise, it need only force content changes to be
      *          written
@@ -557,14 +557,14 @@
      * Transfers bytes from this channel's file to the given writable byte
      * channel.
      *
-     * <p> An attempt is made to read up to <tt>count</tt> bytes starting at
-     * the given <tt>position</tt> in this channel's file and write them to the
+     * <p> An attempt is made to read up to {@code count} bytes starting at
+     * the given {@code position} in this channel's file and write them to the
      * target channel.  An invocation of this method may or may not transfer
      * all of the requested bytes; whether or not it does so depends upon the
      * natures and states of the channels.  Fewer than the requested number of
      * bytes are transferred if this channel's file contains fewer than
-     * <tt>count</tt> bytes starting at the given <tt>position</tt>, or if the
-     * target channel is non-blocking and it has fewer than <tt>count</tt>
+     * {@code count} bytes starting at the given {@code position}, or if the
+     * target channel is non-blocking and it has fewer than {@code count}
      * bytes free in its output buffer.
      *
      * <p> This method does not modify this channel's position.  If the given
@@ -624,14 +624,14 @@
      * Transfers bytes into this channel's file from the given readable byte
      * channel.
      *
-     * <p> An attempt is made to read up to <tt>count</tt> bytes from the
+     * <p> An attempt is made to read up to {@code count} bytes from the
      * source channel and write them to this channel's file starting at the
-     * given <tt>position</tt>.  An invocation of this method may or may not
+     * given {@code position}.  An invocation of this method may or may not
      * transfer all of the requested bytes; whether or not it does so depends
      * upon the natures and states of the channels.  Fewer than the requested
      * number of bytes will be transferred if the source channel has fewer than
-     * <tt>count</tt> bytes remaining, or if the source channel is non-blocking
-     * and has fewer than <tt>count</tt> bytes immediately available in its
+     * {@code count} bytes remaining, or if the source channel is non-blocking
+     * and has fewer than {@code count} bytes immediately available in its
      * input buffer.
      *
      * <p> This method does not modify this channel's position.  If the given
@@ -704,7 +704,7 @@
      *         The file position at which the transfer is to begin;
      *         must be non-negative
      *
-     * @return  The number of bytes read, possibly zero, or <tt>-1</tt> if the
+     * @return  The number of bytes read, possibly zero, or {@code -1} if the
      *          given position is greater than or equal to the file's current
      *          size
      *
@@ -855,7 +855,7 @@
      *
      * <p> The {@link MappedByteBuffer <i>mapped byte buffer</i>}
      * returned by this method will have a position of zero and a limit and
-     * capacity of <tt>size</tt>; its mark will be undefined.  The buffer and
+     * capacity of {@code size}; its mark will be undefined.  The buffer and
      * the mapping that it represents will remain valid until the buffer itself
      * is garbage-collected.
      *
@@ -895,11 +895,11 @@
      * @return  The mapped byte buffer
      *
      * @throws NonReadableChannelException
-     *         If the <tt>mode</tt> is {@link MapMode#READ_ONLY READ_ONLY} but
+     *         If the {@code mode} is {@link MapMode#READ_ONLY READ_ONLY} but
      *         this channel was not opened for reading
      *
      * @throws NonWritableChannelException
-     *         If the <tt>mode</tt> is {@link MapMode#READ_WRITE READ_WRITE} or
+     *         If the {@code mode} is {@link MapMode#READ_WRITE READ_WRITE} or
      *         {@link MapMode#PRIVATE PRIVATE} but this channel was not opened
      *         for both reading and writing
      *
@@ -936,7 +936,7 @@
      * will be thrown immediately; the thread's interrupt status will not be
      * changed.
      *
-     * <p> The region specified by the <tt>position</tt> and <tt>size</tt>
+     * <p> The region specified by the {@code position} and {@code size}
      * parameters need not be contained within, or even overlap, the actual
      * underlying file.  Lock regions are fixed in size; if a locked region
      * initially contains the end of the file and the file grows beyond the
@@ -963,12 +963,12 @@
      *
      * @param  size
      *         The size of the locked region; must be non-negative, and the sum
-     *         <tt>position</tt>&nbsp;+&nbsp;<tt>size</tt> must be non-negative
+     *         {@code position}&nbsp;+&nbsp;{@code size} must be non-negative
      *
      * @param  shared
-     *         <tt>true</tt> to request a shared lock, in which case this
+     *         {@code true} to request a shared lock, in which case this
      *         channel must be open for reading (and possibly writing);
-     *         <tt>false</tt> to request an exclusive lock, in which case this
+     *         {@code false} to request an exclusive lock, in which case this
      *         channel must be open for writing (and possibly reading)
      *
      * @return  A lock object representing the newly-acquired lock
@@ -994,11 +994,11 @@
      *          region
      *
      * @throws  NonReadableChannelException
-     *          If <tt>shared</tt> is <tt>true</tt> this channel was not
+     *          If {@code shared} is {@code true} this channel was not
      *          opened for reading
      *
      * @throws  NonWritableChannelException
-     *          If <tt>shared</tt> is <tt>false</tt> but this channel was not
+     *          If {@code shared} is {@code false} but this channel was not
      *          opened for writing
      *
      * @throws  IOException
@@ -1014,7 +1014,7 @@
     /**
      * Acquires an exclusive lock on this channel's file.
      *
-     * <p> An invocation of this method of the form <tt>fc.lock()</tt> behaves
+     * <p> An invocation of this method of the form {@code fc.lock()} behaves
      * in exactly the same way as the invocation
      *
      * <pre>
@@ -1060,10 +1060,10 @@
      * immediately, either having acquired a lock on the requested region or
      * having failed to do so.  If it fails to acquire a lock because an
      * overlapping lock is held by another program then it returns
-     * <tt>null</tt>.  If it fails to acquire a lock for any other reason then
+     * {@code null}.  If it fails to acquire a lock for any other reason then
      * an appropriate exception is thrown.
      *
-     * <p> The region specified by the <tt>position</tt> and <tt>size</tt>
+     * <p> The region specified by the {@code position} and {@code size}
      * parameters need not be contained within, or even overlap, the actual
      * underlying file.  Lock regions are fixed in size; if a locked region
      * initially contains the end of the file and the file grows beyond the
@@ -1090,14 +1090,14 @@
      *
      * @param  size
      *         The size of the locked region; must be non-negative, and the sum
-     *         <tt>position</tt>&nbsp;+&nbsp;<tt>size</tt> must be non-negative
+     *         {@code position}&nbsp;+&nbsp;{@code size} must be non-negative
      *
      * @param  shared
-     *         <tt>true</tt> to request a shared lock,
-     *         <tt>false</tt> to request an exclusive lock
+     *         {@code true} to request a shared lock,
+     *         {@code false} to request an exclusive lock
      *
      * @return  A lock object representing the newly-acquired lock,
-     *          or <tt>null</tt> if the lock could not be acquired
+     *          or {@code null} if the lock could not be acquired
      *          because another program holds an overlapping lock
      *
      * @throws  IllegalArgumentException
@@ -1125,14 +1125,14 @@
     /**
      * Attempts to acquire an exclusive lock on this channel's file.
      *
-     * <p> An invocation of this method of the form <tt>fc.tryLock()</tt>
+     * <p> An invocation of this method of the form {@code fc.tryLock()}
      * behaves in exactly the same way as the invocation
      *
      * <pre>
      *     fc.{@link #tryLock(long,long,boolean) tryLock}(0L, Long.MAX_VALUE, false) </pre>
      *
      * @return  A lock object representing the newly-acquired lock,
-     *          or <tt>null</tt> if the lock could not be acquired
+     *          or {@code null} if the lock could not be acquired
      *          because another program holds an overlapping lock
      *
      * @throws  ClosedChannelException
--- a/src/java.base/share/classes/java/nio/channels/FileLock.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/FileLock.java	Mon Aug 17 10:12:16 2015 -0700
@@ -136,11 +136,11 @@
      *
      * @param  size
      *         The size of the locked region; must be non-negative, and the sum
-     *         <tt>position</tt>&nbsp;+&nbsp;<tt>size</tt> must be non-negative
+     *         {@code position}&nbsp;+&nbsp;{@code size} must be non-negative
      *
      * @param  shared
-     *         <tt>true</tt> if this lock is shared,
-     *         <tt>false</tt> if it is exclusive
+     *         {@code true} if this lock is shared,
+     *         {@code false} if it is exclusive
      *
      * @throws IllegalArgumentException
      *         If the preconditions on the parameters do not hold
@@ -173,11 +173,11 @@
      *
      * @param  size
      *         The size of the locked region; must be non-negative, and the sum
-     *         <tt>position</tt>&nbsp;+&nbsp;<tt>size</tt> must be non-negative
+     *         {@code position}&nbsp;+&nbsp;{@code size} must be non-negative
      *
      * @param  shared
-     *         <tt>true</tt> if this lock is shared,
-     *         <tt>false</tt> if it is exclusive
+     *         {@code true} if this lock is shared,
+     *         {@code false} if it is exclusive
      *
      * @throws IllegalArgumentException
      *         If the preconditions on the parameters do not hold
@@ -254,8 +254,8 @@
     /**
      * Tells whether this lock is shared.
      *
-     * @return <tt>true</tt> if lock is shared,
-     *         <tt>false</tt> if it is exclusive
+     * @return {@code true} if lock is shared,
+     *         {@code false} if it is exclusive
      */
     public final boolean isShared() {
         return shared;
@@ -269,7 +269,7 @@
      * @param   size
      *          The size of the lock range
      *
-     * @return  <tt>true</tt> if, and only if, this lock and the given lock
+     * @return  {@code true} if, and only if, this lock and the given lock
      *          range overlap by at least one byte
      */
     public final boolean overlaps(long position, long size) {
@@ -286,7 +286,7 @@
      * <p> A lock object remains valid until it is released or the associated
      * file channel is closed, whichever comes first.  </p>
      *
-     * @return  <tt>true</tt> if, and only if, this lock is valid
+     * @return  {@code true} if, and only if, this lock is valid
      */
     public abstract boolean isValid();
 
--- a/src/java.base/share/classes/java/nio/channels/GatheringByteChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/GatheringByteChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -66,11 +66,11 @@
      * at the moment that this method is invoked.
      *
      * <p> Suppose that a byte sequence of length <i>n</i> is written, where
-     * <tt>0</tt>&nbsp;<tt>&lt;=</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;<i>r</i>.
-     * Up to the first <tt>srcs[offset].remaining()</tt> bytes of this sequence
-     * are written from buffer <tt>srcs[offset]</tt>, up to the next
-     * <tt>srcs[offset+1].remaining()</tt> bytes are written from buffer
-     * <tt>srcs[offset+1]</tt>, and so forth, until the entire byte sequence is
+     * {@code 0}&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;<i>r</i>.
+     * Up to the first {@code srcs[offset].remaining()} bytes of this sequence
+     * are written from buffer {@code srcs[offset]}, up to the next
+     * {@code srcs[offset+1].remaining()} bytes are written from buffer
+     * {@code srcs[offset+1]}, and so forth, until the entire byte sequence is
      * written.  As many bytes as possible are written from each buffer, hence
      * the final position of each updated buffer, except the last updated
      * buffer, is guaranteed to be equal to that buffer's limit.
@@ -92,17 +92,17 @@
      * @param  offset
      *         The offset within the buffer array of the first buffer from
      *         which bytes are to be retrieved; must be non-negative and no
-     *         larger than <tt>srcs.length</tt>
+     *         larger than {@code srcs.length}
      *
      * @param  length
      *         The maximum number of buffers to be accessed; must be
      *         non-negative and no larger than
-     *         <tt>srcs.length</tt>&nbsp;-&nbsp;<tt>offset</tt>
+     *         {@code srcs.length}&nbsp;-&nbsp;{@code offset}
      *
      * @return  The number of bytes written, possibly zero
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on the <tt>offset</tt> and <tt>length</tt>
+     *          If the preconditions on the {@code offset} and {@code length}
      *          parameters do not hold
      *
      * @throws  NonWritableChannelException
@@ -131,7 +131,7 @@
     /**
      * Writes a sequence of bytes to this channel from the given buffers.
      *
-     * <p> An invocation of this method of the form <tt>c.write(srcs)</tt>
+     * <p> An invocation of this method of the form {@code c.write(srcs)}
      * behaves in exactly the same manner as the invocation
      *
      * <blockquote><pre>
--- a/src/java.base/share/classes/java/nio/channels/InterruptibleChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/InterruptibleChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -54,7 +54,7 @@
  *
  * <p> A channel supports asynchronous closing and interruption if, and only
  * if, it implements this interface.  This can be tested at runtime, if
- * necessary, via the <tt>instanceof</tt> operator.
+ * necessary, via the {@code instanceof} operator.
  *
  *
  * @author Mark Reinhold
--- a/src/java.base/share/classes/java/nio/channels/ReadableByteChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/ReadableByteChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -52,16 +52,16 @@
      *
      * <p> An attempt is made to read up to <i>r</i> bytes from the channel,
      * where <i>r</i> is the number of bytes remaining in the buffer, that is,
-     * <tt>dst.remaining()</tt>, at the moment this method is invoked.
+     * {@code dst.remaining()}, at the moment this method is invoked.
      *
      * <p> Suppose that a byte sequence of length <i>n</i> is read, where
-     * <tt>0</tt>&nbsp;<tt>&lt;=</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;<i>r</i>.
+     * {@code 0}&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;<i>r</i>.
      * This byte sequence will be transferred into the buffer so that the first
      * byte in the sequence is at index <i>p</i> and the last byte is at index
-     * <i>p</i>&nbsp;<tt>+</tt>&nbsp;<i>n</i>&nbsp;<tt>-</tt>&nbsp;<tt>1</tt>,
+     * <i>p</i>&nbsp;{@code +}&nbsp;<i>n</i>&nbsp;{@code -}&nbsp;{@code 1},
      * where <i>p</i> is the buffer's position at the moment this method is
      * invoked.  Upon return the buffer's position will be equal to
-     * <i>p</i>&nbsp;<tt>+</tt>&nbsp;<i>n</i>; its limit will not have changed.
+     * <i>p</i>&nbsp;{@code +}&nbsp;<i>n</i>; its limit will not have changed.
      *
      * <p> A read operation might not fill the buffer, and in fact it might not
      * read any bytes at all.  Whether or not it does so depends upon the
@@ -81,7 +81,7 @@
      * @param  dst
      *         The buffer into which bytes are to be transferred
      *
-     * @return  The number of bytes read, possibly zero, or <tt>-1</tt> if the
+     * @return  The number of bytes read, possibly zero, or {@code -1} if the
      *          channel has reached end-of-stream
      *
      * @throws  NonReadableChannelException
--- a/src/java.base/share/classes/java/nio/channels/ScatteringByteChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/ScatteringByteChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -66,11 +66,11 @@
      * at the moment that this method is invoked.
      *
      * <p> Suppose that a byte sequence of length <i>n</i> is read, where
-     * <tt>0</tt>&nbsp;<tt>&lt;=</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;<i>r</i>.
-     * Up to the first <tt>dsts[offset].remaining()</tt> bytes of this sequence
-     * are transferred into buffer <tt>dsts[offset]</tt>, up to the next
-     * <tt>dsts[offset+1].remaining()</tt> bytes are transferred into buffer
-     * <tt>dsts[offset+1]</tt>, and so forth, until the entire byte sequence
+     * {@code 0}&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;<i>r</i>.
+     * Up to the first {@code dsts[offset].remaining()} bytes of this sequence
+     * are transferred into buffer {@code dsts[offset]}, up to the next
+     * {@code dsts[offset+1].remaining()} bytes are transferred into buffer
+     * {@code dsts[offset+1]}, and so forth, until the entire byte sequence
      * is transferred into the given buffers.  As many bytes as possible are
      * transferred into each buffer, hence the final position of each updated
      * buffer, except the last updated buffer, is guaranteed to be equal to
@@ -87,18 +87,18 @@
      * @param  offset
      *         The offset within the buffer array of the first buffer into
      *         which bytes are to be transferred; must be non-negative and no
-     *         larger than <tt>dsts.length</tt>
+     *         larger than {@code dsts.length}
      *
      * @param  length
      *         The maximum number of buffers to be accessed; must be
      *         non-negative and no larger than
-     *         <tt>dsts.length</tt>&nbsp;-&nbsp;<tt>offset</tt>
+     *         {@code dsts.length}&nbsp;-&nbsp;{@code offset}
      *
      * @return The number of bytes read, possibly zero,
-     *         or <tt>-1</tt> if the channel has reached end-of-stream
+     *         or {@code -1} if the channel has reached end-of-stream
      *
      * @throws  IndexOutOfBoundsException
-     *          If the preconditions on the <tt>offset</tt> and <tt>length</tt>
+     *          If the preconditions on the {@code offset} and {@code length}
      *          parameters do not hold
      *
      * @throws  NonReadableChannelException
@@ -126,7 +126,7 @@
     /**
      * Reads a sequence of bytes from this channel into the given buffers.
      *
-     * <p> An invocation of this method of the form <tt>c.read(dsts)</tt>
+     * <p> An invocation of this method of the form {@code c.read(dsts)}
      * behaves in exactly the same manner as the invocation
      *
      * <blockquote><pre>
@@ -136,7 +136,7 @@
      *         The buffers into which bytes are to be transferred
      *
      * @return The number of bytes read, possibly zero,
-     *         or <tt>-1</tt> if the channel has reached end-of-stream
+     *         or {@code -1} if the channel has reached end-of-stream
      *
      * @throws  NonReadableChannelException
      *          If this channel was not opened for reading
--- a/src/java.base/share/classes/java/nio/channels/SelectableChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/SelectableChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -132,7 +132,7 @@
      * of its keys have been cancelled.  A channel may also remain registered
      * for some time after it is closed.  </p>
      *
-     * @return <tt>true</tt> if, and only if, this channel is registered
+     * @return {@code true} if, and only if, this channel is registered
      */
     public abstract boolean isRegistered();
     //
@@ -146,7 +146,7 @@
      *          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
+     *          given selector, or {@code null} if this channel is not
      *          currently registered with that selector
      */
     public abstract SelectionKey keyFor(Selector sel);
@@ -159,16 +159,16 @@
      *
      * <p> If this channel is currently registered with the given selector then
      * the selection key representing that registration is returned.  The key's
-     * interest set will have been changed to <tt>ops</tt>, as if by invoking
+     * interest set will have been changed to {@code ops}, as if by invoking
      * the {@link SelectionKey#interestOps(int) interestOps(int)} method.  If
-     * the <tt>att</tt> argument is not <tt>null</tt> then the key's attachment
+     * the {@code att} argument is not {@code null} then the key's attachment
      * will have been set to that value.  A {@link CancelledKeyException} will
      * be thrown if the key has already been cancelled.
      *
      * <p> Otherwise this channel has not yet been registered with the given
      * selector, so it is registered and the resulting new key is returned.
-     * The key's initial interest set will be <tt>ops</tt> and its attachment
-     * will be <tt>att</tt>.
+     * The key's initial interest set will be {@code ops} and its attachment
+     * will be {@code att}.
      *
      * <p> This method may be invoked at any time.  If this method is invoked
      * while another invocation of this method or of the {@link
@@ -189,7 +189,7 @@
      *         The interest set for the resulting key
      *
      * @param  att
-     *         The attachment for the resulting key; may be <tt>null</tt>
+     *         The attachment for the resulting key; may be {@code null}
      *
      * @throws  ClosedChannelException
      *          If this channel is closed
@@ -209,7 +209,7 @@
      *          but the corresponding key has already been cancelled
      *
      * @throws  IllegalArgumentException
-     *          If a bit in the <tt>ops</tt> set does not correspond to an
+     *          If a bit in the {@code ops} set does not correspond to an
      *          operation that is supported by this channel, that is, if
      *          {@code set & ~validOps() != 0}
      *
@@ -235,13 +235,13 @@
      *
      * <p> An invocation of this convenience method of the form
      *
-     * <blockquote><tt>sc.register(sel, ops)</tt></blockquote>
+     * <blockquote>{@code sc.register(sel, ops)}</blockquote>
      *
      * behaves in exactly the same way as the invocation
      *
-     * <blockquote><tt>sc.{@link
+     * <blockquote>{@code sc.}{@link
      * #register(java.nio.channels.Selector,int,java.lang.Object)
-     * register}(sel, ops, null)</tt></blockquote>
+     * register(sel, ops, null)}</blockquote>
      *
      * @param  sel
      *         The selector with which this channel is to be registered
@@ -267,7 +267,7 @@
      *          but the corresponding key has already been cancelled
      *
      * @throws  IllegalArgumentException
-     *          If a bit in <tt>ops</tt> does not correspond to an operation
+     *          If a bit in {@code ops} does not correspond to an operation
      *          that is supported by this channel, that is, if {@code set &
      *          ~validOps() != 0}
      *
@@ -296,8 +296,8 @@
      * of the {@link #register(Selector, int) register} method is in progress
      * then it will first block until the other operation is complete. </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
+     * @param  block  If {@code true} then this channel will be placed in
+     *                blocking mode; if {@code false} then it will be placed
      *                non-blocking mode
      *
      * @return  This selectable channel
@@ -306,7 +306,7 @@
      *          If this channel is closed
      *
      * @throws  IllegalBlockingModeException
-     *          If <tt>block</tt> is <tt>true</tt> and this channel is
+     *          If {@code block} is {@code true} and this channel is
      *          registered with one or more selectors
      *
      * @throws IOException
@@ -327,7 +327,7 @@
      * <p> If this channel is closed then the value returned by this method is
      * not specified. </p>
      *
-     * @return <tt>true</tt> if, and only if, this channel is in blocking mode
+     * @return {@code true} if, and only if, this channel is in blocking mode
      */
     public abstract boolean isBlocking();
 
--- a/src/java.base/share/classes/java/nio/channels/SelectionKey.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/SelectionKey.java	Mon Aug 17 10:12:16 2015 -0700
@@ -139,7 +139,7 @@
      * <p> A key is valid upon creation and remains so until it is cancelled,
      * its channel is closed, or its selector is closed.  </p>
      *
-     * @return  <tt>true</tt> if, and only if, this key is valid
+     * @return  {@code true} if, and only if, this key is valid
      */
     public abstract boolean isValid();
 
@@ -218,11 +218,11 @@
      * Operation-set bit for read operations.
      *
      * <p> Suppose that a selection key's interest set contains
-     * <tt>OP_READ</tt> at the start of a <a
+     * {@code OP_READ} at the start of a <a
      * href="Selector.html#selop">selection operation</a>.  If the selector
      * detects that the corresponding channel is ready for reading, has reached
      * end-of-stream, has been remotely shut down for further reading, or has
-     * an error pending, then it will add <tt>OP_READ</tt> to the key's
+     * an error pending, then it will add {@code OP_READ} to the key's
      * ready-operation set and add the key to its selected-key&nbsp;set.  </p>
      */
     public static final int OP_READ = 1 << 0;
@@ -231,11 +231,11 @@
      * Operation-set bit for write operations.
      *
      * <p> Suppose that a selection key's interest set contains
-     * <tt>OP_WRITE</tt> at the start of a <a
+     * {@code OP_WRITE} at the start of a <a
      * href="Selector.html#selop">selection operation</a>.  If the selector
      * detects that the corresponding channel is ready for writing, has been
      * remotely shut down for further writing, or has an error pending, then it
-     * will add <tt>OP_WRITE</tt> to the key's ready set and add the key to its
+     * will add {@code OP_WRITE} to the key's ready set and add the key to its
      * selected-key&nbsp;set.  </p>
      */
     public static final int OP_WRITE = 1 << 2;
@@ -244,11 +244,11 @@
      * Operation-set bit for socket-connect operations.
      *
      * <p> Suppose that a selection key's interest set contains
-     * <tt>OP_CONNECT</tt> at the start of a <a
+     * {@code OP_CONNECT} at the start of a <a
      * href="Selector.html#selop">selection operation</a>.  If the selector
      * detects that the corresponding socket channel is ready to complete its
      * connection sequence, or has an error pending, then it will add
-     * <tt>OP_CONNECT</tt> to the key's ready set and add the key to its
+     * {@code OP_CONNECT} to the key's ready set and add the key to its
      * selected-key&nbsp;set.  </p>
      */
     public static final int OP_CONNECT = 1 << 3;
@@ -257,11 +257,11 @@
      * Operation-set bit for socket-accept operations.
      *
      * <p> Suppose that a selection key's interest set contains
-     * <tt>OP_ACCEPT</tt> at the start of a <a
+     * {@code OP_ACCEPT} at the start of a <a
      * href="Selector.html#selop">selection operation</a>.  If the selector
      * detects that the corresponding server-socket channel is ready to accept
      * another connection, or has an error pending, then it will add
-     * <tt>OP_ACCEPT</tt> to the key's ready set and add the key to its
+     * {@code OP_ACCEPT} to the key's ready set and add the key to its
      * selected-key&nbsp;set.  </p>
      */
     public static final int OP_ACCEPT = 1 << 4;
@@ -269,7 +269,7 @@
     /**
      * Tests whether this key's channel is ready for reading.
      *
-     * <p> An invocation of this method of the form <tt>k.isReadable()</tt>
+     * <p> An invocation of this method of the form {@code k.isReadable()}
      * behaves in exactly the same way as the expression
      *
      * <blockquote><pre>{@code
@@ -277,9 +277,9 @@
      * }</pre></blockquote>
      *
      * <p> If this key's channel does not support read operations then this
-     * method always returns <tt>false</tt>.  </p>
+     * method always returns {@code false}.  </p>
      *
-     * @return  <tt>true</tt> if, and only if,
+     * @return  {@code true} if, and only if,
                 {@code readyOps() & OP_READ} is nonzero
      *
      * @throws  CancelledKeyException
@@ -292,7 +292,7 @@
     /**
      * Tests whether this key's channel is ready for writing.
      *
-     * <p> An invocation of this method of the form <tt>k.isWritable()</tt>
+     * <p> An invocation of this method of the form {@code k.isWritable()}
      * behaves in exactly the same way as the expression
      *
      * <blockquote><pre>{@code
@@ -300,9 +300,9 @@
      * }</pre></blockquote>
      *
      * <p> If this key's channel does not support write operations then this
-     * method always returns <tt>false</tt>.  </p>
+     * method always returns {@code false}.  </p>
      *
-     * @return  <tt>true</tt> if, and only if,
+     * @return  {@code true} if, and only if,
      *          {@code readyOps() & OP_WRITE} is nonzero
      *
      * @throws  CancelledKeyException
@@ -316,7 +316,7 @@
      * Tests whether this key's channel has either finished, or failed to
      * finish, its socket-connection operation.
      *
-     * <p> An invocation of this method of the form <tt>k.isConnectable()</tt>
+     * <p> An invocation of this method of the form {@code k.isConnectable()}
      * behaves in exactly the same way as the expression
      *
      * <blockquote><pre>{@code
@@ -324,9 +324,9 @@
      * }</pre></blockquote>
      *
      * <p> If this key's channel does not support socket-connect operations
-     * then this method always returns <tt>false</tt>.  </p>
+     * then this method always returns {@code false}.  </p>
      *
-     * @return  <tt>true</tt> if, and only if,
+     * @return  {@code true} if, and only if,
      *          {@code readyOps() & OP_CONNECT} is nonzero
      *
      * @throws  CancelledKeyException
@@ -340,7 +340,7 @@
      * Tests whether this key's channel is ready to accept a new socket
      * connection.
      *
-     * <p> An invocation of this method of the form <tt>k.isAcceptable()</tt>
+     * <p> An invocation of this method of the form {@code k.isAcceptable()}
      * behaves in exactly the same way as the expression
      *
      * <blockquote><pre>{@code
@@ -348,9 +348,9 @@
      * }</pre></blockquote>
      *
      * <p> If this key's channel does not support socket-accept operations then
-     * this method always returns <tt>false</tt>.  </p>
+     * this method always returns {@code false}.  </p>
      *
-     * @return  <tt>true</tt> if, and only if,
+     * @return  {@code true} if, and only if,
      *          {@code readyOps() & OP_ACCEPT} is nonzero
      *
      * @throws  CancelledKeyException
@@ -376,13 +376,13 @@
      * <p> An attached object may later be retrieved via the {@link #attachment()
      * attachment} method.  Only one object may be attached at a time; invoking
      * this method causes any previous attachment to be discarded.  The current
-     * attachment may be discarded by attaching <tt>null</tt>.  </p>
+     * attachment may be discarded by attaching {@code null}.  </p>
      *
      * @param  ob
-     *         The object to be attached; may be <tt>null</tt>
+     *         The object to be attached; may be {@code null}
      *
      * @return  The previously-attached object, if any,
-     *          otherwise <tt>null</tt>
+     *          otherwise {@code null}
      */
     public final Object attach(Object ob) {
         return attachmentUpdater.getAndSet(this, ob);
@@ -392,7 +392,7 @@
      * Retrieves the current attachment.
      *
      * @return  The object currently attached to this key,
-     *          or <tt>null</tt> if there is no attachment
+     *          or {@code null} if there is no attachment
      */
     public final Object attachment() {
         return attachment;
--- a/src/java.base/share/classes/java/nio/channels/Selector.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/Selector.java	Mon Aug 17 10:12:16 2015 -0700
@@ -230,7 +230,7 @@
     /**
      * Tells whether or not this selector is open.
      *
-     * @return <tt>true</tt> if, and only if, this selector is open
+     * @return {@code true} if, and only if, this selector is open
      */
     public abstract boolean isOpen();
 
@@ -309,7 +309,7 @@
      * <p> This method does not offer real-time guarantees: It schedules the
      * timeout as if by invoking the {@link Object#wait(long)} method. </p>
      *
-     * @param  timeout  If positive, block for up to <tt>timeout</tt>
+     * @param  timeout  If positive, block for up to {@code timeout}
      *                  milliseconds, more or less, while waiting for a
      *                  channel to become ready; if zero, block indefinitely;
      *                  must not be negative
--- a/src/java.base/share/classes/java/nio/channels/ServerSocketChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/ServerSocketChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -223,7 +223,7 @@
      * Accepts a connection made to this channel's socket.
      *
      * <p> If this channel is in non-blocking mode then this method will
-     * immediately return <tt>null</tt> if there are no pending connections.
+     * immediately return {@code null} if there are no pending connections.
      * Otherwise it will block indefinitely until a new connection is available
      * or an I/O error occurs.
      *
@@ -239,7 +239,7 @@
      * java.lang.SecurityManager#checkAccept checkAccept} method.  </p>
      *
      * @return  The socket channel for the new connection,
-     *          or <tt>null</tt> if this channel is in non-blocking mode
+     *          or {@code null} if this channel is in non-blocking mode
      *          and no connection is available to be accepted
      *
      * @throws  ClosedChannelException
--- a/src/java.base/share/classes/java/nio/channels/SocketChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/SocketChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -58,7 +58,7 @@
  * If the input side of a socket is shut down by one thread while another
  * thread is blocked in a read operation on the socket's channel, then the read
  * operation in the blocked thread will complete without reading any bytes and
- * will return <tt>-1</tt>.  If the output side of a socket is shut down by one
+ * will return {@code -1}.  If the output side of a socket is shut down by one
  * thread while another thread is blocked in a write operation on the socket's
  * channel, then the blocked thread will receive an {@link
  * AsynchronousCloseException}.
@@ -150,7 +150,7 @@
      *
      * <p> This convenience method works as if by invoking the {@link #open()}
      * method, invoking the {@link #connect(SocketAddress) connect} method upon
-     * the resulting socket channel, passing it <tt>remote</tt>, and then
+     * the resulting socket channel, passing it {@code remote}, and then
      * returning that channel.  </p>
      *
      * @param  remote
@@ -204,9 +204,9 @@
      * operations.
      *
      * <p> Socket channels support connecting, reading, and writing, so this
-     * method returns <tt>(</tt>{@link SelectionKey#OP_CONNECT}
-     * <tt>|</tt>&nbsp;{@link SelectionKey#OP_READ} <tt>|</tt>&nbsp;{@link
-     * SelectionKey#OP_WRITE}<tt>)</tt>.  </p>
+     * method returns {@code (}{@link SelectionKey#OP_CONNECT}
+     * {@code |}&nbsp;{@link SelectionKey#OP_READ} {@code |}&nbsp;{@link
+     * SelectionKey#OP_WRITE}{@code )}.
      *
      * @return  The valid-operation set
      */
@@ -304,7 +304,7 @@
     /**
      * Tells whether or not this channel's network socket is connected.
      *
-     * @return  <tt>true</tt> if, and only if, this channel's network socket
+     * @return  {@code true} if, and only if, this channel's network socket
      *          is {@link #isOpen open} and connected
      */
     public abstract boolean isConnected();
@@ -313,7 +313,7 @@
      * Tells whether or not a connection operation is in progress on this
      * channel.
      *
-     * @return  <tt>true</tt> if, and only if, a connection operation has been
+     * @return  {@code true} if, and only if, a connection operation has been
      *          initiated on this channel but not yet completed by invoking the
      *          {@link #finishConnect finishConnect} method
      */
@@ -325,8 +325,8 @@
      * <p> If this channel is in non-blocking mode then an invocation of this
      * method initiates a non-blocking connection operation.  If the connection
      * is established immediately, as can happen with a local connection, then
-     * this method returns <tt>true</tt>.  Otherwise this method returns
-     * <tt>false</tt> and the connection operation must later be completed by
+     * this method returns {@code true}.  Otherwise this method returns
+     * {@code false} and the connection operation must later be completed by
      * invoking the {@link #finishConnect finishConnect} method.
      *
      * <p> If this channel is in blocking mode then an invocation of this
@@ -349,8 +349,8 @@
      * @param  remote
      *         The remote address to which this channel is to be connected
      *
-     * @return  <tt>true</tt> if a connection was established,
-     *          <tt>false</tt> if this channel is in non-blocking mode
+     * @return  {@code true} if a connection was established,
+     *          {@code false} if this channel is in non-blocking mode
      *          and the connection operation is in progress
      *
      * @throws  AlreadyConnectedException
@@ -400,11 +400,11 @@
      * {@link java.io.IOException} to be thrown.
      *
      * <p> If this channel is already connected then this method will not block
-     * and will immediately return <tt>true</tt>.  If this channel is in
-     * non-blocking mode then this method will return <tt>false</tt> if the
+     * and will immediately return {@code true}.  If this channel is in
+     * non-blocking mode then this method will return {@code false} if the
      * connection process is not yet complete.  If this channel is in blocking
      * mode then this method will block until the connection either completes
-     * or fails, and will always either return <tt>true</tt> or throw a checked
+     * or fails, and will always either return {@code true} or throw a checked
      * exception describing the failure.
      *
      * <p> This method may be invoked at any time.  If a read or write
@@ -414,7 +414,7 @@
      * invocation of this method throws a checked exception, then the channel
      * will be closed.  </p>
      *
-     * @return  <tt>true</tt> if, and only if, this channel's socket is now
+     * @return  {@code true} if, and only if, this channel's socket is now
      *          connected
      *
      * @throws  NoConnectionPendingException
--- a/src/java.base/share/classes/java/nio/channels/WritableByteChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/WritableByteChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -54,16 +54,16 @@
      *
      * <p> An attempt is made to write up to <i>r</i> bytes to the channel,
      * where <i>r</i> is the number of bytes remaining in the buffer, that is,
-     * <tt>src.remaining()</tt>, at the moment this method is invoked.
+     * {@code src.remaining()}, at the moment this method is invoked.
      *
      * <p> Suppose that a byte sequence of length <i>n</i> is written, where
-     * <tt>0</tt>&nbsp;<tt>&lt;=</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;<i>r</i>.
+     * {@code 0}&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;<i>r</i>.
      * This byte sequence will be transferred from the buffer starting at index
      * <i>p</i>, where <i>p</i> is the buffer's position at the moment this
      * method is invoked; the index of the last byte written will be
-     * <i>p</i>&nbsp;<tt>+</tt>&nbsp;<i>n</i>&nbsp;<tt>-</tt>&nbsp;<tt>1</tt>.
+     * <i>p</i>&nbsp;{@code +}&nbsp;<i>n</i>&nbsp;{@code -}&nbsp;{@code 1}.
      * Upon return the buffer's position will be equal to
-     * <i>p</i>&nbsp;<tt>+</tt>&nbsp;<i>n</i>; its limit will not have changed.
+     * <i>p</i>&nbsp;{@code +}&nbsp;<i>n</i>; its limit will not have changed.
      *
      * <p> Unless otherwise specified, a write operation will return only after
      * writing all of the <i>r</i> requested bytes.  Some types of channels,
--- a/src/java.base/share/classes/java/nio/channels/package-info.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/package-info.java	Mon Aug 17 10:12:16 2015 -0700
@@ -32,29 +32,29 @@
  *
  * <blockquote><table cellspacing=1 cellpadding=0 summary="Lists channels and their descriptions">
  * <tr><th align="left">Channels</th><th align="left">Description</th></tr>
- * <tr><td valign=top><tt><i>{@link java.nio.channels.Channel}</i></tt></td>
+ * <tr><td valign=top><i>{@link java.nio.channels.Channel}</i></td>
  *     <td>A nexus for I/O operations</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;<i>{@link java.nio.channels.ReadableByteChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;<i>{@link java.nio.channels.ReadableByteChannel}</i></td>
  *     <td>Can read into a buffer</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.ScatteringByteChannel}&nbsp;&nbsp;</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.ScatteringByteChannel}&nbsp;&nbsp;</i></td>
  *     <td>Can read into a sequence of&nbsp;buffers</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;<i>{@link java.nio.channels.WritableByteChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;<i>{@link java.nio.channels.WritableByteChannel}</i></td>
  *     <td>Can write from a buffer</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.GatheringByteChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.GatheringByteChannel}</i></td>
  *     <td>Can write from a sequence of&nbsp;buffers</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;<i>{@link java.nio.channels.ByteChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;<i>{@link java.nio.channels.ByteChannel}</i></td>
  *     <td>Can read/write to/from a&nbsp;buffer</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.SeekableByteChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.SeekableByteChannel}</i></td>
  *     <td>A {@code ByteChannel} connected to an entity that contains a variable-length sequence of bytes</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;<i>{@link java.nio.channels.AsynchronousChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;<i>{@link java.nio.channels.AsynchronousChannel}</i></td>
  *     <td>Supports asynchronous I/O operations.</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.AsynchronousByteChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.AsynchronousByteChannel}</i></td>
  *     <td>Can read and write bytes asynchronously</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;<i>{@link java.nio.channels.NetworkChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;<i>{@link java.nio.channels.NetworkChannel}</i></td>
  *     <td>A channel to a network socket</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.MulticastChannel}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.channels.MulticastChannel}</i></td>
  *     <td>Can join Internet Protocol (IP) multicast groups</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.Channels}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.Channels}</td>
  *     <td>Utility methods for channel/stream interoperation</td></tr>
  * </table></blockquote>
  *
@@ -99,8 +99,8 @@
  * Internet Protocol (IP) multicast groups.
  *
  * <p> The {@link java.nio.channels.Channels} utility class defines static methods
- * that support the interoperation of the stream classes of the <tt>{@link
- * java.io}</tt> package with the channel classes of this package.  An appropriate
+ * that support the interoperation of the stream classes of the {@link
+ * java.io} package with the channel classes of this package.  An appropriate
  * channel can be constructed from an {@link java.io.InputStream} or an {@link
  * java.io.OutputStream}, and conversely an {@link java.io.InputStream} or an
  * {@link java.io.OutputStream} can be constructed from a channel.  A {@link
@@ -111,11 +111,11 @@
  *
  * <blockquote><table cellspacing=1 cellpadding=0 summary="Lists file channels and their descriptions">
  * <tr><th align="left">File channels</th><th align="left">Description</th></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.FileChannel}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.FileChannel}</td>
  *     <td>Reads, writes, maps, and manipulates files</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.FileLock}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.FileLock}</td>
  *     <td>A lock on a (region of a) file</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.MappedByteBuffer}&nbsp;&nbsp;</tt></td>
+ * <tr><td valign=top>{@link java.nio.MappedByteBuffer}&nbsp;&nbsp;</td>
  *     <td>A direct byte buffer mapped to a region of a&nbsp;file</td></tr>
  * </table></blockquote>
  *
@@ -133,30 +133,30 @@
  * java.nio.channels.FileChannel#open open} methods, or by invoking the {@code
  * getChannel} method of a {@link java.io.FileInputStream}, {@link
  * java.io.FileOutputStream}, or {@link java.io.RandomAccessFile} to return a
- * file channel connected to the same underlying file as the <tt>{@link java.io}</tt>
+ * file channel connected to the same underlying file as the {@link java.io}
  * class.
  *
  * <a name="multiplex"></a>
  * <blockquote><table cellspacing=1 cellpadding=0 summary="Lists multiplexed, non-blocking channels and their descriptions">
  * <tr><th align="left">Multiplexed, non-blocking I/O</th><th align="left"><p>Description</th></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.SelectableChannel}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.SelectableChannel}</td>
  *     <td>A channel that can be multiplexed</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.channels.DatagramChannel}</tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.channels.DatagramChannel}</td>
  *     <td>A channel to a datagram-oriented socket</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.channels.Pipe.SinkChannel}</tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.channels.Pipe.SinkChannel}</td>
  *     <td>The write end of a pipe</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.channels.Pipe.SourceChannel}</tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.channels.Pipe.SourceChannel}</td>
  *     <td>The read end of a pipe</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.channels.ServerSocketChannel}&nbsp;&nbsp;</tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.channels.ServerSocketChannel}&nbsp;&nbsp;</td>
  *     <td>A channel to a stream-oriented listening socket</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.channels.SocketChannel}</tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.channels.SocketChannel}</td>
  *     <td>A channel for a stream-oriented connecting socket</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.Selector}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.Selector}</td>
  *     <td>A multiplexor of selectable channels</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.SelectionKey}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.SelectionKey}</td>
  *     <td>A token representing the registration <br> of a channel
  *     with&nbsp;a&nbsp;selector</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.Pipe}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.Pipe}</td>
  *     <td>Two channels that form a unidirectional&nbsp;pipe</td></tr>
  * </table></blockquote>
  *
@@ -194,18 +194,18 @@
  *
  * <p> This package defines selectable-channel classes corresponding to the {@link
  * java.net.DatagramSocket}, {@link java.net.ServerSocket}, and {@link
- * java.net.Socket} classes defined in the <tt>{@link java.net}</tt> package.
+ * java.net.Socket} classes defined in the {@link java.net} package.
  * Minor changes to these classes have been made in order to support sockets that
  * are associated with channels.  This package also defines a simple class that
  * implements unidirectional pipes.  In all cases, a new selectable channel is
- * created by invoking the static <tt>open</tt> method of the corresponding class.
+ * created by invoking the static {@code open} method of the corresponding class.
  * If a channel needs an associated socket then a socket will be created as a side
  * effect of this operation.
  *
  * <p> The implementation of selectors, selectable channels, and selection keys
  * can be replaced by "plugging in" an alternative definition or instance of the
- * {@link java.nio.channels.spi.SelectorProvider} class defined in the <tt>{@link
- * java.nio.channels.spi}</tt> package.  It is not expected that many developers
+ * {@link java.nio.channels.spi.SelectorProvider} class defined in the {@link
+ * java.nio.channels.spi} package.  It is not expected that many developers
  * will actually make use of this facility; it is provided primarily so that
  * sophisticated users can take advantage of operating-system-specific
  * I/O-multiplexing mechanisms when very high performance is required.
@@ -215,8 +215,8 @@
  * java.nio.channels.spi.AbstractInterruptibleChannel}, {@link
  * java.nio.channels.spi.AbstractSelectableChannel}, {@link
  * java.nio.channels.spi.AbstractSelectionKey}, and {@link
- * java.nio.channels.spi.AbstractSelector} classes in the <tt>{@link
- * java.nio.channels.spi}</tt> package.  When defining a custom selector provider,
+ * java.nio.channels.spi.AbstractSelector} classes in the {@link
+ * java.nio.channels.spi} package.  When defining a custom selector provider,
  * only the {@link java.nio.channels.spi.AbstractSelector} and {@link
  * java.nio.channels.spi.AbstractSelectionKey} classes should be subclassed
  * directly; custom channel classes should extend the appropriate {@link
@@ -226,15 +226,15 @@
  *
  * <blockquote><table cellspacing=1 cellpadding=0 summary="Lists asynchronous channels and their descriptions">
  * <tr><th align="left">Asynchronous I/O</th><th align="left">Description</th></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.AsynchronousFileChannel}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.AsynchronousFileChannel}</td>
  *     <td>An asynchronous channel for reading, writing, and manipulating a file</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.AsynchronousSocketChannel}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.AsynchronousSocketChannel}</td>
  *     <td>An asynchronous channel to a stream-oriented connecting socket</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.AsynchronousServerSocketChannel}&nbsp;&nbsp;</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.AsynchronousServerSocketChannel}&nbsp;&nbsp;</td>
  *     <td>An asynchronous channel to a stream-oriented listening socket</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.CompletionHandler}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.CompletionHandler}</td>
  *     <td>A handler for consuming the result of an asynchronous operation</td></tr>
- * <tr><td valign=top><tt>{@link java.nio.channels.AsynchronousChannelGroup}</tt></td>
+ * <tr><td valign=top>{@link java.nio.channels.AsynchronousChannelGroup}</td>
  *     <td>A grouping of asynchronous channels for the purpose of resource sharing</td></tr>
  * </table></blockquote>
  *
@@ -272,13 +272,13 @@
  * <p> As with selectors, the implementation of asynchronous channels can be
  * replaced by "plugging in" an alternative definition or instance of the {@link
  * java.nio.channels.spi.AsynchronousChannelProvider} class defined in the
- * <tt>{@link java.nio.channels.spi}</tt> package.  It is not expected that many
+ * {@link java.nio.channels.spi} package.  It is not expected that many
  * developers will actually make use of this facility; it is provided primarily
  * so that sophisticated users can take advantage of operating-system-specific
  * asynchronous I/O mechanisms when very high performance is required.
  *
  * <hr width="80%">
- * <p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
+ * <p> Unless otherwise noted, passing a {@code null} argument to a constructor
  * or method in any class or interface in this package will cause a {@link
  * java.lang.NullPointerException NullPointerException} to be thrown.
  *
--- a/src/java.base/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java	Mon Aug 17 10:12:16 2015 -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>&nbsp;...&nbsp;<tt>finally</tt> block:
+ * {@code try}&nbsp;...&nbsp;{@code finally} block:
  *
  * <blockquote><pre>
  * boolean completed = false;
@@ -58,11 +58,11 @@
  *     end(completed);
  * }</pre></blockquote>
  *
- * <p> The <tt>completed</tt> argument to the {@link #end end} method tells
+ * <p> The {@code completed} argument to the {@link #end end} method tells
  * whether or not the I/O operation actually completed, that is, whether it had
  * any effect that would be visible to the invoker.  In the case of an
  * operation that reads bytes, for example, this argument should be
- * <tt>true</tt> if, and only if, some bytes were actually transferred into the
+ * {@code true} if, and only if, some bytes were actually transferred into the
  * invoker's target buffer.
  *
  * <p> A concrete channel class must also implement the {@link
@@ -148,7 +148,7 @@
      * Marks the beginning of an I/O operation that might block indefinitely.
      *
      * <p> This method should be invoked in tandem with the {@link #end end}
-     * method, using a <tt>try</tt>&nbsp;...&nbsp;<tt>finally</tt> block as
+     * method, using a {@code try}&nbsp;...&nbsp;{@code finally} block as
      * shown <a href="#be">above</a>, in order to implement asynchronous
      * closing and interruption for this channel.  </p>
      */
@@ -177,12 +177,12 @@
      * Marks the end of an I/O operation that might block indefinitely.
      *
      * <p> This method should be invoked in tandem with the {@link #begin
-     * begin} method, using a <tt>try</tt>&nbsp;...&nbsp;<tt>finally</tt> block
+     * begin} method, using a {@code try}&nbsp;...&nbsp;{@code finally} block
      * as shown <a href="#be">above</a>, in order to implement asynchronous
      * closing and interruption for this channel.  </p>
      *
      * @param  completed
-     *         <tt>true</tt> if, and only if, the I/O operation completed
+     *         {@code true} if, and only if, the I/O operation completed
      *         successfully, that is, had some effect that would be visible to
      *         the operation's invoker
      *
--- a/src/java.base/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -305,8 +305,8 @@
      * 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
+     * @param  block  If {@code true} then this channel will be placed in
+     *                blocking mode; if {@code false} then it will be placed
      *                non-blocking mode
      *
      * @throws IOException
--- a/src/java.base/share/classes/java/nio/channels/spi/AbstractSelector.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/spi/AbstractSelector.java	Mon Aug 17 10:12:16 2015 -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>&nbsp;...&nbsp;<tt>finally</tt> block:
+ * {@code try}&nbsp;...&nbsp;{@code finally} block:
  *
  * <blockquote><pre>
  * try {
@@ -197,7 +197,7 @@
      * Marks the beginning of an I/O operation that might block indefinitely.
      *
      * <p> This method should be invoked in tandem with the {@link #end end}
-     * method, using a <tt>try</tt>&nbsp;...&nbsp;<tt>finally</tt> block as
+     * method, using a {@code try}&nbsp;...&nbsp;{@code finally} block as
      * shown <a href="#be">above</a>, in order to implement interruption for
      * this selector.
      *
@@ -223,7 +223,7 @@
      * Marks the end of an I/O operation that might block indefinitely.
      *
      * <p> This method should be invoked in tandem with the {@link #begin begin}
-     * method, using a <tt>try</tt>&nbsp;...&nbsp;<tt>finally</tt> block as
+     * method, using a {@code try}&nbsp;...&nbsp;{@code finally} block as
      * shown <a href="#be">above</a>, in order to implement interruption for
      * this selector.  </p>
      */
--- a/src/java.base/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java	Mon Aug 17 10:12:16 2015 -0700
@@ -64,7 +64,7 @@
      *
      * @throws  SecurityException
      *          If a security manager has been installed and it denies
-     *          {@link RuntimePermission}<tt>("asynchronousChannelProvider")</tt>
+     *          {@link RuntimePermission}{@code ("asynchronousChannelProvider")}
      */
     protected AsynchronousChannelProvider() {
         this(checkPermission());
@@ -137,7 +137,7 @@
      * <ol>
      *
      *   <li><p> If the system property
-     *   <tt>java.nio.channels.spi.AsynchronousChannelProvider</tt> is defined
+     *   {@code java.nio.channels.spi.AsynchronousChannelProvider} is defined
      *   then it is taken to be the fully-qualified name of a concrete provider class.
      *   The class is loaded and instantiated; if this process fails then an
      *   unspecified error is thrown.  </p></li>
@@ -145,8 +145,8 @@
      *   <li><p> If a provider class has been installed in a jar file that is
      *   visible to the system class loader, and that jar file contains a
      *   provider-configuration file named
-     *   <tt>java.nio.channels.spi.AsynchronousChannelProvider</tt> in the resource
-     *   directory <tt>META-INF/services</tt>, then the first class name
+     *   {@code java.nio.channels.spi.AsynchronousChannelProvider} in the resource
+     *   directory {@code META-INF/services}, then the first class name
      *   specified in that file is taken.  The class is loaded and
      *   instantiated; if this process fails then an unspecified error is
      *   thrown.  </p></li>
--- a/src/java.base/share/classes/java/nio/channels/spi/SelectorProvider.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/channels/spi/SelectorProvider.java	Mon Aug 17 10:12:16 2015 -0700
@@ -46,7 +46,7 @@
  * #provider() provider} method.  The first invocation of that method will locate
  * the default provider as specified below.
  *
- * <p> The system-wide default provider is used by the static <tt>open</tt>
+ * <p> The system-wide default provider is used by the static {@code open}
  * methods of the {@link java.nio.channels.DatagramChannel#open
  * DatagramChannel}, {@link java.nio.channels.Pipe#open Pipe}, {@link
  * java.nio.channels.Selector#open Selector}, {@link
@@ -54,7 +54,7 @@
  * java.nio.channels.SocketChannel#open SocketChannel} classes.  It is also
  * used by the {@link java.lang.System#inheritedChannel System.inheritedChannel()}
  * method. A program may make use of a provider other than the default provider
- * by instantiating that provider and then directly invoking the <tt>open</tt>
+ * by instantiating that provider and then directly invoking the {@code open}
  * methods defined in this class.
  *
  * <p> All of the methods in this class are safe for use by multiple concurrent
@@ -84,7 +84,7 @@
      *
      * @throws  SecurityException
      *          If a security manager has been installed and it denies
-     *          {@link RuntimePermission}<tt>("selectorProvider")</tt>
+     *          {@link RuntimePermission}{@code ("selectorProvider")}
      */
     protected SelectorProvider() {
         this(checkPermission());
@@ -142,7 +142,7 @@
      * <ol>
      *
      *   <li><p> If the system property
-     *   <tt>java.nio.channels.spi.SelectorProvider</tt> is defined then it is
+     *   {@code java.nio.channels.spi.SelectorProvider} is defined then it is
      *   taken to be the fully-qualified name of a concrete provider class.
      *   The class is loaded and instantiated; if this process fails then an
      *   unspecified error is thrown.  </p></li>
@@ -150,8 +150,8 @@
      *   <li><p> If a provider class has been installed in a jar file that is
      *   visible to the system class loader, and that jar file contains a
      *   provider-configuration file named
-     *   <tt>java.nio.channels.spi.SelectorProvider</tt> in the resource
-     *   directory <tt>META-INF/services</tt>, then the first class name
+     *   {@code java.nio.channels.spi.SelectorProvider} in the resource
+     *   directory {@code META-INF/services}, then the first class name
      *   specified in that file is taken.  The class is loaded and
      *   instantiated; if this process fails then an unspecified error is
      *   thrown.  </p></li>
@@ -305,14 +305,14 @@
      * returned. Subsequent invocations of this method return the same
      * channel. </p>
      *
-     * @return  The inherited channel, if any, otherwise <tt>null</tt>.
+     * @return  The inherited channel, if any, otherwise {@code null}.
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  SecurityException
      *          If a security manager has been installed and it denies
-     *          {@link RuntimePermission}<tt>("inheritedChannel")</tt>
+     *          {@link RuntimePermission}{@code ("inheritedChannel")}
      *
      * @since 1.5
      */
--- a/src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template	Mon Aug 17 10:12:16 2015 -0700
@@ -55,12 +55,12 @@
  *   has not been used before; </p></li>
  *
  *   <li><p> Invoke the {@link #$code$ $code$} method zero or more times, as
- *   long as additional input may be available, passing <tt>false</tt> for the
- *   <tt>endOfInput</tt> argument and filling the input buffer and flushing the
+ *   long as additional input may be available, passing {@code false} for the
+ *   {@code endOfInput} argument and filling the input buffer and flushing the
  *   output buffer between invocations; </p></li>
  *
  *   <li><p> Invoke the {@link #$code$ $code$} method one final time, passing
- *   <tt>true</tt> for the <tt>endOfInput</tt> argument; and then </p></li>
+ *   {@code true} for the {@code endOfInput} argument; and then </p></li>
  *
  *   <li><p> Invoke the {@link #flush flush} method so that the $coder$ can
  *   flush any internal state to the output buffer. </p></li>
@@ -175,7 +175,7 @@
      *         $otype$s that will be produced for each input $itype$
      *
      * @param  replacement
-     *         The initial replacement; must not be <tt>null</tt>, must have
+     *         The initial replacement; must not be {@code null}, must have
      *         non-zero length, must not be longer than max$ItypesPerOtype$,
      *         and must be {@linkplain #isLegalReplacement legal}
      *
@@ -248,7 +248,7 @@
      * Returns this $coder$'s replacement value.
      *
      * @return  This $coder$'s current replacement,
-     *          which is never <tt>null</tt> and is never empty
+     *          which is never {@code null} and is never empty
      */
     public final $replType$ replacement() {
 #if[decoder]
@@ -267,7 +267,7 @@
      * replacement is acceptable.  </p>
      *
      * @param  newReplacement  The new replacement; must not be
-     *         <tt>null</tt>, must have non-zero length,
+     *         {@code null}, must have non-zero length,
 #if[decoder]
      *         and must not be longer than the value returned by the
      *         {@link #max$ItypesPerOtype$() max$ItypesPerOtype$} method
@@ -332,7 +332,7 @@
      *
      * @param  repl  The byte array to be tested
      *
-     * @return  <tt>true</tt> if, and only if, the given byte array
+     * @return  {@code true} if, and only if, the given byte array
      *          is a legal replacement value for this encoder
      */
     public boolean isLegalReplacement(byte[] repl) {
@@ -358,7 +358,7 @@
     /**
      * Returns this $coder$'s current action for malformed-input errors.
      *
-     * @return The current malformed-input action, which is never <tt>null</tt>
+     * @return The current malformed-input action, which is never {@code null}
      */
     public CodingErrorAction malformedInputAction() {
         return malformedInputAction;
@@ -370,7 +370,7 @@
      * <p> This method invokes the {@link #implOnMalformedInput
      * implOnMalformedInput} method, passing the new action.  </p>
      *
-     * @param  newAction  The new action; must not be <tt>null</tt>
+     * @param  newAction  The new action; must not be {@code null}
      *
      * @return  This $coder$
      *
@@ -400,7 +400,7 @@
      * Returns this $coder$'s current action for unmappable-character errors.
      *
      * @return The current unmappable-character action, which is never
-     *         <tt>null</tt>
+     *         {@code null}
      */
     public CodingErrorAction unmappableCharacterAction() {
         return unmappableCharacterAction;
@@ -412,7 +412,7 @@
      * <p> This method invokes the {@link #implOnUnmappableCharacter
      * implOnUnmappableCharacter} method, passing the new action.  </p>
      *
-     * @param  newAction  The new action; must not be <tt>null</tt>
+     * @param  newAction  The new action; must not be {@code null}
      *
      * @return  This $coder$
      *
@@ -521,16 +521,16 @@
      * operation then care should be taken to preserve any $itype$s remaining
      * in the input buffer so that they are available to the next invocation.
      *
-     * <p> The <tt>endOfInput</tt> parameter advises this method as to whether
+     * <p> The {@code endOfInput} parameter advises this method as to whether
      * the invoker can provide further input beyond that contained in the given
      * input buffer.  If there is a possibility of providing additional input
-     * then the invoker should pass <tt>false</tt> for this parameter; if there
+     * then the invoker should pass {@code false} for this parameter; if there
      * is no possibility of providing further input then the invoker should
-     * pass <tt>true</tt>.  It is not erroneous, and in fact it is quite
-     * common, to pass <tt>false</tt> in one invocation and later discover that
+     * pass {@code true}.  It is not erroneous, and in fact it is quite
+     * common, to pass {@code false} in one invocation and later discover that
      * no further input was actually available.  It is critical, however, that
      * the final invocation of this method in a sequence of invocations always
-     * pass <tt>true</tt> so that any remaining un$code$d input will be treated
+     * pass {@code true} so that any remaining un$code$d input will be treated
      * as being malformed.
      *
      * <p> This method works by invoking the {@link #$code$Loop $code$Loop}
@@ -545,7 +545,7 @@
      *         The output $otype$ buffer
      *
      * @param  endOfInput
-     *         <tt>true</tt> if, and only if, the invoker can provide no
+     *         {@code true} if, and only if, the invoker can provide no
      *         additional input $itype$s beyond those in the given buffer
      *
      * @return  A coder-result object describing the reason for termination
@@ -553,9 +553,9 @@
      * @throws  IllegalStateException
      *          If $a$ $coding$ operation is already in progress and the previous
      *          step was an invocation neither of the {@link #reset reset}
-     *          method, nor of this method with a value of <tt>false</tt> for
-     *          the <tt>endOfInput</tt> parameter, nor of this method with a
-     *          value of <tt>true</tt> for the <tt>endOfInput</tt> parameter
+     *          method, nor of this method with a value of {@code false} for
+     *          the {@code endOfInput} parameter, nor of this method with a
+     *          value of {@code true} for the {@code endOfInput} parameter
      *          but a return value indicating an incomplete $coding$ operation
      *
      * @throws  CoderMalfunctionError
@@ -659,7 +659,7 @@
      *          invocation neither of the {@link #flush flush} method nor of
      *          the three-argument {@link
      *          #$code$($Itype$Buffer,$Otype$Buffer,boolean) $code$} method
-     *          with a value of <tt>true</tt> for the <tt>endOfInput</tt>
+     *          with a value of {@code true} for the {@code endOfInput}
      *          parameter
      */
     public final CoderResult flush($Otype$Buffer out) {
@@ -824,10 +824,10 @@
      * Tells whether or not this decoder implements an auto-detecting charset.
      *
      * <p> The default implementation of this method always returns
-     * <tt>false</tt>; it should be overridden by auto-detecting decoders to
-     * return <tt>true</tt>.  </p>
+     * {@code false}; it should be overridden by auto-detecting decoders to
+     * return {@code true}.  </p>
      *
-     * @return  <tt>true</tt> if, and only if, this decoder implements an
+     * @return  {@code true} if, and only if, this decoder implements an
      *          auto-detecting charset
      */
     public boolean isAutoDetecting() {
@@ -840,21 +840,21 @@
      *
      * <p> If this decoder implements an auto-detecting charset then at a
      * single point during a decoding operation this method may start returning
-     * <tt>true</tt> to indicate that a specific charset has been detected in
+     * {@code true} to indicate that a specific charset has been detected in
      * the input byte sequence.  Once this occurs, the {@link #detectedCharset
      * detectedCharset} method may be invoked to retrieve the detected charset.
      *
-     * <p> That this method returns <tt>false</tt> does not imply that no bytes
+     * <p> That this method returns {@code false} does not imply that no bytes
      * have yet been decoded.  Some auto-detecting decoders are capable of
      * decoding some, or even all, of an input byte sequence without fixing on
      * a particular charset.
      *
      * <p> The default implementation of this method always throws an {@link
      * UnsupportedOperationException}; it should be overridden by
-     * auto-detecting decoders to return <tt>true</tt> once the input charset
+     * auto-detecting decoders to return {@code true} once the input charset
      * has been determined.  </p>
      *
-     * @return  <tt>true</tt> if, and only if, this decoder has detected a
+     * @return  {@code true} if, and only if, this decoder has detected a
      *          specific charset
      *
      * @throws  UnsupportedOperationException
@@ -880,7 +880,7 @@
      * auto-detecting decoders to return the appropriate value.  </p>
      *
      * @return  The charset detected by this auto-detecting decoder,
-     *          or <tt>null</tt> if the charset has not yet been determined
+     *          or {@code null} if the charset has not yet been determined
      *
      * @throws  IllegalStateException
      *          If insufficient bytes have been read to determine a charset
@@ -920,7 +920,7 @@
     /**
      * Tells whether or not this encoder can encode the given character.
      *
-     * <p> This method returns <tt>false</tt> if the given character is a
+     * <p> This method returns {@code false} if the given character is a
      * surrogate character; such characters can be interpreted only when they
      * are members of a pair consisting of a high surrogate followed by a low
      * surrogate.  The {@link #canEncode(java.lang.CharSequence)
@@ -937,7 +937,7 @@
      * @param   c
      *          The given character
      *
-     * @return  <tt>true</tt> if, and only if, this encoder can encode
+     * @return  {@code true} if, and only if, this encoder can encode
      *          the given character
      *
      * @throws  IllegalStateException
@@ -954,7 +954,7 @@
      * Tells whether or not this encoder can encode the given character
      * sequence.
      *
-     * <p> If this method returns <tt>false</tt> for a particular character
+     * <p> If this method returns {@code false} for a particular character
      * sequence then more information about why the sequence cannot be encoded
      * may be obtained by performing a full <a href="#steps">encoding
      * operation</a>.
@@ -968,7 +968,7 @@
      * @param   cs
      *          The given character sequence
      *
-     * @return  <tt>true</tt> if, and only if, this encoder can encode
+     * @return  {@code true} if, and only if, this encoder can encode
      *          the given character without throwing any exceptions and without
      *          performing any replacements
      *
--- a/src/java.base/share/classes/java/nio/charset/Charset.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/charset/Charset.java	Mon Aug 17 10:12:16 2015 -0700
@@ -73,29 +73,29 @@
  *
  * <ul>
  *
- *   <li> The uppercase letters <tt>'A'</tt> through <tt>'Z'</tt>
- *        (<tt>'&#92;u0041'</tt>&nbsp;through&nbsp;<tt>'&#92;u005a'</tt>),
+ *   <li> The uppercase letters {@code 'A'} through {@code 'Z'}
+ *        (<code>'&#92;u0041'</code>&nbsp;through&nbsp;<code>'&#92;u005a'</code>),
  *
- *   <li> The lowercase letters <tt>'a'</tt> through <tt>'z'</tt>
- *        (<tt>'&#92;u0061'</tt>&nbsp;through&nbsp;<tt>'&#92;u007a'</tt>),
+ *   <li> The lowercase letters {@code 'a'} through {@code 'z'}
+ *        (<code>'&#92;u0061'</code>&nbsp;through&nbsp;<code>'&#92;u007a'</code>),
  *
- *   <li> The digits <tt>'0'</tt> through <tt>'9'</tt>
- *        (<tt>'&#92;u0030'</tt>&nbsp;through&nbsp;<tt>'&#92;u0039'</tt>),
+ *   <li> The digits {@code '0'} through {@code '9'}
+ *        (<code>'&#92;u0030'</code>&nbsp;through&nbsp;<code>'&#92;u0039'</code>),
  *
- *   <li> The dash character <tt>'-'</tt>
- *        (<tt>'&#92;u002d'</tt>,&nbsp;<small>HYPHEN-MINUS</small>),
+ *   <li> The dash character {@code '-'}
+ *        (<code>'&#92;u002d'</code>,&nbsp;<small>HYPHEN-MINUS</small>),
  *
- *   <li> The plus character <tt>'+'</tt>
- *        (<tt>'&#92;u002b'</tt>,&nbsp;<small>PLUS SIGN</small>),
+ *   <li> The plus character {@code '+'}
+ *        (<code>'&#92;u002b'</code>,&nbsp;<small>PLUS SIGN</small>),
  *
- *   <li> The period character <tt>'.'</tt>
- *        (<tt>'&#92;u002e'</tt>,&nbsp;<small>FULL STOP</small>),
+ *   <li> The period character {@code '.'}
+ *        (<code>'&#92;u002e'</code>,&nbsp;<small>FULL STOP</small>),
  *
- *   <li> The colon character <tt>':'</tt>
- *        (<tt>'&#92;u003a'</tt>,&nbsp;<small>COLON</small>), and
+ *   <li> The colon character {@code ':'}
+ *        (<code>'&#92;u003a'</code>,&nbsp;<small>COLON</small>), and
  *
- *   <li> The underscore character <tt>'_'</tt>
- *        (<tt>'&#92;u005f'</tt>,&nbsp;<small>LOW&nbsp;LINE</small>).
+ *   <li> The underscore character {@code '_'}
+ *        (<code>'&#92;u005f'</code>,&nbsp;<small>LOW&nbsp;LINE</small>).
  *
  * </ul>
  *
@@ -115,7 +115,7 @@
  * <p><a name="hn">Some charsets have an <i>historical name</i> that is defined for
  * compatibility with previous versions of the Java platform.</a>  A charset's
  * historical name is either its canonical name or one of its aliases.  The
- * historical name is returned by the <tt>getEncoding()</tt> methods of the
+ * historical name is returned by the {@code getEncoding()} methods of the
  * {@link java.io.InputStreamReader#getEncoding InputStreamReader} and {@link
  * java.io.OutputStreamWriter#getEncoding OutputStreamWriter} classes.
  *
@@ -128,7 +128,7 @@
  * than one registry name then its canonical name must be the MIME-preferred
  * name and the other names in the registry must be valid aliases.  If a
  * supported charset is not listed in the IANA registry then its canonical name
- * must begin with one of the strings <tt>"X-"</tt> or <tt>"x-"</tt>.
+ * must begin with one of the strings {@code "X-"} or {@code "x-"}.
  *
  * <p> The IANA charset registry does change over time, and so the canonical
  * name and the aliases of a particular charset may also change over time.  To
@@ -148,53 +148,53 @@
  *
  * <blockquote><table width="80%" summary="Description of standard charsets">
  * <tr><th align="left">Charset</th><th align="left">Description</th></tr>
- * <tr><td valign=top><tt>US-ASCII</tt></td>
- *     <td>Seven-bit ASCII, a.k.a. <tt>ISO646-US</tt>,
+ * <tr><td valign=top>{@code US-ASCII}</td>
+ *     <td>Seven-bit ASCII, a.k.a. {@code ISO646-US},
  *         a.k.a. the Basic Latin block of the Unicode character set</td></tr>
- * <tr><td valign=top><tt>ISO-8859-1&nbsp;&nbsp;</tt></td>
- *     <td>ISO Latin Alphabet No. 1, a.k.a. <tt>ISO-LATIN-1</tt></td></tr>
- * <tr><td valign=top><tt>UTF-8</tt></td>
+ * <tr><td valign=top><code>ISO-8859-1&nbsp;&nbsp;</code></td>
+ *     <td>ISO Latin Alphabet No. 1, a.k.a. {@code ISO-LATIN-1}</td></tr>
+ * <tr><td valign=top>{@code UTF-8}</td>
  *     <td>Eight-bit UCS Transformation Format</td></tr>
- * <tr><td valign=top><tt>UTF-16BE</tt></td>
+ * <tr><td valign=top>{@code UTF-16BE}</td>
  *     <td>Sixteen-bit UCS Transformation Format,
  *         big-endian byte&nbsp;order</td></tr>
- * <tr><td valign=top><tt>UTF-16LE</tt></td>
+ * <tr><td valign=top>{@code UTF-16LE}</td>
  *     <td>Sixteen-bit UCS Transformation Format,
  *         little-endian byte&nbsp;order</td></tr>
- * <tr><td valign=top><tt>UTF-16</tt></td>
+ * <tr><td valign=top>{@code UTF-16}</td>
  *     <td>Sixteen-bit UCS Transformation Format,
  *         byte&nbsp;order identified by an optional byte-order mark</td></tr>
  * </table></blockquote>
  *
- * <p> The <tt>UTF-8</tt> charset is specified by <a
+ * <p> The {@code UTF-8} charset is specified by <a
  * href="http://www.ietf.org/rfc/rfc2279.txt"><i>RFC&nbsp;2279</i></a>; the
  * transformation format upon which it is based is specified in
  * Amendment&nbsp;2 of ISO&nbsp;10646-1 and is also described in the <a
  * href="http://www.unicode.org/unicode/standard/standard.html"><i>Unicode
  * Standard</i></a>.
  *
- * <p> The <tt>UTF-16</tt> charsets are specified by <a
+ * <p> The {@code UTF-16} charsets are specified by <a
  * href="http://www.ietf.org/rfc/rfc2781.txt"><i>RFC&nbsp;2781</i></a>; the
  * transformation formats upon which they are based are specified in
  * Amendment&nbsp;1 of ISO&nbsp;10646-1 and are also described in the <a
  * href="http://www.unicode.org/unicode/standard/standard.html"><i>Unicode
  * Standard</i></a>.
  *
- * <p> The <tt>UTF-16</tt> charsets use sixteen-bit quantities and are
+ * <p> The {@code UTF-16} charsets use sixteen-bit quantities and are
  * therefore sensitive to byte order.  In these encodings the byte order of a
  * stream may be indicated by an initial <i>byte-order mark</i> represented by
- * the Unicode character <tt>'&#92;uFEFF'</tt>.  Byte-order marks are handled
+ * the Unicode character <code>'&#92;uFEFF'</code>.  Byte-order marks are handled
  * as follows:
  *
  * <ul>
  *
- *   <li><p> When decoding, the <tt>UTF-16BE</tt> and <tt>UTF-16LE</tt>
+ *   <li><p> When decoding, the {@code UTF-16BE} and {@code UTF-16LE}
  *   charsets interpret the initial byte-order marks as a <small>ZERO-WIDTH
  *   NON-BREAKING SPACE</small>; when encoding, they do not write
  *   byte-order marks. </p></li>
 
  *
- *   <li><p> When decoding, the <tt>UTF-16</tt> charset interprets the
+ *   <li><p> When decoding, the {@code UTF-16} charset interprets the
  *   byte-order mark at the beginning of the input stream to indicate the
  *   byte-order of the stream but defaults to big-endian if there is no
  *   byte-order mark; when encoding, it uses big-endian byte order and writes
@@ -247,9 +247,9 @@
  * character-encoding scheme then the corresponding charset is usually
  * named for the coded character set; otherwise a charset is usually named
  * for the encoding scheme and, possibly, the locale of the coded
- * character sets that it supports.  Hence <tt>US-ASCII</tt> is both the
+ * character sets that it supports.  Hence {@code US-ASCII} is both the
  * name of a coded character set and of the charset that encodes it, while
- * <tt>EUC-JP</tt> is the name of the charset that encodes the
+ * {@code EUC-JP} is the name of the charset that encodes the
  * JIS&nbsp;X&nbsp;0201, JIS&nbsp;X&nbsp;0208, and JIS&nbsp;X&nbsp;0212
  * coded character sets for the Japanese language.
  *
@@ -495,14 +495,14 @@
      *         The name of the requested charset; may be either
      *         a canonical name or an alias
      *
-     * @return  <tt>true</tt> if, and only if, support for the named charset
+     * @return  {@code true} if, and only if, support for the named charset
      *          is available in the current Java virtual machine
      *
      * @throws IllegalCharsetNameException
      *         If the given charset name is illegal
      *
      * @throws  IllegalArgumentException
-     *          If the given <tt>charsetName</tt> is null
+     *          If the given {@code charsetName} is null
      */
     public static boolean isSupported(String charsetName) {
         return (lookup(charsetName) != null);
@@ -521,7 +521,7 @@
      *          If the given charset name is illegal
      *
      * @throws  IllegalArgumentException
-     *          If the given <tt>charsetName</tt> is null
+     *          If the given {@code charsetName} is null
      *
      * @throws  UnsupportedCharsetException
      *          If no support for the named charset is available
@@ -692,7 +692,7 @@
      * href="http://www.iana.org/assignments/character-sets">IANA Charset
      * Registry</a>.
      *
-     * @return  <tt>true</tt> if, and only if, this charset is known by its
+     * @return  {@code true} if, and only if, this charset is known by its
      *          implementor to be registered with the IANA
      */
     public final boolean isRegistered() {
@@ -732,15 +732,15 @@
      * <p> Every charset contains itself.
      *
      * <p> This method computes an approximation of the containment relation:
-     * If it returns <tt>true</tt> then the given charset is known to be
-     * contained by this charset; if it returns <tt>false</tt>, however, then
+     * If it returns {@code true} then the given charset is known to be
+     * contained by this charset; if it returns {@code false}, however, then
      * 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
+     * @return  {@code true} if the given charset is contained in this charset
      */
     public abstract boolean contains(Charset cs);
 
@@ -770,9 +770,9 @@
      * input byte sequence.  Such charsets do not support encoding because
      * there is no way to determine which encoding should be used on output.
      * Implementations of such charsets should override this method to return
-     * <tt>false</tt>. </p>
+     * {@code false}. </p>
      *
-     * @return  <tt>true</tt> if, and only if, this charset supports encoding
+     * @return  {@code true} if, and only if, this charset supports encoding
      */
     public boolean canEncode() {
         return true;
@@ -782,7 +782,7 @@
      * Convenience method that decodes bytes in this charset into Unicode
      * characters.
      *
-     * <p> An invocation of this method upon a charset <tt>cs</tt> returns the
+     * <p> An invocation of this method upon a charset {@code cs} returns the
      * same result as the expression
      *
      * <pre>
@@ -818,7 +818,7 @@
      * Convenience method that encodes Unicode characters into bytes in this
      * charset.
      *
-     * <p> An invocation of this method upon a charset <tt>cs</tt> returns the
+     * <p> An invocation of this method upon a charset {@code cs} returns the
      * same result as the expression
      *
      * <pre>
@@ -853,7 +853,7 @@
     /**
      * Convenience method that encodes a string into bytes in this charset.
      *
-     * <p> An invocation of this method upon a charset <tt>cs</tt> returns the
+     * <p> An invocation of this method upon a charset {@code cs} returns the
      * same result as the expression
      *
      * <pre>
@@ -898,7 +898,7 @@
      * <p> Two charsets are equal if, and only if, they have the same canonical
      * names.  A charset is never equal to any other type of object.  </p>
      *
-     * @return  <tt>true</tt> if, and only if, this charset is equal to the
+     * @return  {@code true} if, and only if, this charset is equal to the
      *          given object
      */
     public final boolean equals(Object ob) {
--- a/src/java.base/share/classes/java/nio/charset/CoderResult.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/charset/CoderResult.java	Mon Aug 17 10:12:16 2015 -0700
@@ -46,24 +46,24 @@
  *   processed, or there is insufficient input and additional input is
  *   required.  This condition is represented by the unique result object
  *   {@link #UNDERFLOW}, whose {@link #isUnderflow() isUnderflow} method
- *   returns <tt>true</tt>.  </p></li>
+ *   returns {@code true}.  </p></li>
  *
  *   <li><p> <i>Overflow</i> is reported when there is insufficient room
  *   remaining in the output buffer.  This condition is represented by the
  *   unique result object {@link #OVERFLOW}, whose {@link #isOverflow()
- *   isOverflow} method returns <tt>true</tt>.  </p></li>
+ *   isOverflow} method returns {@code true}.  </p></li>
  *
  *   <li><p> A <i>malformed-input error</i> is reported when a sequence of
  *   input units is not well-formed.  Such errors are described by instances of
  *   this class whose {@link #isMalformed() isMalformed} method returns
- *   <tt>true</tt> and whose {@link #length() length} method returns the length
+ *   {@code true} and whose {@link #length() length} method returns the length
  *   of the malformed sequence.  There is one unique instance of this class for
  *   all malformed-input errors of a given length.  </p></li>
  *
  *   <li><p> An <i>unmappable-character error</i> is reported when a sequence
  *   of input units denotes a character that cannot be represented in the
  *   output charset.  Such errors are described by instances of this class
- *   whose {@link #isUnmappable() isUnmappable} method returns <tt>true</tt> and
+ *   whose {@link #isUnmappable() isUnmappable} method returns {@code true} and
  *   whose {@link #length() length} method returns the length of the input
  *   sequence denoting the unmappable character.  There is one unique instance
  *   of this class for all unmappable-character errors of a given length.
@@ -71,9 +71,9 @@
  *
  * </ul>
  *
- * <p> For convenience, the {@link #isError() isError} method returns <tt>true</tt>
+ * <p> For convenience, the {@link #isError() isError} method returns {@code true}
  * for result objects that describe malformed-input and unmappable-character
- * errors but <tt>false</tt> for those that describe underflow or overflow
+ * errors but {@code false} for those that describe underflow or overflow
  * conditions.  </p>
  *
  *
@@ -114,7 +114,7 @@
     /**
      * Tells whether or not this object describes an underflow condition.
      *
-     * @return  <tt>true</tt> if, and only if, this object denotes underflow
+     * @return  {@code true} if, and only if, this object denotes underflow
      */
     public boolean isUnderflow() {
         return (type == CR_UNDERFLOW);
@@ -123,7 +123,7 @@
     /**
      * Tells whether or not this object describes an overflow condition.
      *
-     * @return  <tt>true</tt> if, and only if, this object denotes overflow
+     * @return  {@code true} if, and only if, this object denotes overflow
      */
     public boolean isOverflow() {
         return (type == CR_OVERFLOW);
@@ -132,7 +132,7 @@
     /**
      * Tells whether or not this object describes an error condition.
      *
-     * @return  <tt>true</tt> if, and only if, this object denotes either a
+     * @return  {@code true} if, and only if, this object denotes either a
      *          malformed-input error or an unmappable-character error
      */
     public boolean isError() {
@@ -142,7 +142,7 @@
     /**
      * Tells whether or not this object describes a malformed-input error.
      *
-     * @return  <tt>true</tt> if, and only if, this object denotes a
+     * @return  {@code true} if, and only if, this object denotes a
      *          malformed-input error
      */
     public boolean isMalformed() {
@@ -153,7 +153,7 @@
      * Tells whether or not this object describes an unmappable-character
      * error.
      *
-     * @return  <tt>true</tt> if, and only if, this object denotes an
+     * @return  {@code true} if, and only if, this object denotes an
      *          unmappable-character error
      */
     public boolean isUnmappable() {
@@ -168,7 +168,7 @@
      *
      * @throws  UnsupportedOperationException
      *          If this object does not describe an error condition, that is,
-     *          if the {@link #isError() isError} does not return <tt>true</tt>
+     *          if the {@link #isError() isError} does not return {@code true}
      */
     public int length() {
         if (!isError())
--- a/src/java.base/share/classes/java/nio/charset/package-info.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/charset/package-info.java	Mon Aug 17 10:12:16 2015 -0700
@@ -74,10 +74,10 @@
  *
  * <p> Support for new charsets can be made available via the
  * interface defined in the {@link
- * java.nio.charset.spi.CharsetProvider} class in the <tt>{@link
- * java.nio.charset.spi}</tt> package.
+ * java.nio.charset.spi.CharsetProvider} class in the {@link
+ * java.nio.charset.spi} package.
  *
- * <p> Unless otherwise noted, passing a <tt>null</tt> argument to a
+ * <p> Unless otherwise noted, passing a {@code null} argument to a
  * constructor or method in any class or interface in this package
  * will cause a {@link java.lang.NullPointerException
  * NullPointerException} to be thrown.
--- a/src/java.base/share/classes/java/nio/charset/spi/CharsetProvider.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/charset/spi/CharsetProvider.java	Mon Aug 17 10:12:16 2015 -0700
@@ -42,13 +42,13 @@
  * loader}.
  *
  * <p> A charset provider identifies itself with a provider-configuration file
- * named <tt>java.nio.charset.spi.CharsetProvider</tt> in the resource
- * directory <tt>META-INF/services</tt>.  The file should contain a list of
+ * named {@code java.nio.charset.spi.CharsetProvider} in the resource
+ * directory {@code META-INF/services}.  The file should contain a list of
  * fully-qualified concrete charset-provider class names, one per line.  A line
- * is terminated by any one of a line feed (<tt>'\n'</tt>), a carriage return
- * (<tt>'\r'</tt>), or a carriage return followed immediately by a line feed.
+ * is terminated by any one of a line feed ({@code '\n'}), a carriage return
+ * ({@code '\r'}), or a carriage return followed immediately by a line feed.
  * Space and tab characters surrounding each name, as well as blank lines, are
- * ignored.  The comment character is <tt>'#'</tt> (<tt>'&#92;u0023'</tt>); on
+ * ignored.  The comment character is {@code '#'} (<code>'&#92;u0023'</code>); on
  * each line all characters following the first comment character are ignored.
  * The file must be encoded in UTF-8.
  *
@@ -83,7 +83,7 @@
      *
      * @throws  SecurityException
      *          If a security manager has been installed and it denies
-     *          {@link RuntimePermission}<tt>("charsetProvider")</tt>
+     *          {@link RuntimePermission}{@code ("charsetProvider")}
      */
     protected CharsetProvider() {
         this(checkPermission());
@@ -107,7 +107,7 @@
      *         a canonical name or an alias
      *
      * @return  A charset object for the named charset,
-     *          or <tt>null</tt> if the named charset
+     *          or {@code null} if the named charset
      *          is not supported by this provider
      */
     public abstract Charset charsetForName(String charsetName);
--- a/src/java.base/share/classes/java/nio/exceptions	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/exceptions	Mon Aug 17 10:12:16 2015 -0700
@@ -56,5 +56,5 @@
 
 gen ReadOnlyBufferException "
  * Unchecked exception thrown when a content-mutation method such as
- * <tt>put</tt> or <tt>compact</tt> is invoked upon a read-only buffer." \
+ * <code>put</code> or <code>compact</code> is invoked upon a read-only buffer." \
  -1210063976496234090L
--- a/src/java.base/share/classes/java/nio/file/FileSystem.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/FileSystem.java	Mon Aug 17 10:12:16 2015 -0700
@@ -202,7 +202,7 @@
      *
      * <p> In the case of the default provider, and a security manager is
      * installed, the security manager is invoked to check {@link
-     * RuntimePermission}<tt>("getFileStoreAttributes")</tt>. If denied, then
+     * RuntimePermission}{@code ("getFileStoreAttributes")}. If denied, then
      * no file stores are returned by the iterator. In addition, the security
      * manager's {@link SecurityManager#checkRead(String)} method is invoked to
      * check read access to the file store's <em>top-most</em> directory. If
@@ -334,19 +334,19 @@
      *   character extension</td>
      * </tr>
      * <tr>
-     *   <td><tt>&#47;home&#47;*&#47;*</tt>
-     *   <td>Matches <tt>&#47;home&#47;gus&#47;data</tt> on UNIX platforms</td>
+     *   <td><code>&#47;home&#47;*&#47;*</code>
+     *   <td>Matches <code>&#47;home&#47;gus&#47;data</code> on UNIX platforms</td>
      * </tr>
      * <tr>
-     *   <td><tt>&#47;home&#47;**</tt>
-     *   <td>Matches <tt>&#47;home&#47;gus</tt> and
-     *   <tt>&#47;home&#47;gus&#47;data</tt> on UNIX platforms</td>
+     *   <td><code>&#47;home&#47;**</code>
+     *   <td>Matches <code>&#47;home&#47;gus</code> and
+     *   <code>&#47;home&#47;gus&#47;data</code> on UNIX platforms</td>
      * </tr>
      * <tr>
-     *   <td><tt>C:&#92;&#92;*</tt>
-     *   <td>Matches <tt>C:&#92;foo</tt> and <tt>C:&#92;bar</tt> on the Windows
+     *   <td><code>C:&#92;&#92;*</code>
+     *   <td>Matches <code>C:&#92;foo</code> and <code>C:&#92;bar</code> on the Windows
      *   platform (note that the backslash is escaped; as a string literal in the
-     *   Java Language the pattern would be <tt>"C:&#92;&#92;&#92;&#92;*"</tt>) </td>
+     *   Java Language the pattern would be <code>"C:&#92;&#92;&#92;&#92;*"</code>) </td>
      * </tr>
      *
      * </table>
@@ -390,7 +390,7 @@
      *   character is used to separate the subpatterns. Groups cannot be nested.
      *   </p></li>
      *
-     *   <li><p> Leading period<tt>&#47;</tt>dot characters in file name are
+     *   <li><p> Leading period<code>&#47;</code>dot characters in file name are
      *   treated as regular characters in match operations. For example,
      *   the {@code "*"} glob pattern matches file name {@code ".login"}.
      *   The {@link Files#isHidden} method may be used to test whether a file
--- a/src/java.base/share/classes/java/nio/file/Files.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/Files.java	Mon Aug 17 10:12:16 2015 -0700
@@ -1033,7 +1033,7 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager
-     *          is installed, it denies {@link LinkPermission}<tt>("symbolic")</tt>
+     *          is installed, it denies {@link LinkPermission}{@code ("symbolic")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the path of the symbolic link.
      */
@@ -1078,7 +1078,7 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager
-     *          is installed, it denies {@link LinkPermission}<tt>("hard")</tt>
+     *          is installed, it denies {@link LinkPermission}{@code ("hard")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to either the link or the
      *          existing file.
@@ -1455,8 +1455,8 @@
      *          In the case of the default provider, and a security manager is
      *          installed, the {@link SecurityManager#checkRead(String) checkRead}
      *          method is invoked to check read access to the file, and in
-     *          addition it checks {@link RuntimePermission}<tt>
-     *          ("getFileStoreAttributes")</tt>
+     *          addition it checks
+     *          {@link RuntimePermission}{@code ("getFileStoreAttributes")}
      */
     public static FileStore getFileStore(Path path) throws IOException {
         return provider(path).getFileStore(path);
@@ -1995,7 +1995,8 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
-     *          installed, and it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, and it denies
+     *          {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkRead(String) checkRead} method
      *          denies read access to the file.
      */
@@ -2032,7 +2033,8 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager is
-     *          installed, it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, it denies
+     *          {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the file.
      */
@@ -2069,7 +2071,8 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager is
-     *          installed, it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, it denies
+     *          {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkRead(String) checkRead} method
      *          denies read access to the file.
      */
@@ -2112,7 +2115,8 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager is
-     *          installed, it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, it denies
+     *          {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the file.
      *
--- a/src/java.base/share/classes/java/nio/file/InvalidPathException.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/InvalidPathException.java	Mon Aug 17 10:12:16 2015 -0700
@@ -46,13 +46,13 @@
      * @param  input   the input string
      * @param  reason  a string explaining why the input was rejected
      * @param  index   the index at which the error occurred,
-     *                 or <tt>-1</tt> if the index is not known
+     *                 or {@code -1} if the index is not known
      *
      * @throws  NullPointerException
-     *          if either the input or reason strings are <tt>null</tt>
+     *          if either the input or reason strings are {@code null}
      *
      * @throws  IllegalArgumentException
-     *          if the error index is less than <tt>-1</tt>
+     *          if the error index is less than {@code -1}
      */
     public InvalidPathException(String input, String reason, int index) {
         super(reason);
@@ -66,13 +66,13 @@
 
     /**
      * Constructs an instance from the given input string and reason.  The
-     * resulting object will have an error index of <tt>-1</tt>.
+     * resulting object will have an error index of {@code -1}.
      *
      * @param  input   the input string
      * @param  reason  a string explaining why the input was rejected
      *
      * @throws  NullPointerException
-     *          if either the input or reason strings are <tt>null</tt>
+     *          if either the input or reason strings are {@code null}
      */
     public InvalidPathException(String input, String reason) {
         this(input, reason, -1);
@@ -98,7 +98,7 @@
 
     /**
      * Returns an index into the input string of the position at which the
-     * error occurred, or <tt>-1</tt> if this position is not known.
+     * error occurred, or {@code -1} if this position is not known.
      *
      * @return  the error index
      */
@@ -109,8 +109,8 @@
     /**
      * Returns a string describing the error.  The resulting string
      * consists of the reason string followed by a colon character
-     * (<tt>':'</tt>), a space, and the input string.  If the error index is
-     * defined then the string <tt>" at index "</tt> followed by the index, in
+     * ({@code ':'}), a space, and the input string.  If the error index is
+     * defined then the string {@code " at index "} followed by the index, in
      * decimal, is inserted after the reason string and before the colon
      * character.
      *
--- a/src/java.base/share/classes/java/nio/file/Path.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/Path.java	Mon Aug 17 10:12:16 2015 -0700
@@ -480,7 +480,8 @@
      * <p> For any two {@link #normalize normalized} paths <i>p</i> and
      * <i>q</i>, where <i>q</i> does not have a root component,
      * <blockquote>
-     *   <i>p</i><tt>.relativize(</tt><i>p</i><tt>.resolve(</tt><i>q</i><tt>)).equals(</tt><i>q</i><tt>)</tt>
+     *   <i>p</i>{@code .relativize(}<i>p</i>
+     *   {@code .resolve(}<i>q</i>{@code )).equals(}<i>q</i>{@code )}
      * </blockquote>
      *
      * <p> When symbolic links are supported, then whether the resulting path,
@@ -525,9 +526,9 @@
      * <p> The default provider provides a similar <em>round-trip</em> guarantee
      * to the {@link java.io.File} class. For a given {@code Path} <i>p</i> it
      * is guaranteed that
-     * <blockquote><tt>
-     * {@link Paths#get(URI) Paths.get}(</tt><i>p</i><tt>.toUri()).equals(</tt><i>p</i>
-     * <tt>.{@link #toAbsolutePath() toAbsolutePath}())</tt>
+     * <blockquote>
+     * {@link Paths#get(URI) Paths.get}{@code (}<i>p</i>{@code .toUri()).equals(}<i>p</i>
+     * {@code .}{@link #toAbsolutePath() toAbsolutePath}{@code ())}
      * </blockquote>
      * so long as the original {@code Path}, the {@code URI}, and the new {@code
      * Path} are all created in (possibly different invocations of) the same
--- a/src/java.base/share/classes/java/nio/file/Paths.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/Paths.java	Mon Aug 17 10:12:16 2015 -0700
@@ -103,9 +103,9 @@
      * <p> The default provider provides a similar <em>round-trip</em> guarantee
      * to the {@link java.io.File} class. For a given {@code Path} <i>p</i> it
      * is guaranteed that
-     * <blockquote><tt>
-     * Paths.get(</tt><i>p</i><tt>.{@link Path#toUri() toUri}()).equals(</tt>
-     * <i>p</i><tt>.{@link Path#toAbsolutePath() toAbsolutePath}())</tt>
+     * <blockquote>{@code
+     * Paths.get(}<i>p</i>{@code .}{@link Path#toUri() toUri}{@code ()).equals(}
+     * <i>p</i>{@code .}{@link Path#toAbsolutePath() toAbsolutePath}{@code ())}
      * </blockquote>
      * so long as the original {@code Path}, the {@code URI}, and the new {@code
      * Path} are all created in (possibly different invocations of) the same
--- a/src/java.base/share/classes/java/nio/file/attribute/AclFileAttributeView.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/attribute/AclFileAttributeView.java	Mon Aug 17 10:12:16 2015 -0700
@@ -165,7 +165,7 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
-     *          installed, and it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, and it denies {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkRead(String) checkRead} method
      *          denies read access to the file.
      */
@@ -201,7 +201,7 @@
      *          if an I/O error occurs or the ACL is invalid
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
-     *          installed, it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, it denies {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the file.
      */
--- a/src/java.base/share/classes/java/nio/file/attribute/FileOwnerAttributeView.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/attribute/FileOwnerAttributeView.java	Mon Aug 17 10:12:16 2015 -0700
@@ -69,7 +69,7 @@
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
      *          installed, and it denies {@link
-     *          RuntimePermission}<tt>("accessUserInformation")</tt> or its
+     *          RuntimePermission}{@code ("accessUserInformation")} or its
      *          {@link SecurityManager#checkRead(String) checkRead} method
      *          denies read access to the file.
      */
@@ -93,7 +93,7 @@
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
      *          installed, and it denies {@link
-     *          RuntimePermission}<tt>("accessUserInformation")</tt> or its
+     *          RuntimePermission}{@code ("accessUserInformation")} or its
      *          {@link SecurityManager#checkWrite(String) checkWrite} method
      *          denies write access to the file.
      */
--- a/src/java.base/share/classes/java/nio/file/attribute/PosixFileAttributeView.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/attribute/PosixFileAttributeView.java	Mon Aug 17 10:12:16 2015 -0700
@@ -149,7 +149,8 @@
      * @throws  IOException                {@inheritDoc}
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
-     *          installed, and it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, and it denies
+     *          {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkRead(String) checkRead} method
      *          denies read access to the file.
      */
@@ -169,7 +170,8 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
-     *          installed, and it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, and it denies
+     *          {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the file.
      */
@@ -185,7 +187,8 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager is
-     *          installed, it denies {@link RuntimePermission}<tt>("accessUserInformation")</tt>
+     *          installed, it denies
+     *          {@link RuntimePermission}{@code ("accessUserInformation")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the file.
      */
--- a/src/java.base/share/classes/java/nio/file/attribute/UserDefinedFileAttributeView.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/attribute/UserDefinedFileAttributeView.java	Mon Aug 17 10:12:16 2015 -0700
@@ -89,7 +89,7 @@
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
      *          installed, and it denies {@link
-     *          RuntimePermission}<tt>("accessUserDefinedAttributes")</tt>
+     *          RuntimePermission}{@code ("accessUserDefinedAttributes")}
      *          or its {@link SecurityManager#checkRead(String) checkRead} method
      *          denies read access to the file.
      */
@@ -110,7 +110,7 @@
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
      *          installed, and it denies {@link
-     *          RuntimePermission}<tt>("accessUserDefinedAttributes")</tt>
+     *          RuntimePermission}{@code ("accessUserDefinedAttributes")}
      *          or its {@link SecurityManager#checkRead(String) checkRead} method
      *          denies read access to the file.
      */
@@ -156,7 +156,7 @@
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
      *          installed, and it denies {@link
-     *          RuntimePermission}<tt>("accessUserDefinedAttributes")</tt>
+     *          RuntimePermission}{@code ("accessUserDefinedAttributes")}
      *          or its {@link SecurityManager#checkRead(String) checkRead} method
      *          denies read access to the file.
      *
@@ -206,7 +206,7 @@
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
      *          installed, and it denies {@link
-     *          RuntimePermission}<tt>("accessUserDefinedAttributes")</tt>
+     *          RuntimePermission}{@code ("accessUserDefinedAttributes")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the file.
      */
@@ -223,7 +223,7 @@
      * @throws  SecurityException
      *          In the case of the default provider, a security manager is
      *          installed, and it denies {@link
-     *          RuntimePermission}<tt>("accessUserDefinedAttributes")</tt>
+     *          RuntimePermission}{@code ("accessUserDefinedAttributes")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the file.
      */
--- a/src/java.base/share/classes/java/nio/file/attribute/UserPrincipalLookupService.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/attribute/UserPrincipalLookupService.java	Mon Aug 17 10:12:16 2015 -0700
@@ -72,7 +72,8 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager is
-     *          installed, it checks {@link RuntimePermission}<tt>("lookupUserInformation")</tt>
+     *          installed, it checks
+     *          {@link RuntimePermission}{@code ("lookupUserInformation")}
      */
     public abstract UserPrincipal lookupPrincipalByName(String name)
         throws IOException;
@@ -97,7 +98,8 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager is
-     *          installed, it checks {@link RuntimePermission}<tt>("lookupUserInformation")</tt>
+     *          installed, it checks
+     *          {@link RuntimePermission}{@code ("lookupUserInformation")}
      */
     public abstract GroupPrincipal lookupPrincipalByGroupName(String group)
         throws IOException;
--- a/src/java.base/share/classes/java/nio/file/attribute/UserPrincipalNotFoundException.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/attribute/UserPrincipalNotFoundException.java	Mon Aug 17 10:12:16 2015 -0700
@@ -54,7 +54,7 @@
 
     /**
      * Returns the user principal name if this exception was created with the
-     * user principal name that was not found, otherwise <tt>null</tt>.
+     * user principal name that was not found, otherwise {@code null}.
      *
      * @return  the user principal name or {@code null}
      */
--- a/src/java.base/share/classes/java/nio/file/attribute/package-info.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/attribute/package-info.java	Mon Aug 17 10:12:16 2015 -0700
@@ -28,23 +28,23 @@
  *
  * <blockquote><table cellspacing=1 cellpadding=0 summary="Attribute views">
  * <tr><th align="left">Attribute views</th><th align="left">Description</th></tr>
- * <tr><td valign=top><tt><i>{@link java.nio.file.attribute.AttributeView}</i></tt></td>
+ * <tr><td valign=top><i>{@link java.nio.file.attribute.AttributeView}</i></td>
  *     <td>Can read or update non-opaque values associated with objects in a file system</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;<i>{@link java.nio.file.attribute.FileAttributeView}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;<i>{@link java.nio.file.attribute.FileAttributeView}</i></td>
  *     <td>Can read or update file attributes</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.BasicFileAttributeView}&nbsp;&nbsp;</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.BasicFileAttributeView}&nbsp;&nbsp;</i></td>
  *     <td>Can read or update a basic set of file attributes</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.PosixFileAttributeView}&nbsp;&nbsp;</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.PosixFileAttributeView}&nbsp;&nbsp;</i></td>
  *     <td>Can read or update POSIX defined file attributes</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.DosFileAttributeView}&nbsp;&nbsp;</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.DosFileAttributeView}&nbsp;&nbsp;</i></td>
  *     <td>Can read or update FAT file attributes</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.FileOwnerAttributeView}&nbsp;&nbsp;</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.FileOwnerAttributeView}&nbsp;&nbsp;</i></td>
  *     <td>Can read or update the owner of a file</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.AclFileAttributeView}&nbsp;&nbsp;</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.AclFileAttributeView}&nbsp;&nbsp;</i></td>
  *     <td>Can read or update Access Control Lists</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.UserDefinedFileAttributeView}&nbsp;&nbsp;</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;<i>{@link java.nio.file.attribute.UserDefinedFileAttributeView}&nbsp;&nbsp;</i></td>
  *     <td>Can read or update user-defined file attributes</td></tr>
- * <tr><td valign=top><tt>&nbsp;&nbsp;<i>{@link java.nio.file.attribute.FileStoreAttributeView}</i></tt></td>
+ * <tr><td valign=top>&nbsp;&nbsp;<i>{@link java.nio.file.attribute.FileStoreAttributeView}</i></td>
  *     <td>Can read or update file system attributes</td></tr>
  * </table></blockquote>
  *
@@ -100,7 +100,7 @@
  * </ul>
  *
  *
- * <p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
+ * <p> Unless otherwise noted, passing a {@code null} argument to a constructor
  * or method in any class or interface in this package will cause a {@link
  * java.lang.NullPointerException NullPointerException} to be thrown.
  *
--- a/src/java.base/share/classes/java/nio/file/spi/FileSystemProvider.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/spi/FileSystemProvider.java	Mon Aug 17 10:12:16 2015 -0700
@@ -102,7 +102,7 @@
      *
      * @throws  SecurityException
      *          If a security manager has been installed and it denies
-     *          {@link RuntimePermission}<tt>("fileSystemProvider")</tt>
+     *          {@link RuntimePermission}{@code ("fileSystemProvider")}
      */
     protected FileSystemProvider() {
         this(checkPermission());
@@ -644,7 +644,7 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager
-     *          is installed, it denies {@link LinkPermission}<tt>("symbolic")</tt>
+     *          is installed, it denies {@link LinkPermission}{@code ("symbolic")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to the path of the symbolic link.
      */
@@ -677,7 +677,7 @@
      *          if an I/O error occurs
      * @throws  SecurityException
      *          In the case of the default provider, and a security manager
-     *          is installed, it denies {@link LinkPermission}<tt>("hard")</tt>
+     *          is installed, it denies {@link LinkPermission}{@code ("hard")}
      *          or its {@link SecurityManager#checkWrite(String) checkWrite}
      *          method denies write access to either the  link or the
      *          existing file.
@@ -902,8 +902,8 @@
      *          In the case of the default provider, and a security manager is
      *          installed, the {@link SecurityManager#checkRead(String) checkRead}
      *          method is invoked to check read access to the file, and in
-     *          addition it checks {@link RuntimePermission}<tt>
-     *          ("getFileStoreAttributes")</tt>
+     *          addition it checks
+     *          {@link RuntimePermission}{@code ("getFileStoreAttributes")}
      */
     public abstract FileStore getFileStore(Path path) throws IOException;
 
--- a/src/java.base/share/classes/java/nio/file/spi/FileTypeDetector.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/spi/FileTypeDetector.java	Mon Aug 17 10:12:16 2015 -0700
@@ -62,7 +62,7 @@
      *
      * @throws  SecurityException
      *          If a security manager has been installed and it denies
-     *          {@link RuntimePermission}<tt>("fileTypeDetector")</tt>
+     *          {@link RuntimePermission}{@code ("fileTypeDetector")}
      */
     protected FileTypeDetector() {
         this(checkPermission());
--- a/src/java.base/share/classes/java/nio/file/spi/package-info.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/file/spi/package-info.java	Mon Aug 17 10:12:16 2015 -0700
@@ -24,12 +24,12 @@
  */
 
 /**
- * Service-provider classes for the <tt>{@link java.nio.file}</tt> package.
+ * Service-provider classes for the {@link java.nio.file} package.
  *
  * <p> Only developers who are defining new file system providers or file type
  * detectors should need to make direct use of this package.  </p>
  *
- * <p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
+ * <p> Unless otherwise noted, passing a {@code null} argument to a constructor
  * or method in any class or interface in this package will cause a {@link
  * java.lang.NullPointerException NullPointerException} to be thrown.
  *
--- a/src/java.base/share/classes/java/nio/package-info.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/nio/package-info.java	Mon Aug 17 10:12:16 2015 -0700
@@ -52,7 +52,7 @@
  *
  *  </ul>
  *
- * <p> The <tt>java.nio</tt> package defines the buffer classes, which
+ * <p> The {@code java.nio} package defines the buffer classes, which
  * are used throughout the NIO APIs.  The charset API is defined in
  * the {@link java.nio.charset} package, and the channel and selector
  * APIs are defined in the {@link java.nio.channels} package.  Each of
@@ -64,26 +64,26 @@
  *
  * <blockquote><table cellspacing=1 cellpadding=0 summary="Description of the various buffers">
  *   <tr><th align="left">Buffers</th><th align="left">Description</th></tr>
- *   <tr><td valign=top><tt>{@link java.nio.Buffer}</tt></td>
+ *   <tr><td valign=top>{@link java.nio.Buffer}</td>
  *       <td>Position, limit, and capacity;
  *           <br>clear, flip, rewind, and mark/reset</td></tr>
- *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.ByteBuffer}</tt></td>
+ *   <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.ByteBuffer}</td>
  *       <td>Get/put, compact, views; allocate,&nbsp;wrap</td></tr>
- *   <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;{@link java.nio.MappedByteBuffer}&nbsp;&nbsp;</tt></td>
+ *   <tr><td valign=top>&nbsp;&nbsp;&nbsp;&nbsp;{@link java.nio.MappedByteBuffer}&nbsp;&nbsp;</td>
  *       <td>A byte buffer mapped to a file</td></tr>
- *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.CharBuffer}</tt></td>
+ *   <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.CharBuffer}</td>
  *       <td>Get/put, compact; allocate,&nbsp;wrap</td></tr>
- *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.DoubleBuffer}</tt></td>
+ *   <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.DoubleBuffer}</td>
  *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
- *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.FloatBuffer}</tt></td>
+ *   <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.FloatBuffer}</td>
  *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
- *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.IntBuffer}</tt></td>
+ *   <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.IntBuffer}</td>
  *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
- *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.LongBuffer}</tt></td>
+ *   <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.LongBuffer}</td>
  *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
- *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.ShortBuffer}</tt></td>
+ *   <tr><td valign=top>&nbsp;&nbsp;{@link java.nio.ShortBuffer}</td>
  *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
- *   <tr><td valign=top><tt>{@link java.nio.ByteOrder}</tt></td>
+ *   <tr><td valign=top>{@link java.nio.ByteOrder}</td>
  *       <td>Typesafe enumeration for&nbsp;byte&nbsp;orders</td></tr>
  * </table></blockquote>
  *
@@ -129,7 +129,7 @@
  *
  * </ul>
  *
- * <p> Unless otherwise noted, passing a <tt>null</tt> argument to a
+ * <p> Unless otherwise noted, passing a {@code null} argument to a
  * constructor or method in any class or interface in this package
  * will cause a {@link java.lang.NullPointerException
  * NullPointerException} to be thrown.
--- a/src/java.base/share/classes/java/util/Formatter.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/java/util/Formatter.java	Mon Aug 17 10:12:16 2015 -0700
@@ -273,6 +273,10 @@
  *
  * </ol>
  *
+ * <p> For category <i>General</i>, <i>Character</i>, <i>Numberic</i>,
+ * <i>Integral</i> and <i>Date/Time</i> conversion, unless otherwise specified,
+ * if the argument <i>arg</i> is {@code null}, then the result is "{@code null}".
+ *
  * <p> The following table summarizes the supported conversions.  Conversions
  * denoted by an upper-case character (i.e. {@code 'B'}, {@code 'H'},
  * {@code 'S'}, {@code 'C'}, {@code 'X'}, {@code 'E'}, {@code 'G'},
@@ -301,14 +305,12 @@
  *
  * <tr><td valign="top"> {@code 'h'}, {@code 'H'}
  *     <td valign="top"> general
- *     <td> If the argument <i>arg</i> is {@code null}, then the result is
- *     "{@code null}".  Otherwise, the result is obtained by invoking
+ *     <td> The result is obtained by invoking
  *     {@code Integer.toHexString(arg.hashCode())}.
  *
  * <tr><td valign="top"> {@code 's'}, {@code 'S'}
  *     <td valign="top"> general
- *     <td> If the argument <i>arg</i> is {@code null}, then the result is
- *     "{@code null}".  If <i>arg</i> implements {@link Formattable}, then
+ *     <td> If <i>arg</i> implements {@link Formattable}, then
  *     {@link Formattable#formatTo arg.formatTo} is invoked. Otherwise, the
  *     result is obtained by invoking {@code arg.toString()}.
  *
@@ -683,6 +685,10 @@
  * methods such as {@link String#format(String,Object...) String.format} and
  * {@link java.io.PrintStream#printf(String,Object...) PrintStream.printf}.
  *
+ * <p> For category <i>General</i>, <i>Character</i>, <i>Numberic</i>,
+ * <i>Integral</i> and <i>Date/Time</i> conversion, unless otherwise specified,
+ * if the argument <i>arg</i> is {@code null}, then the result is "{@code null}".
+ *
  * <p> Conversions denoted by an upper-case character (i.e. {@code 'B'},
  * {@code 'H'}, {@code 'S'}, {@code 'C'}, {@code 'X'}, {@code 'E'},
  * {@code 'G'}, {@code 'A'}, and {@code 'T'}) are the same as those for the
@@ -722,9 +728,8 @@
  *     <td valign="top"> <code>'&#92;u0068'</code>
  *     <td> Produces a string representing the hash code value of the object.
  *
- *     <p> If the argument, <i>arg</i> is {@code null}, then the
- *     result is "{@code null}".  Otherwise, the result is obtained
- *     by invoking {@code Integer.toHexString(arg.hashCode())}.
+ *     <p> The result is obtained by invoking
+ *     {@code Integer.toHexString(arg.hashCode())}.
  *
  *     <p> If the {@code '#'} flag is given, then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
@@ -737,8 +742,7 @@
  *     <td valign="top"> <code>'&#92;u0073'</code>
  *     <td> Produces a string.
  *
- *     <p> If the argument is {@code null}, then the result is
- *     "{@code null}".  If the argument implements {@link Formattable}, then
+ *     <p> If the argument implements {@link Formattable}, then
  *     its {@link Formattable#formatTo formatTo} method is invoked.
  *     Otherwise, the result is obtained by invoking the argument's
  *     {@code toString()} method.
--- a/src/java.base/share/classes/javax/net/ssl/SSLContext.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/javax/net/ssl/SSLContext.java	Mon Aug 17 10:12:16 2015 -0700
@@ -39,7 +39,7 @@
  * <p> Every implementation of the Java platform is required to support the
  * following standard {@code SSLContext} protocol:
  * <ul>
- * <li><tt>TLSv1</tt></li>
+ * <li>{@code TLSv1}</li>
  * </ul>
  * This protocol is described in the <a href=
  * "{@docRoot}/../technotes/guides/security/StandardNames.html#SSLContext">
--- a/src/java.base/share/classes/javax/net/ssl/SSLException.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/javax/net/ssl/SSLException.java	Mon Aug 17 10:12:16 2015 -0700
@@ -53,13 +53,13 @@
     }
 
     /**
-     * Creates a <code>SSLException</code> with the specified
+     * Creates a {@code SSLException} 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
+     *          {@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>SSLException</code> with the specified cause
-     * and a detail message of <tt>(cause==null ? null : cause.toString())</tt>
+     * Creates a {@code SSLException} 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
+     *          {@link #getCause()} method).  (A {@code null} value is
      *          permitted, and indicates that the cause is nonexistent or
      *          unknown.)
      * @since 1.5
--- a/src/java.base/share/classes/sun/net/ftp/FtpClientProvider.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/sun/net/ftp/FtpClientProvider.java	Mon Aug 17 10:12:16 2015 -0700
@@ -52,7 +52,7 @@
      * Initializes a new instance of this class.
      *
      * @throws SecurityException if a security manager is installed and it denies
-     *         {@link RuntimePermission}<tt>("ftpClientProvider")</tt>
+     *         {@link RuntimePermission}{@code ("ftpClientProvider")}
      */
     protected FtpClientProvider() {
         SecurityManager sm = System.getSecurityManager();
@@ -108,7 +108,7 @@
      * <ol>
      *
      *   <li><p> If the system property
-     *   <tt>java.net.FtpClientProvider</tt> is defined then it is
+     *   {@code java.net.FtpClientProvider} is defined then it is
      *   taken to be the fully-qualified name of a concrete provider class.
      *   The class is loaded and instantiated; if this process fails then an
      *   unspecified unchecked error or exception is thrown.  </p></li>
@@ -116,8 +116,8 @@
      *   <li><p> If a provider class has been installed in a jar file that is
      *   visible to the system class loader, and that jar file contains a
      *   provider-configuration file named
-     *   <tt>java.net.FtpClientProvider</tt> in the resource
-     *   directory <tt>META-INF/services</tt>, then the first class name
+     *   {@code java.net.FtpClientProvider} in the resource
+     *   directory {@code META-INF/services}, then the first class name
      *   specified in that file is taken.  The class is loaded and
      *   instantiated; if this process fails then an unspecified unchecked error or exception is
      *   thrown.  </p></li>
--- a/src/java.base/share/classes/sun/nio/ByteBuffered.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/sun/nio/ByteBuffered.java	Mon Aug 17 10:12:16 2015 -0700
@@ -29,11 +29,11 @@
 import java.io.IOException;
 
 /** This is an interface to adapt existing APIs to use {@link java.nio.ByteBuffer
- *  <tt>ByteBuffers</tt>} as the underlying
+ *  ByteBuffers} as the underlying
  *  data format.  Only the initial producer and final consumer have to be changed.<p>
  *
- *  For example, the Zip/Jar code supports {@link java.io.InputStream <tt>InputStreams</tt>}.
- *  To make the Zip code use {@link java.nio.MappedByteBuffer <tt>MappedByteBuffers</tt>} as
+ *  For example, the Zip/Jar code supports {@link java.io.InputStream InputStreams}.
+ *  To make the Zip code use {@link java.nio.MappedByteBuffer MappedByteBuffers} as
  *  the underlying data structure, it can create a class of InputStream that wraps the ByteBuffer,
  *  and implements the ByteBuffered interface. A co-operating class several layers
  *  away can ask the InputStream if it is an instance of ByteBuffered, then
@@ -42,12 +42,12 @@
 public interface ByteBuffered {
 
      /**
-     * Returns the <tt>ByteBuffer</tt> behind this object, if this particular
-     * instance has one. An implementation of <tt>getByteBuffer()</tt> is allowed
-     * to return <tt>null</tt> for any reason.
+     * Returns the {@code ByteBuffer} behind this object, if this particular
+     * instance has one. An implementation of {@code getByteBuffer()} is allowed
+     * to return {@code null} for any reason.
      *
-     * @return  The <tt>ByteBuffer</tt>, if this particular instance has one,
-     *          or <tt>null</tt> otherwise.
+     * @return  The {@code ByteBuffer}, if this particular instance has one,
+     *          or {@code null} otherwise.
      *
      * @throws  IOException
      *          If the ByteBuffer is no longer valid.
--- a/src/java.base/share/classes/sun/nio/ch/AllocatedNativeObject.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/sun/nio/ch/AllocatedNativeObject.java	Mon Aug 17 10:12:16 2015 -0700
@@ -36,14 +36,14 @@
 {
 
     /**
-     * Allocates a memory area of at least <tt>size</tt> bytes outside of the
+     * Allocates a memory area of at least {@code size} bytes outside of the
      * Java heap and creates a native object for that area.
      *
      * @param  size
      *         Number of bytes to allocate
      *
      * @param  pageAligned
-     *         If <tt>true</tt> then the area will be aligned on a hardware
+     *         If {@code true} then the area will be aligned on a hardware
      *         page boundary
      *
      * @throws OutOfMemoryError
--- a/src/java.base/share/classes/sun/security/rsa/RSAPadding.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/sun/security/rsa/RSAPadding.java	Mon Aug 17 10:12:16 2015 -0700
@@ -319,18 +319,17 @@
             }
             // generate non-zero padding bytes
             // use a buffer to reduce calls to SecureRandom
-            byte[] r = new byte[64];
-            int i = -1;
-            while (psSize-- > 0) {
-                int b;
-                do {
-                    if (i < 0) {
-                        random.nextBytes(r);
-                        i = r.length - 1;
+            while (psSize > 0) {
+                // extra bytes to avoid zero bytes,
+                // number of zero bytes <= 4 in 98% cases
+                byte[] r = new byte[psSize + 4];
+                random.nextBytes(r);
+                for (int i = 0; i < r.length && psSize > 0; i++) {
+                    if (r[i] != 0) {
+                        padded[k++] = r[i];
+                        psSize--;
                     }
-                    b = r[i--] & 0xff;
-                } while (b == 0);
-                padded[k++] = (byte)b;
+                }
             }
         }
         return padded;
--- a/src/java.base/share/classes/sun/util/PreHashedMap.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/classes/sun/util/PreHashedMap.java	Mon Aug 17 10:12:16 2015 -0700
@@ -56,7 +56,7 @@
  *
  * }</pre></blockquote>
  *
- * <p> The <tt>init</tt> method is invoked by the <tt>PreHashedMap</tt>
+ * <p> The {@code init} method is invoked by the {@code PreHashedMap}
  * constructor with an object array long enough for the map's rows.  The method
  * must construct the hash chain for each row and store it in the appropriate
  * element of the array.
@@ -73,7 +73,7 @@
  * methods in the {@link java.util.Collections} utility class.
  *
  * <p> In the JDK build, subclasses of this class are typically created via the
- * <tt>Hasher</tt> program in the <tt>make/tools/Hasher</tt> directory.
+ * {@code Hasher} program in the {@code make/tools/Hasher} directory.
  *
  * @author Mark Reinhold
  * @since 1.5
@@ -95,7 +95,7 @@
      * Creates a new map.
      *
      * <p> This constructor invokes the {@link #init init} method, passing it a
-     * newly-constructed row array that is <tt>rows</tt> elements long.
+     * newly-constructed row array that is {@code rows} elements long.
      *
      * @param rows
      *        The number of rows in the map
--- a/src/java.base/share/conf/security/java.policy	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/share/conf/security/java.policy	Mon Aug 17 10:12:16 2015 -0700
@@ -23,6 +23,14 @@
         permission java.security.AllPermission;
 };
 
+grant codeBase "jrt:/jdk.scripting.nashorn.shell" {
+        permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.internal.le" {
+        permission java.security.AllPermission;
+};
+
 grant codeBase "jrt:/jdk.crypto.ucrypto" {
         permission java.lang.RuntimePermission "accessClassInPackage.sun.security.*";
         permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/native/libnio/nio_util.c	Mon Aug 17 10:12:16 2015 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "jni.h"
+#include "jvm.h"
+#include "jni_util.h"
+
+JNIEXPORT jint JNICALL
+JNI_OnLoad(JavaVM *vm, void *reserved)
+{
+    JNIEnv *env;
+
+    if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
+        return JNI_EVERSION; /* JNI version not supported */
+    }
+
+    return JNI_VERSION_1_2;
+}
--- a/src/java.base/solaris/native/libjava/ProcessHandleImpl_solaris.c	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/solaris/native/libjava/ProcessHandleImpl_solaris.c	Mon Aug 17 10:12:16 2015 -0700
@@ -24,368 +24,28 @@
  */
 
 #include "jni.h"
-#include "jni_util.h"
-#include "java_lang_ProcessHandleImpl.h"
-#include "java_lang_ProcessHandleImpl_Info.h"
-
-
-#include <stdio.h>
-#include <ctype.h>
-#include <dirent.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <procfs.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <limits.h>
-
-/**
- * Implementations of ProcessHandleImpl functions that are
- * NOT common to all Unix variants:
- * - getProcessPids0(pid, pidArray)
- *
- * Implementations of ProcessHandleImpl_Info
- * - totalTime, startTime
- * - Command
- * - Arguments
- */
-
-/*
- * Signatures for internal OS specific functions.
- */
-static pid_t getStatInfo(JNIEnv *env, pid_t pid,
-                                     jlong *totalTime, jlong* startTime,
-                                     uid_t *uid);
-static void getCmdlineInfo(JNIEnv *env, jobject jinfo, pid_t pid);
-
-extern jstring uidToUser(JNIEnv* env, uid_t uid);
-
-/* Field id for jString 'command' in java.lang.ProcessHandle.Info */
-static jfieldID ProcessHandleImpl_Info_commandID;
-
-/* Field id for jString[] 'arguments' in java.lang.ProcessHandle.Info */
-static jfieldID ProcessHandleImpl_Info_argumentsID;
-
-/* Field id for jlong 'totalTime' in java.lang.ProcessHandle.Info */
-static jfieldID ProcessHandleImpl_Info_totalTimeID;
-
-/* Field id for jlong 'startTime' in java.lang.ProcessHandle.Info */
-static jfieldID ProcessHandleImpl_Info_startTimeID;
-
-/* Field id for jString 'user' in java.lang.ProcessHandleImpl.Info */
-static jfieldID ProcessHandleImpl_Info_userID;
-
-/* static value for clock ticks per second. */
-static long clock_ticks_per_second;
 
-/**************************************************************
- * Static method to initialize field IDs and the ticks per second rate.
- *
- * Class:     java_lang_ProcessHandleImpl_Info
- * Method:    initIDs
- * Signature: ()V
- */
-JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_00024Info_initIDs(JNIEnv *env, jclass clazz) {
-    CHECK_NULL(ProcessHandleImpl_Info_commandID = (*env)->GetFieldID(env,
-        clazz, "command", "Ljava/lang/String;"));
-    CHECK_NULL(ProcessHandleImpl_Info_argumentsID = (*env)->GetFieldID(env,
-        clazz, "arguments", "[Ljava/lang/String;"));
-    CHECK_NULL(ProcessHandleImpl_Info_totalTimeID = (*env)->GetFieldID(env,
-        clazz, "totalTime", "J"));
-    CHECK_NULL(ProcessHandleImpl_Info_startTimeID = (*env)->GetFieldID(env,
-        clazz, "startTime", "J"));
-    CHECK_NULL(ProcessHandleImpl_Info_userID = (*env)->GetFieldID(env,
-        clazz, "user", "Ljava/lang/String;"));
-}
-
-/**************************************************************
- * Static method to initialize the ticks per second rate.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    initNative
- * Signature: ()V
- */
-JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_initNative(JNIEnv *env, jclass clazz) {
-    clock_ticks_per_second = sysconf(_SC_CLK_TCK);
-}
+#include "ProcessHandleImpl_unix.h"
 
-/*
- * Check if a process is alive.
- * Return the start time (ms since 1970) if it is available.
- * If the start time is not available return 0.
- * If the pid is invalid, return -1.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    isAlive0
- * Signature: (J)J
- */
-JNIEXPORT jlong JNICALL
-Java_java_lang_ProcessHandleImpl_isAlive0(JNIEnv *env, jobject obj, jlong jpid) {
-    pid_t pid = (pid_t) jpid;
-    jlong startTime = 0L;
-    jlong totalTime = 0L;
-    uid_t uid = -1;
-    pid_t ppid = getStatInfo(env, pid, &totalTime, &startTime, &uid);
-    return (ppid < 0) ? -1 : startTime;
-}
-
-/*
- * Returns the parent pid of the requested pid.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    parent0
- * Signature: (J)J
- */
-JNIEXPORT jlong JNICALL
-Java_java_lang_ProcessHandleImpl_parent0(JNIEnv *env,
-                                         jobject obj,
-                                         jlong jpid,
-                                         jlong startTime) {
-    pid_t pid = (pid_t) jpid;
-    pid_t ppid = -1;
-
-    if (pid == getpid()) {
-        ppid = getppid();
-    } else {
-        jlong start = 0L;
-        jlong total = 0L;
-        uid_t uid = -1;
-
-        pid_t ppid = getStatInfo(env, pid, &total, &start, &uid);
-        if (start != startTime
-            && start != 0
-            && startTime != 0) {
-            ppid = -1;
-        }
-    }
-    return (jlong) ppid;
-}
+#include <procfs.h>
 
 /*
- * Returns the children of the requested pid and optionally each parent.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    getChildPids
- * Signature: (J[J)I
- *
- * Reads /proc and accumulates any process who parent pid matches.
- * The resulting pids are stored into the array of longs.
- * The number of pids is returned if they all fit.
- * If the array is too short, the desired length is returned.
+ * Implementation of native ProcessHandleImpl functions for Solaris.
+ * See ProcessHandleImpl_unix.c for more details.
  */
-JNIEXPORT jint JNICALL
-Java_java_lang_ProcessHandleImpl_getProcessPids0(JNIEnv *env,
-                                                 jclass clazz,
-                                                 jlong jpid,
-                                                 jlongArray jarray,
-                                                 jlongArray jparentArray,
-                                                 jlongArray jstimesArray) {
-    DIR* dir;
-    struct dirent* ptr;
-    pid_t pid = (pid_t) jpid;
-    jlong* pids = NULL;
-    jlong* ppids = NULL;
-    jlong* stimes = NULL;
-    jsize parentArraySize = 0;
-    jsize arraySize = 0;
-    jsize stimesSize = 0;
-    jsize count = 0;
-    char procname[32];
-
-    arraySize = (*env)->GetArrayLength(env, jarray);
-    JNU_CHECK_EXCEPTION_RETURN(env, 0);
-    if (jparentArray != NULL) {
-        parentArraySize = (*env)->GetArrayLength(env, jparentArray);
-        JNU_CHECK_EXCEPTION_RETURN(env, 0);
-
-        if (arraySize != parentArraySize) {
-            JNU_ThrowIllegalArgumentException(env, "array sizes not equal");
-            return 0;
-        }
-    }
-    if (jstimesArray != NULL) {
-        stimesSize = (*env)->GetArrayLength(env, jstimesArray);
-        JNU_CHECK_EXCEPTION_RETURN(env, -1);
-
-        if (arraySize != stimesSize) {
-            JNU_ThrowIllegalArgumentException(env, "array sizes not equal");
-            return 0;
-        }
-    }
-
-    /*
-     * To locate the children we scan /proc looking for files that have a
-     * positive integer as a filename.
-     */
-    if ((dir = opendir("/proc")) == NULL) {
-        JNU_ThrowByNameWithLastError(env,
-            "java/lang/Runtime", "Unable to open /proc");
-        return 0;
-    }
 
-    do { // Block to break out of on Exception
-        pids = (*env)->GetLongArrayElements(env, jarray, NULL);
-        if (pids == NULL) {
-            break;
-        }
-        if (jparentArray != NULL) {
-            ppids  = (*env)->GetLongArrayElements(env, jparentArray, NULL);
-            if (ppids == NULL) {
-                break;
-            }
-        }
-        if (jstimesArray != NULL) {
-            stimes  = (*env)->GetLongArrayElements(env, jstimesArray, NULL);
-            if (stimes == NULL) {
-                break;
-            }
-        }
-
-        while ((ptr = readdir(dir)) != NULL) {
-            pid_t ppid = 0;
-            jlong totalTime = 0L;
-            jlong startTime = 0L;
-            uid_t uid; // value unused
-
-            /* skip files that aren't numbers */
-            pid_t childpid = (pid_t) atoi(ptr->d_name);
-            if ((int) childpid <= 0) {
-                continue;
-            }
+void os_initNative(JNIEnv *env, jclass clazz) {}
 
-            // Read /proc/pid/stat and get the parent pid, and start time
-            ppid = getStatInfo(env, childpid, &totalTime, &startTime, &uid);
-            if (ppid >= 0 && (pid == 0 || ppid == pid)) {
-                if (count < arraySize) {
-                    // Only store if it fits
-                    pids[count] = (jlong) childpid;
-
-                    if (ppids != NULL) {
-                        // Store the parent Pid
-                        ppids[count] = (jlong) ppid;
-                    }
-                    if (stimes != NULL) {
-                        // Store the process start time
-                        stimes[count] = startTime;
-                    }
-                }
-                count++; // Count to tabulate size needed
-            }
-        }
-    } while (0);
-
-    if (pids != NULL) {
-        (*env)->ReleaseLongArrayElements(env, jarray, pids, 0);
-    }
-    if (ppids != NULL) {
-        (*env)->ReleaseLongArrayElements(env, jparentArray, ppids, 0);
-    }
-    if (stimes != NULL) {
-        (*env)->ReleaseLongArrayElements(env, jstimesArray, stimes, 0);
-    }
-
-    closedir(dir);
-    // If more pids than array had size for; count will be greater than array size
-    return count;
+jint os_getChildren(JNIEnv *env, jlong jpid, jlongArray jarray,
+                    jlongArray jparentArray, jlongArray jstimesArray) {
+    return unix_getChildren(env, jpid, jarray, jparentArray, jstimesArray);
 }
 
-/**************************************************************
- * Implementation of ProcessHandleImpl_Info native methods.
- */
-
-/*
- * Fill in the Info object from the OS information about the process.
- *
- * Class:     java_lang_ProcessHandleImpl_Info
- * Method:    info0
- * Signature: (J)V
- */
-JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_00024Info_info0(JNIEnv *env,
-                                                 jobject jinfo,
-                                                  jlong jpid) {
-    pid_t pid = (pid_t) jpid;
-    jlong startTime = 0L;
-    jlong totalTime = 0L;
-    uid_t uid = -1;
-    pid_t ppid = getStatInfo(env, pid, &totalTime, &startTime, &uid);
-
-    getCmdlineInfo(env, jinfo, pid);
-
-    if (ppid > 0) {
-        jstring str;
-        (*env)->SetLongField(env, jinfo, ProcessHandleImpl_Info_startTimeID, startTime);
-        JNU_CHECK_EXCEPTION(env);
-
-        (*env)->SetLongField(env, jinfo, ProcessHandleImpl_Info_totalTimeID, totalTime);
-        JNU_CHECK_EXCEPTION(env);
-
-        CHECK_NULL((str = uidToUser(env, uid)));
-        (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_userID, str);
-        JNU_CHECK_EXCEPTION(env);
-    }
+pid_t os_getParentPidAndTimings(JNIEnv *env, pid_t pid, jlong *total, jlong *start) {
+    return unix_getParentPidAndTimings(env, pid, total, start);
 }
 
-/**
- * Read /proc/<pid>/status and return the ppid, total cputime and start time.
- * Return: -1 is fail;  zero is unknown; >  0 is parent pid
- */
-static pid_t getStatInfo(JNIEnv *env, pid_t pid,
-                                      jlong *totalTime, jlong* startTime,
-                                      uid_t* uid) {
-    FILE* fp;
-    psinfo_t psinfo;
-    char fn[32];
-    int ret;
-
-    /*
-     * Try to open /proc/%d/status
-     */
-    snprintf(fn, sizeof fn, "/proc/%d/psinfo", pid);
-    fp = fopen(fn, "r");
-    if (fp == NULL) {
-        return -1;
-    }
-
-    ret = fread(&psinfo, 1, (sizeof psinfo), fp);
-    fclose(fp);
-    if (ret < (sizeof psinfo)) {
-        return -1;
-    }
-
-    *totalTime = psinfo.pr_time.tv_sec * 1000000000L + psinfo.pr_time.tv_nsec;
-
-    *startTime = psinfo.pr_start.tv_sec * (jlong)1000 +
-                 psinfo.pr_start.tv_nsec / 1000000;
-
-    *uid = psinfo.pr_uid;
-
-    return (pid_t) psinfo.pr_ppid;
+void os_getCmdlineAndUserInfo(JNIEnv *env, jobject jinfo, pid_t pid) {
+    unix_getCmdlineAndUserInfo(env, jinfo, pid);
 }
 
-static void getCmdlineInfo(JNIEnv *env, jobject jinfo, pid_t pid) {
-    char fn[32];
-    char exePath[PATH_MAX];
-    jstring str = NULL;
-    int ret;
-
-    /*
-     * The path to the executable command is the link in /proc/<pid>/paths/a.out.
-     */
-    snprintf(fn, sizeof fn, "/proc/%d/path/a.out", pid);
-    if ((ret = readlink(fn, exePath, PATH_MAX - 1)) < 0) {
-        return;
-    }
-
-    // null terminate and create String to store for command
-    exePath[ret] = '\0';
-    CHECK_NULL(str = JNU_NewStringPlatform(env, exePath));
-    (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_commandID, str);
-    JNU_CHECK_EXCEPTION(env);
-}
-
--- a/src/java.base/unix/classes/sun/net/www/protocol/file/Handler.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/unix/classes/sun/net/www/protocol/file/Handler.java	Mon Aug 17 10:12:16 2015 -0700
@@ -116,8 +116,8 @@
      * Compares the host components of two URLs.
      * @param u1 the URL of the first host to compare
      * @param u2 the URL of the second host to compare
-     * @return  <tt>true</tt> if and only if they
-     * are equal, <tt>false</tt> otherwise.
+     * @return  {@code true} if and only if they
+     * are equal, {@code false} otherwise.
      */
     protected boolean hostsEqual(URL u1, URL u2) {
         /*
--- a/src/java.base/unix/classes/sun/nio/fs/MimeTypesFileTypeDetector.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/unix/classes/sun/nio/fs/MimeTypesFileTypeDetector.java	Mon Aug 17 10:12:16 2015 -0700
@@ -159,7 +159,7 @@
 
                 final String EXTEQUAL = "exts=";
                 String extRegex = "\\b" + EXTEQUAL +
-                        "(\"[\\p{Graph}|\\p{Blank}]+?\"|\\p{Graph}+\\b)";
+                        "(\"[\\p{Graph}\\p{Blank}]+?\"|\\p{Graph}+\\b)";
                 Pattern extPattern = Pattern.compile(extRegex);
                 Matcher extMatcher = extPattern.matcher(entry);
 
@@ -169,7 +169,7 @@
                     if (exts.charAt(0) == '"') {
                         exts = exts.substring(1, exts.length() - 1);
                     }
-                    String[] extList = exts.split("[\\p{Blank}|\\p{Punct}]+");
+                    String[] extList = exts.split("[\\p{Blank}\\p{Punct}]+");
                     for (String ext : extList) {
                         putIfAbsent(ext, type);
                     }
--- a/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c	Mon Aug 17 10:12:16 2015 -0700
@@ -28,31 +28,87 @@
 #include "java_lang_ProcessHandleImpl.h"
 #include "java_lang_ProcessHandleImpl_Info.h"
 
+#include "ProcessHandleImpl_unix.h"
+
 
 #include <stdio.h>
-
 #include <errno.h>
 #include <fcntl.h>
 #include <pwd.h>
 #include <signal.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <string.h>
+#include <dirent.h>
+#include <ctype.h>
+#include <limits.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
 
-#include <string.h>
-#include <dirent.h>
-#include <ctype.h>
+#ifdef _AIX
+#include <sys/procfs.h>
+#endif
+#ifdef __solaris__
+#include <procfs.h>
+#endif
 
 /**
- * Implementations of ProcessHandleImpl functions that are common to all
- * Unix variants:
- * - waitForProcessExit0(pid, reap)
- * - getCurrentPid0()
- * - destroy0(pid, force)
+ * This file contains the implementation of the native ProcessHandleImpl
+ * functions which are common to all Unix variants.
+ *
+ * The currently supported Unix variants are Solaris, Linux, MaxOS X and AIX.
+ * The various similarities and differences between these systems make it hard
+ * to find a clear boundary between platform specific and shared code.
+ *
+ * In order to ease code sharing between the platforms while still keeping the
+ * code as clean as possible (i.e. free of preprocessor macros) we use the
+ * following source code layout (remember that ProcessHandleImpl_unix.c will
+ * be compiled on EVERY Unix platform while ProcessHandleImpl_<os>.c will be
+ * only compiled on the specific OS):
+ *
+ * - all the JNI wrappers for the ProcessHandleImpl functions go into this file
+ * - if their implementation is common on ALL the supported Unix platforms it
+ *   goes right into the JNI wrappers
+ * - if the whole function or substantial parts of it are platform dependent,
+ *   the implementation goes into os_<function_name> functions in
+ *   ProcessHandleImpl_<os>.c
+ * - if at least two platforms implement an os_<function_name> function in the
+ *   same way, this implementation is factored out into unix_<function_name>,
+ *   placed into this file and called from the corresponding os_<function_name>
+ *   function.
+ * - For convenience, all the os_ and unix_ functions are declared in
+ *   ProcessHandleImpl_unix.h which is included into every
+ *   ProcessHandleImpl_<os>.c file.
+ *
+ * Example 1:
+ * ----------
+ * The implementation of Java_java_lang_ProcessHandleImpl_initNative()
+ * is the same on all platforms except on Linux where it initilizes one
+ * additional field. So we place the implementation right into
+ * Java_java_lang_ProcessHandleImpl_initNative() but add call to
+ * os_init() at the end of the function which is empty on all platforms
+ * except Linux where it performs the additionally initializations.
+ *
+ * Example 2:
+ * ----------
+ * The implementation of Java_java_lang_ProcessHandleImpl_00024Info_info0 is the
+ * same on Solaris and AIX but different on Linux and MacOSX. We therefore simply
+ * call the helpers os_getParentPidAndTimings() and os_getCmdlineAndUserInfo().
+ * The Linux and MaxOS X versions of these functions (in the corresponding files
+ * ProcessHandleImpl_linux.c and ProcessHandleImpl_macosx.c) directly contain
+ * the platform specific implementations while the Solaris and AIX
+ * implementations simply call back to unix_getParentPidAndTimings() and
+ * unix_getCmdlineAndUserInfo() which are implemented right in this file.
+ *
+ * The term "same implementation" is still a question of interpretation. It my
+ * be acceptable to have a few ifdef'ed lines if that allows the sharing of a
+ * huge function. On the other hand, if the platform specific code in a shared
+ * function grows over a certain limit, it may be better to refactor that
+ * functionality into corresponding, platform-specific os_ functions.
  */
 
+
 #ifndef WIFEXITED
 #define WIFEXITED(status) (((status)&0xFF) == 0)
 #endif
@@ -69,6 +125,19 @@
 #define WTERMSIG(status) ((status)&0x7F)
 #endif
 
+#ifdef __solaris__
+/* The child exited because of a signal.
+ * The best value to return is 0x80 + signal number,
+ * because that is what all Unix shells do, and because
+ * it allows callers to distinguish between process exit and
+ * process death by signal.
+ * Unfortunately, the historical behavior on Solaris is to return
+ * the signal number, and we preserve this for compatibility. */
+#define WTERMSIG_RETURN(status) WTERMSIG(status)
+#else
+#define WTERMSIG_RETURN(status) (WTERMSIG(status) + 0x80)
+#endif
+
 #define RESTARTABLE(_cmd, _result) do { \
   do { \
     _result = _cmd; \
@@ -81,21 +150,83 @@
   } while((_result == NULL) && (errno == EINTR)); \
 } while(0)
 
-#ifdef __solaris__
-    #define STAT_FILE "/proc/%d/status"
-#else
-    #define STAT_FILE "/proc/%d/stat"
-#endif
+
+/* Field id for jString 'command' in java.lang.ProcessHandleImpl.Info */
+jfieldID ProcessHandleImpl_Info_commandID;
+
+/* Field id for jString 'commandLine' in java.lang.ProcessHandleImpl.Info */
+jfieldID ProcessHandleImpl_Info_commandLineID;
+
+/* Field id for jString[] 'arguments' in java.lang.ProcessHandleImpl.Info */
+jfieldID ProcessHandleImpl_Info_argumentsID;
+
+/* Field id for jlong 'totalTime' in java.lang.ProcessHandleImpl.Info */
+jfieldID ProcessHandleImpl_Info_totalTimeID;
+
+/* Field id for jlong 'startTime' in java.lang.ProcessHandleImpl.Info */
+jfieldID ProcessHandleImpl_Info_startTimeID;
+
+/* Field id for jString 'user' in java.lang.ProcessHandleImpl.Info */
+jfieldID ProcessHandleImpl_Info_userID;
+
+/* Size of password or group entry when not available via sysconf */
+#define ENT_BUF_SIZE   1024
+/* The value for the size of the buffer used by getpwuid_r(). The result of */
+/* sysconf(_SC_GETPW_R_SIZE_MAX) if available or ENT_BUF_SIZE otherwise. */
+static long getpw_buf_size;
+
+/**************************************************************
+ * Static method to initialize field IDs and the ticks per second rate.
+ *
+ * Class:     java_lang_ProcessHandleImpl_Info
+ * Method:    initIDs
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL
+Java_java_lang_ProcessHandleImpl_00024Info_initIDs(JNIEnv *env, jclass clazz) {
+
+    CHECK_NULL(ProcessHandleImpl_Info_commandID =
+            (*env)->GetFieldID(env, clazz, "command", "Ljava/lang/String;"));
+    CHECK_NULL(ProcessHandleImpl_Info_commandLineID =
+            (*env)->GetFieldID(env, clazz, "commandLine", "Ljava/lang/String;"));
+    CHECK_NULL(ProcessHandleImpl_Info_argumentsID =
+            (*env)->GetFieldID(env, clazz, "arguments", "[Ljava/lang/String;"));
+    CHECK_NULL(ProcessHandleImpl_Info_totalTimeID =
+            (*env)->GetFieldID(env, clazz, "totalTime", "J"));
+    CHECK_NULL(ProcessHandleImpl_Info_startTimeID =
+            (*env)->GetFieldID(env, clazz, "startTime", "J"));
+    CHECK_NULL(ProcessHandleImpl_Info_userID =
+            (*env)->GetFieldID(env, clazz, "user", "Ljava/lang/String;"));
+}
+
+/***********************************************************
+ * Static method to initialize platform dependent constants.
+ *
+ * Class:     java_lang_ProcessHandleImpl
+ * Method:    initNative
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL
+Java_java_lang_ProcessHandleImpl_initNative(JNIEnv *env, jclass clazz) {
+    getpw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
+    if (getpw_buf_size == -1) {
+        getpw_buf_size = ENT_BUF_SIZE;
+    }
+    os_initNative(env, clazz);
+}
 
 /* Block until a child process exits and return its exit code.
  * Note, can only be called once for any given pid if reapStatus = true.
+ *
+ * Class:     java_lang_ProcessHandleImpl
+ * Method:    waitForProcessExit0
+ * Signature: (JZ)I
  */
 JNIEXPORT jint JNICALL
 Java_java_lang_ProcessHandleImpl_waitForProcessExit0(JNIEnv* env,
                                                      jclass junk,
                                                      jlong jpid,
-                                                     jboolean reapStatus)
-{
+                                                     jboolean reapStatus) {
     pid_t pid = (pid_t)jpid;
     errno = 0;
 
@@ -117,18 +248,7 @@
         if (WIFEXITED(status)) {
             return WEXITSTATUS(status);
         } else if (WIFSIGNALED(status)) {
-            /* The child exited because of a signal.
-             * The best value to return is 0x80 + signal number,
-             * because that is what all Unix shells do, and because
-             * it allows callers to distinguish between process exit and
-             * process death by signal.
-             * Unfortunately, the historical behavior on Solaris is to return
-             * the signal number, and we preserve this for compatibility. */
-#ifdef __solaris__
-            return WTERMSIG(status);
-#else
-            return 0x80 + WTERMSIG(status);
-#endif
+            return WTERMSIG_RETURN(status);
         } else {
             return status;
         }
@@ -156,18 +276,7 @@
               */
              return siginfo.si_status;
         } else if (siginfo.si_code == CLD_KILLED || siginfo.si_code == CLD_DUMPED) {
-             /* The child exited because of a signal.
-              * The best value to return is 0x80 + signal number,
-              * because that is what all Unix shells do, and because
-              * it allows callers to distinguish between process exit and
-              * process death by signal.
-              * Unfortunately, the historical behavior on Solaris is to return
-              * the signal number, and we preserve this for compatibility. */
- #ifdef __solaris__
-             return WTERMSIG(siginfo.si_status);
- #else
-             return 0x80 + WTERMSIG(siginfo.si_status);
- #endif
+             return WTERMSIG_RETURN(siginfo.si_status);
         } else {
              /*
               * Unknown exit code; pass it through.
@@ -191,7 +300,7 @@
 /*
  * Class:     java_lang_ProcessHandleImpl
  * Method:    destroy0
- * Signature: (Z)Z
+ * Signature: (JJZ)Z
  */
 JNIEXPORT jboolean JNICALL
 Java_java_lang_ProcessHandleImpl_destroy0(JNIEnv *env,
@@ -210,119 +319,52 @@
     }
 }
 
-/**
- * Size of password or group entry when not available via sysconf
- */
-#define ENT_BUF_SIZE   1024
-
-/**
- * Return a strong username for the uid_t or null.
+/*
+ * Returns the children of the requested pid and optionally each parent and
+ * start time.
+ * Accumulates any process who parent pid matches.
+ * The resulting pids are stored into the array of longs.
+ * The number of pids is returned if they all fit.
+ * If the array is too short, the negative of the desired length is returned.
+ * Class:     java_lang_ProcessHandleImpl
+ * Method:    getProcessPids0
+ * Signature: (J[J[J[J)I
  */
-jstring uidToUser(JNIEnv* env, uid_t uid) {
-    int result = 0;
-    int buflen;
-    char* pwbuf;
-    jstring name = NULL;
-
-    /* allocate buffer for password record */
-    buflen = (int)sysconf(_SC_GETPW_R_SIZE_MAX);
-    if (buflen == -1)
-        buflen = ENT_BUF_SIZE;
-    pwbuf = (char*)malloc(buflen);
-    if (pwbuf == NULL) {
-        JNU_ThrowOutOfMemoryError(env, "Unable to open getpwent");
-    } else {
-        struct passwd pwent;
-        struct passwd* p = NULL;
-
-#ifdef __solaris__
-        RESTARTABLE_RETURN_PTR(getpwuid_r(uid, &pwent, pwbuf, (size_t)buflen), p);
-#else
-        RESTARTABLE(getpwuid_r(uid, &pwent, pwbuf, (size_t)buflen, &p), result);
-#endif
-
-        // Return the Java String if a name was found
-        if (result == 0 && p != NULL &&
-            p->pw_name != NULL && *(p->pw_name) != '\0') {
-            name = JNU_NewStringPlatform(env, p->pw_name);
-        }
-        free(pwbuf);
-    }
-    return name;
+JNIEXPORT jint JNICALL
+Java_java_lang_ProcessHandleImpl_getProcessPids0(JNIEnv *env,
+                                                 jclass clazz,
+                                                 jlong jpid,
+                                                 jlongArray jarray,
+                                                 jlongArray jparentArray,
+                                                 jlongArray jstimesArray) {
+    return os_getChildren(env, jpid, jarray, jparentArray, jstimesArray);
 }
 
-/**
- * Implementations of ProcessHandleImpl functions that are common to
- * (some) Unix variants:
- * - getProcessPids0(pid, pidArray, parentArray)
- */
-
-#if defined(__linux__) || defined(__AIX__)
-
 /*
- * Signatures for internal OS specific functions.
- */
-static pid_t getStatInfo(JNIEnv *env, pid_t pid,
-                                     jlong *totalTime, jlong* startTime);
-static void getCmdlineInfo(JNIEnv *env, pid_t pid, jobject jinfo);
-static long long getBoottime(JNIEnv *env);
-
-jstring uidToUser(JNIEnv* env, uid_t uid);
-
-/* Field id for jString 'command' in java.lang.ProcessHandleImpl.Info */
-static jfieldID ProcessHandleImpl_Info_commandID;
-
-/* Field id for jString[] 'arguments' in java.lang.ProcessHandleImpl.Info */
-static jfieldID ProcessHandleImpl_Info_argumentsID;
-
-/* Field id for jlong 'totalTime' in java.lang.ProcessHandleImpl.Info */
-static jfieldID ProcessHandleImpl_Info_totalTimeID;
-
-/* Field id for jlong 'startTime' in java.lang.ProcessHandleImpl.Info */
-static jfieldID ProcessHandleImpl_Info_startTimeID;
-
-/* Field id for jString 'user' in java.lang.ProcessHandleImpl.Info */
-static jfieldID ProcessHandleImpl_Info_userID;
-
-/* static value for clock ticks per second. */
-static long clock_ticks_per_second;
-
-/* A static offset in milliseconds since boot. */
-static long long bootTime_ms;
-
-/**************************************************************
- * Static method to initialize field IDs and the ticks per second rate.
+ * Fill in the Info object from the OS information about the process.
  *
  * Class:     java_lang_ProcessHandleImpl_Info
- * Method:    initIDs
- * Signature: ()V
+ * Method:    info0
+ * Signature: (Ljava/lang/ProcessHandle/Info;J)I
  */
 JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_00024Info_initIDs(JNIEnv *env, jclass clazz) {
+Java_java_lang_ProcessHandleImpl_00024Info_info0(JNIEnv *env,
+                                                 jobject jinfo,
+                                                 jlong jpid) {
+    pid_t pid = (pid_t) jpid;
+    pid_t ppid;
+    jlong totalTime = -1L;
+    jlong startTime = -1L;
 
-    CHECK_NULL(ProcessHandleImpl_Info_commandID = (*env)->GetFieldID(env,
-        clazz, "command", "Ljava/lang/String;"));
-    CHECK_NULL(ProcessHandleImpl_Info_argumentsID = (*env)->GetFieldID(env,
-        clazz, "arguments", "[Ljava/lang/String;"));
-    CHECK_NULL(ProcessHandleImpl_Info_totalTimeID = (*env)->GetFieldID(env,
-        clazz, "totalTime", "J"));
-    CHECK_NULL(ProcessHandleImpl_Info_startTimeID = (*env)->GetFieldID(env,
-        clazz, "startTime", "J"));
-    CHECK_NULL(ProcessHandleImpl_Info_userID = (*env)->GetFieldID(env,
-        clazz, "user", "Ljava/lang/String;"));
-}
+    ppid = os_getParentPidAndTimings(env, pid,  &totalTime, &startTime);
+    if (ppid >= 0) {
+        (*env)->SetLongField(env, jinfo, ProcessHandleImpl_Info_totalTimeID, totalTime);
+        JNU_CHECK_EXCEPTION(env);
 
-/**************************************************************
- * Static method to initialize the ticks per second rate.
- *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    initNative
- * Signature: ()V
- */
-JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_initNative(JNIEnv *env, jclass clazz) {
-    clock_ticks_per_second = sysconf(_SC_CLK_TCK);
-    bootTime_ms = getBoottime(env);
+        (*env)->SetLongField(env, jinfo, ProcessHandleImpl_Info_startTimeID, startTime);
+        JNU_CHECK_EXCEPTION(env);
+    }
+    os_getCmdlineAndUserInfo(env, jinfo, pid);
 }
 
 /*
@@ -340,8 +382,8 @@
     pid_t pid = (pid_t) jpid;
     jlong startTime = 0L;
     jlong totalTime = 0L;
-    pid_t ppid = getStatInfo(env, pid, &totalTime, &startTime);
-    return (ppid <= 0) ? -1 : startTime;
+    pid_t ppid = os_getParentPidAndTimings(env, pid, &totalTime, &startTime);
+    return (ppid < 0) ? -1 : startTime;
 }
 
 /*
@@ -350,7 +392,7 @@
  *
  * Class:     java_lang_ProcessHandleImpl
  * Method:    parent0
- * Signature: (J)J
+ * Signature: (JJ)J
  */
 JNIEXPORT jlong JNICALL
 Java_java_lang_ProcessHandleImpl_parent0(JNIEnv *env,
@@ -360,13 +402,12 @@
     pid_t pid = (pid_t) jpid;
     pid_t ppid;
 
-    pid_t mypid = getpid();
-    if (pid == mypid) {
+    if (pid == getpid()) {
         ppid = getppid();
     } else {
-        jlong start = 0L;;
+        jlong start = 0L;
         jlong total = 0L;        // unused
-        ppid = getStatInfo(env, pid, &total, &start);
+        ppid = os_getParentPidAndTimings(env, pid, &total, &start);
         if (start != startTime && start != 0 && startTime != 0) {
             ppid = -1;
         }
@@ -374,24 +415,94 @@
     return (jlong) ppid;
 }
 
+/**
+ * Construct the argument array by parsing the arguments from the sequence
+ * of arguments.
+ */
+void unix_fillArgArray(JNIEnv *env, jobject jinfo, int nargs, char *cp,
+                       char *argsEnd, jstring cmdexe, char *cmdline) {
+    jobject argsArray;
+    int i;
+
+    (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_commandID, cmdexe);
+    JNU_CHECK_EXCEPTION(env);
+
+    if (nargs >= 1) {
+        // Create a String array for nargs-1 elements
+        argsArray = (*env)->NewObjectArray(env, nargs - 1, JNU_ClassString(env), NULL);
+        CHECK_NULL(argsArray);
+
+        for (i = 0; i < nargs - 1; i++) {
+            jstring str = NULL;
+
+            cp += strlen(cp) + 1;
+            if (cp > argsEnd || *cp == '\0') {
+                return;  // Off the end pointer or an empty argument is an error
+            }
+
+            CHECK_NULL((str = JNU_NewStringPlatform(env, cp)));
+
+            (*env)->SetObjectArrayElement(env, argsArray, i, str);
+            JNU_CHECK_EXCEPTION(env);
+        }
+        (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_argumentsID, argsArray);
+        JNU_CHECK_EXCEPTION(env);
+    }
+    if (cmdline != NULL) {
+        jstring commandLine = NULL;
+        CHECK_NULL((commandLine = JNU_NewStringPlatform(env, cmdline)));
+        (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_commandLineID, commandLine);
+        JNU_CHECK_EXCEPTION(env);
+    }
+}
+
+void unix_getUserInfo(JNIEnv* env, jobject jinfo, uid_t uid) {
+    int result = 0;
+    char* pwbuf;
+    jstring name = NULL;
+
+    /* allocate buffer for password record */
+    pwbuf = (char*)malloc(getpw_buf_size);
+    if (pwbuf == NULL) {
+        JNU_ThrowOutOfMemoryError(env, "Unable to open getpwent");
+    } else {
+        struct passwd pwent;
+        struct passwd* p = NULL;
+
+#ifdef __solaris__
+        RESTARTABLE_RETURN_PTR(getpwuid_r(uid, &pwent, pwbuf, (size_t)getpw_buf_size), p);
+#else
+        RESTARTABLE(getpwuid_r(uid, &pwent, pwbuf, (size_t)getpw_buf_size, &p), result);
+#endif
+
+        // Create the Java String if a name was found
+        if (result == 0 && p != NULL &&
+            p->pw_name != NULL && *(p->pw_name) != '\0') {
+            name = JNU_NewStringPlatform(env, p->pw_name);
+        }
+        free(pwbuf);
+    }
+    if (name != NULL) {
+        (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_userID, name);
+    }
+}
+
 /*
- * Returns the children of the requested pid and optionally each parent.
+ * The following functions are common on Solaris, Linux and AIX.
+ */
+
+#if defined(__solaris__) || defined (__linux__) || defined(_AIX)
+
+/*
+ * Returns the children of the requested pid and optionally each parent and
+ * start time.
  * Reads /proc and accumulates any process who parent pid matches.
  * The resulting pids are stored into the array of longs.
  * The number of pids is returned if they all fit.
- * If the array is too short, the negative of the desired length is returned. *
- * Class:     java_lang_ProcessHandleImpl
- * Method:    getChildPids
- * Signature: (J[J[J)I
+ * If the array is too short, the negative of the desired length is returned.
  */
-JNIEXPORT jint JNICALL
-Java_java_lang_ProcessHandleImpl_getProcessPids0(JNIEnv *env,
-                                                 jclass clazz,
-                                                 jlong jpid,
-                                                 jlongArray jarray,
-                                                 jlongArray jparentArray,
-                                                 jlongArray jstimesArray) {
-
+jint unix_getChildren(JNIEnv *env, jlong jpid, jlongArray jarray,
+                      jlongArray jparentArray, jlongArray jstimesArray) {
     DIR* dir;
     struct dirent* ptr;
     pid_t pid = (pid_t) jpid;
@@ -462,9 +573,10 @@
             if ((int) childpid <= 0) {
                 continue;
             }
-            // Read /proc/pid/stat and get the parent pid, and start time
-            ppid = getStatInfo(env, childpid, &totalTime, &startTime);
-            if (ppid > 0 && (pid == 0 || ppid == pid)) {
+
+            // Get the parent pid, and start time
+            ppid = os_getParentPidAndTimings(env, childpid, &totalTime, &startTime);
+            if (ppid >= 0 && (pid == 0 || ppid == pid)) {
                 if (count < arraySize) {
                     // Only store if it fits
                     pids[count] = (jlong) childpid;
@@ -498,293 +610,110 @@
     return count;
 }
 
-
-/**************************************************************
- * Implementation of ProcessHandleImpl_Info native methods.
- */
+#endif // defined(__solaris__) || defined (__linux__) || defined(_AIX)
 
 /*
- * Fill in the Info object from the OS information about the process.
- *
- * Class:     java_lang_ProcessHandleImpl_Info
- * Method:    info0
- * Signature: (JLjava/lang/ProcessHandle/Info;)I
+ * The following functions are common on Solaris and AIX.
  */
-JNIEXPORT void JNICALL
-Java_java_lang_ProcessHandleImpl_00024Info_info0(JNIEnv *env,
-                                                 jobject jinfo,
-                                                 jlong jpid) {
-    pid_t pid = (pid_t) jpid;
-    pid_t ppid;
-    jlong totalTime = 0L;
-    jlong startTime = -1L;
-
-    ppid = getStatInfo(env, pid,  &totalTime, &startTime);
-    if (ppid > 0) {
-        (*env)->SetLongField(env, jinfo, ProcessHandleImpl_Info_totalTimeID, totalTime);
-        JNU_CHECK_EXCEPTION(env);
-
-        (*env)->SetLongField(env, jinfo, ProcessHandleImpl_Info_startTimeID, startTime);
-        JNU_CHECK_EXCEPTION(env);
-
-        getCmdlineInfo(env, pid, jinfo);
-    }
-}
-
-/**
- * Read /proc/<pid>/stat and return the ppid, total cputime and start time.
- * -1 is fail;  zero is unknown; >  0 is parent pid
- */
-static pid_t getStatInfo(JNIEnv *env, pid_t pid,
-                                     jlong *totalTime, jlong* startTime) {
-    FILE* fp;
-    char buffer[2048];
-    int statlen;
-    char fn[32];
-    char* s;
-    int parentPid;
-    long unsigned int utime = 0;      // clock tics
-    long unsigned int stime = 0;      // clock tics
-    long long unsigned int start = 0; // microseconds
 
-    /*
-     * Try to stat and then open /proc/%d/stat
-     */
-    snprintf(fn, sizeof fn, STAT_FILE, pid);
-
-    fp = fopen(fn, "r");
-    if (fp == NULL) {
-        return -1;              // fail, no such /proc/pid/stat
-    }
-
-    /*
-     * The format is: pid (command) state ppid ...
-     * As the command could be anything we must find the right most
-     * ")" and then skip the white spaces that follow it.
-     */
-    statlen = fread(buffer, 1, (sizeof buffer - 1), fp);
-    fclose(fp);
-    if (statlen < 0) {
-        return 0;               // parent pid is not available
-    }
-
-    buffer[statlen] = '\0';
-    s = strchr(buffer, '(');
-    if (s == NULL) {
-        return 0;               // parent pid is not available
-    }
-    // Found start of command, skip to end
-    s++;
-    s = strrchr(s, ')');
-    if (s == NULL) {
-        return 0;               // parent pid is not available
-    }
-    s++;
-
-    // Scan the needed fields from status, retaining only ppid(4),
-    // utime (14), stime(15), starttime(22)
-    if (4 != sscanf(s, " %*c %d %*d %*d %*d %*d %*d %*u %*u %*u %*u %lu %lu %*d %*d %*d %*d %*d %*d %llu",
-            &parentPid, &utime, &stime, &start)) {
-        return 0;              // not all values parsed; return error
-    }
-
-    *totalTime = (utime + stime) * (jlong)(1000000000 / clock_ticks_per_second);
-
-    *startTime = bootTime_ms + ((start * 1000) / clock_ticks_per_second);
-
-    return parentPid;
-}
+#if defined(__solaris__) || defined(_AIX)
 
 /**
- * Construct the argument array by parsing the arguments from the sequence
- * of arguments. The zero'th arg is the command executable
+ * Helper function to get the 'psinfo_t' data from "/proc/%d/psinfo".
+ * Returns 0 on success and -1 on error.
  */
-static int fillArgArray(JNIEnv *env, jobject jinfo,
-                        int nargs, char *cp, char *argsEnd, jstring cmdexe) {
-    jobject argsArray;
-    int i;
-
-    if (nargs < 1) {
-        return 0;
-    }
-
-    if (cmdexe == NULL) {
-        // Create a string from arg[0]
-        CHECK_NULL_RETURN((cmdexe = JNU_NewStringPlatform(env, cp)), -1);
-    }
-    (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_commandID, cmdexe);
-    JNU_CHECK_EXCEPTION_RETURN(env, -3);
-
-    // Create a String array for nargs-1 elements
-    argsArray = (*env)->NewObjectArray(env, nargs - 1, JNU_ClassString(env), NULL);
-    CHECK_NULL_RETURN(argsArray, -1);
-
-    for (i = 0; i < nargs - 1; i++) {
-        jstring str = NULL;
-
-        cp += strnlen(cp, (argsEnd - cp)) + 1;
-        if (cp > argsEnd || *cp == '\0') {
-            return -2;  // Off the end pointer or an empty argument is an error
-        }
-
-        CHECK_NULL_RETURN((str = JNU_NewStringPlatform(env, cp)), -1);
-
-        (*env)->SetObjectArrayElement(env, argsArray, i, str);
-        JNU_CHECK_EXCEPTION_RETURN(env, -3);
-    }
-    (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_argumentsID, argsArray);
-    JNU_CHECK_EXCEPTION_RETURN(env, -4);
-    return 0;
-}
-
-
-static void getCmdlineInfo(JNIEnv *env, pid_t pid, jobject jinfo) {
-    int fd;
-    int cmdlen = 0;
-    char *cmdline = NULL, *cmdEnd;  // used for command line args and exe
-    jstring cmdexe = NULL;
+static int getPsinfo(pid_t pid, psinfo_t *psinfo) {
+    FILE* fp;
     char fn[32];
-    struct stat stat_buf;
+    int ret;
 
     /*
-     * Try to open /proc/%d/cmdline
+     * Try to open /proc/%d/psinfo
      */
-    snprintf(fn, sizeof fn, "/proc/%d/cmdline", pid);
-    if ((fd = open(fn, O_RDONLY)) < 0) {
-        return;
-    }
-
-    do {                // Block to break out of on errors
-        int i;
-        char *s;
-
-        cmdline = (char*)malloc(PATH_MAX);
-        if (cmdline == NULL) {
-            break;
-        }
-
-        /*
-         * The path to the executable command is the link in /proc/<pid>/exe.
-         */
-        snprintf(fn, sizeof fn, "/proc/%d/exe", pid);
-        if ((cmdlen = readlink(fn, cmdline, PATH_MAX - 1)) > 0) {
-            // null terminate and create String to store for command
-            cmdline[cmdlen] = '\0';
-            cmdexe = JNU_NewStringPlatform(env, cmdline);
-            (*env)->ExceptionClear(env);        // unconditionally clear any exception
-        }
-
-        /*
-         * The buffer format is the arguments nul terminated with an extra nul.
-         */
-        cmdlen = read(fd, cmdline, PATH_MAX-1);
-        if (cmdlen < 0) {
-            break;
-        }
-
-        // Terminate the buffer and count the arguments
-        cmdline[cmdlen] = '\0';
-        cmdEnd = &cmdline[cmdlen + 1];
-        for (s = cmdline,i = 0; *s != '\0' && (s < cmdEnd); i++) {
-            s += strnlen(s, (cmdEnd - s)) + 1;
-        }
-
-        if (fillArgArray(env, jinfo, i, cmdline, cmdEnd, cmdexe) < 0) {
-            break;
-        }
-
-        // Get and store the user name
-        if (fstat(fd, &stat_buf) == 0) {
-            jstring name = uidToUser(env, stat_buf.st_uid);
-            if (name != NULL) {
-                (*env)->SetObjectField(env, jinfo, ProcessHandleImpl_Info_userID, name);
-            }
-        }
-    } while (0);
-
-    if (cmdline != NULL) {
-        free(cmdline);
-    }
-    if (fd >= 0) {
-        close(fd);
-    }
-}
-
-/**
- * Read the boottime from /proc/stat.
- */
-static long long getBoottime(JNIEnv *env) {
-    FILE *fp;
-    char *line = NULL;
-    size_t len = 0;
-    long long bootTime = 0;
-
-    fp = fopen("/proc/stat", "r");
+    snprintf(fn, sizeof fn, "/proc/%d/psinfo", pid);
+    fp = fopen(fn, "r");
     if (fp == NULL) {
         return -1;
     }
 
-    while (getline(&line, &len, fp) != -1) {
-        if (sscanf(line, "btime %llu", &bootTime) == 1) {
-            break;
-        }
+    ret = fread(psinfo, 1, sizeof(psinfo_t), fp);
+    fclose(fp);
+    if (ret < sizeof(psinfo_t)) {
+        return -1;
     }
-    free(line);
+    return 0;
+}
 
-    if (fp != 0) {
-        fclose(fp);
+/**
+ * Read /proc/<pid>/psinfo and return the ppid, total cputime and start time.
+ * Return: -1 is fail;  >=  0 is parent pid
+ * 'total' will contain the running time of 'pid' in nanoseconds.
+ * 'start' will contain the start time of 'pid' in milliseconds since epoch.
+ */
+pid_t unix_getParentPidAndTimings(JNIEnv *env, pid_t pid,
+                                  jlong *totalTime, jlong* startTime) {
+    psinfo_t psinfo;
+
+    if (getPsinfo(pid, &psinfo) < 0) {
+        return -1;
     }
 
-    return bootTime * 1000;
+    *totalTime = psinfo.pr_time.tv_sec * 1000000000L + psinfo.pr_time.tv_nsec;
+
+    *startTime = psinfo.pr_start.tv_sec * (jlong)1000 +
+                 psinfo.pr_start.tv_nsec / 1000000;
+
+    return (pid_t) psinfo.pr_ppid;
 }
 
-#endif  //  defined(__linux__) || defined(__AIX__)
-
+void unix_getCmdlineAndUserInfo(JNIEnv *env, jobject jinfo, pid_t pid) {
+    psinfo_t psinfo;
+    char fn[32];
+    char exePath[PATH_MAX];
+    char prargs[PRARGSZ + 1];
+    jstring cmdexe = NULL;
+    int ret;
 
-/* Block until a child process exits and return its exit code.
-   Note, can only be called once for any given pid. */
-JNIEXPORT jint JNICALL
-Java_java_lang_ProcessImpl_waitForProcessExit(JNIEnv* env,
-                                              jobject junk,
-                                              jint pid)
-{
-    /* We used to use waitid() on Solaris, waitpid() on Linux, but
-     * waitpid() is more standard, so use it on all POSIX platforms. */
-    int status;
-    /* Wait for the child process to exit.  This returns immediately if
-       the child has already exited. */
-    while (waitpid(pid, &status, 0) < 0) {
-        switch (errno) {
-        case ECHILD: return 0;
-        case EINTR: break;
-        default: return -1;
-        }
+    /*
+     * On Solaris, the full path to the executable command is the link in
+     * /proc/<pid>/paths/a.out. But it is only readable for processes we own.
+     */
+#if defined(__solaris__)
+    snprintf(fn, sizeof fn, "/proc/%d/path/a.out", pid);
+    if ((ret = readlink(fn, exePath, PATH_MAX - 1)) > 0) {
+        // null terminate and create String to store for command
+        exePath[ret] = '\0';
+        CHECK_NULL(cmdexe = JNU_NewStringPlatform(env, exePath));
+    }
+#endif
+
+    /*
+     * Now try to open /proc/%d/psinfo
+     */
+    if (getPsinfo(pid, &psinfo) < 0) {
+        unix_fillArgArray(env, jinfo, 0, NULL, NULL, cmdexe, NULL);
+        return;
     }
 
-    if (WIFEXITED(status)) {
-        /*
-         * The child exited normally; get its exit code.
+    unix_getUserInfo(env, jinfo, psinfo.pr_uid);
+
+    /*
+     * Now read psinfo.pr_psargs which contains the first PRARGSZ characters of the
+     * argument list (i.e. arg[0] arg[1] ...). Unfortunately, PRARGSZ is usually set
+     * to 80 characters only. Nevertheless it's better than nothing :)
+     */
+    strncpy(prargs, psinfo.pr_psargs, PRARGSZ);
+    prargs[PRARGSZ] = '\0';
+    if (prargs[0] == '\0') {
+        /* If psinfo.pr_psargs didn't contain any strings, use psinfo.pr_fname
+         * (which only contains the last component of exec()ed pathname) as a
+         * last resort. This is true for AIX kernel processes for example.
          */
-        return WEXITSTATUS(status);
-    } else if (WIFSIGNALED(status)) {
-        /* The child exited because of a signal.
-         * The best value to return is 0x80 + signal number,
-         * because that is what all Unix shells do, and because
-         * it allows callers to distinguish between process exit and
-         * process death by signal.
-         * Unfortunately, the historical behavior on Solaris is to return
-         * the signal number, and we preserve this for compatibility. */
-#ifdef __solaris__
-        return WTERMSIG(status);
-#else
-        return 0x80 + WTERMSIG(status);
-#endif
-    } else {
-        /*
-         * Unknown exit code; pass it through.
-         */
-        return status;
+        strncpy(prargs, psinfo.pr_fname, PRARGSZ);
+        prargs[PRARGSZ] = '\0';
     }
+    unix_fillArgArray(env, jinfo, 0, NULL, NULL, cmdexe,
+                      prargs[0] == '\0' ? NULL : prargs);
 }
 
-
+#endif // defined(__solaris__) || defined(_AIX)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h	Mon Aug 17 10:12:16 2015 -0700
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include <sys/types.h>
+
+/*
+ * Declaration of ProcessHandleImpl functions common on all Unix platforms.
+ * 'unix_' functions have a single implementation in ProcessHandleImpl_unix.c
+ * 'os_' prefixed functions have different, os-specific implementations in the
+ * various ProcessHandleImpl_{linux,macosx,solaris,aix}.c files.
+ * See ProcessHandleImpl_unix.c for more details.
+ */
+
+/* Field id for jString 'command' in java.lang.ProcessHandleImpl.Info */
+extern jfieldID ProcessHandleImpl_Info_commandID;
+
+/* Field id for jString 'commandLine' in java.lang.ProcessHandleImpl.Info */
+extern jfieldID ProcessHandleImpl_Info_commandLineID;
+
+/* Field id for jString[] 'arguments' in java.lang.ProcessHandleImpl.Info */
+extern jfieldID ProcessHandleImpl_Info_argumentsID;
+
+/* Field id for jlong 'totalTime' in java.lang.ProcessHandleImpl.Info */
+extern jfieldID ProcessHandleImpl_Info_totalTimeID;
+
+/* Field id for jlong 'startTime' in java.lang.ProcessHandleImpl.Info */
+extern jfieldID ProcessHandleImpl_Info_startTimeID;
+
+/* Field id for jString 'user' in java.lang.ProcessHandleImpl.Info */
+extern jfieldID ProcessHandleImpl_Info_userID;
+
+/**
+ * Return: -1 is fail;  >=  0 is parent pid
+ * 'total' will contain the running time of 'pid' in nanoseconds.
+ * 'start' will contain the start time of 'pid' in milliseconds since epoch.
+ */
+extern pid_t unix_getParentPidAndTimings(JNIEnv *env, pid_t pid,
+                                         jlong *total, jlong *start);
+extern pid_t os_getParentPidAndTimings(JNIEnv *env, pid_t pid,
+                                       jlong *total, jlong *start);
+
+extern void unix_getCmdlineAndUserInfo(JNIEnv *env, jobject jinfo, pid_t pid);
+extern void os_getCmdlineAndUserInfo(JNIEnv *env, jobject jinfo, pid_t pid);
+
+extern jint unix_getChildren(JNIEnv *env, jlong jpid, jlongArray array,
+                             jlongArray jparentArray, jlongArray jstimesArray);
+extern jint os_getChildren(JNIEnv *env, jlong jpid, jlongArray array,
+                           jlongArray jparentArray, jlongArray jstimesArray);
+
+extern void unix_getUserInfo(JNIEnv* env, jobject jinfo, uid_t uid);
+extern void unix_fillArgArray(JNIEnv *env, jobject jinfo, int nargs, char *cp,
+                              char *argsEnd, jstring cmdexe, char *cmdline);
+
+extern void os_initNative(JNIEnv *env, jclass clazz);
--- a/src/java.base/windows/classes/sun/io/Win32ErrorMode.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/windows/classes/sun/io/Win32ErrorMode.java	Mon Aug 17 10:12:16 2015 -0700
@@ -59,8 +59,8 @@
      * Invoke at VM initialization time to disable the critical error message box.
      * <p>
      * The critial error message box is disabled unless the system property
-     * <tt>sun.io.allowCriticalErrorMessageBox</tt> is set to something other than
-     * <code>false</code>. This includes the empty string.
+     * {@code sun.io.allowCriticalErrorMessageBox} is set to something other than
+     * {@code false}. This includes the empty string.
      * <p>
      * This method does nothing if invoked after VM and class library initialization
      * has completed.
--- a/src/java.base/windows/classes/sun/net/www/protocol/file/Handler.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/windows/classes/sun/net/www/protocol/file/Handler.java	Mon Aug 17 10:12:16 2015 -0700
@@ -134,8 +134,8 @@
      * Compares the host components of two URLs.
      * @param u1 the URL of the first host to compare
      * @param u2 the URL of the second host to compare
-     * @return  <tt>true</tt> if and only if they
-     * are equal, <tt>false</tt> otherwise.
+     * @return  {@code true} if and only if they
+     * are equal, {@code false} otherwise.
      */
     protected boolean hostsEqual(URL u1, URL u2) {
         /*
--- a/src/java.base/windows/native/libjava/ProcessHandleImpl_win.c	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.base/windows/native/libjava/ProcessHandleImpl_win.c	Mon Aug 17 10:12:16 2015 -0700
@@ -45,6 +45,9 @@
 /* Field id for jString 'command' in java.lang.ProcessHandle.Info */
 static jfieldID ProcessHandleImpl_Info_commandID;
 
+/* Field id for jString 'commandLine' in java.lang.ProcessHandleImpl.Info */
+static jfieldID ProcessHandleImpl_Info_commandLineID;
+
 /* Field id for jString[] 'arguments' in java.lang.ProcessHandle.Info */
 static jfieldID ProcessHandleImpl_Info_argumentsID;
 
@@ -69,6 +72,8 @@
 
     CHECK_NULL(ProcessHandleImpl_Info_commandID = (*env)->GetFieldID(env,
         clazz, "command", "Ljava/lang/String;"));
+    CHECK_NULL(ProcessHandleImpl_Info_commandLineID = (*env)->GetFieldID(env,
+        clazz, "commandLine", "Ljava/lang/String;"));
     CHECK_NULL(ProcessHandleImpl_Info_argumentsID = (*env)->GetFieldID(env,
         clazz, "arguments", "[Ljava/lang/String;"));
     CHECK_NULL(ProcessHandleImpl_Info_totalTimeID = (*env)->GetFieldID(env,
--- a/src/java.corba/share/classes/com/sun/jndi/cosnaming/RemoteToCorba.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.corba/share/classes/com/sun/jndi/cosnaming/RemoteToCorba.java	Mon Aug 17 10:12:16 2015 -0700
@@ -56,7 +56,7 @@
      * @param name Ignored
      * @param ctx The non-null CNCtx whose ORB to use.
      * @param env Ignored
-     * @return The CORBA object for <tt>orig</tt> or null.
+     * @return The CORBA object for {@code orig} or null.
      * @exception ConfigurationException If the CORBA object cannot be obtained
      *    due to configuration problems, for instance, if RMI-IIOP not available.
      * @exception NamingException If some other problem prevented a CORBA
--- a/src/java.corba/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.corba/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java	Mon Aug 17 10:12:16 2015 -0700
@@ -76,7 +76,7 @@
       *
       * @param remoteObj The non-null remote object for
       * @param orb       The non-null ORB to connect the remote object to
-      * @return The CORBA Object for remoteObj; null if <tt>remoteObj</tt>
+      * @return The CORBA Object for remoteObj; null if {@code remoteObj}
       *                 is a JRMP implementation or JRMP stub.
       * @exception ConfigurationException The CORBA Object cannot be obtained
       *         because of configuration problems.
--- a/src/java.rmi/share/classes/java/rmi/RemoteException.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.rmi/share/classes/java/rmi/RemoteException.java	Mon Aug 17 10:12:16 2015 -0700
@@ -26,11 +26,11 @@
 package java.rmi;
 
 /**
- * A <code>RemoteException</code> is the common superclass for a number of
+ * A {@code RemoteException} is the common superclass for a number of
  * communication-related exceptions that may occur during the execution of a
  * remote method call.  Each method of a remote interface, an interface that
- * extends <code>java.rmi.Remote</code>, must list
- * <code>RemoteException</code> in its throws clause.
+ * extends {@code java.rmi.Remote}, must list
+ * {@code RemoteException} in its throws clause.
  *
  * <p>As of release 1.4, this exception has been retrofitted to conform to
  * the general purpose exception-chaining mechanism.  The "wrapped remote
@@ -40,7 +40,7 @@
  * the aforementioned "legacy field."
  *
  * <p>Invoking the method {@link Throwable#initCause(Throwable)} on an
- * instance of <code>RemoteException</code> always throws {@link
+ * instance of {@code RemoteException} always throws {@link
  * IllegalStateException}.
  *
  * @author  Ann Wollrath
@@ -63,14 +63,14 @@
     public Throwable detail;
 
     /**
-     * Constructs a <code>RemoteException</code>.
+     * Constructs a {@code RemoteException}.
      */
     public RemoteException() {
         initCause(null);  // Disallow subsequent initCause
     }
 
     /**
-     * Constructs a <code>RemoteException</code> with the specified
+     * Constructs a {@code RemoteException} with the specified
      * detail message.
      *
      * @param s the detail message
@@ -81,9 +81,9 @@
     }
 
     /**
-     * Constructs a <code>RemoteException</code> with the specified detail
+     * Constructs a {@code RemoteException} with the specified detail
      * message and cause.  This constructor sets the {@link #detail}
-     * field to the specified <code>Throwable</code>.
+     * field to the specified {@code Throwable}.
      *
      * @param s the detail message
      * @param cause the cause
@@ -113,7 +113,7 @@
      * Returns the cause of this exception.  This method returns the value
      * of the {@link #detail} field.
      *
-     * @return  the cause, which may be <tt>null</tt>.
+     * @return  the cause, which may be {@code null}.
      * @since   1.4
      */
     public Throwable getCause() {
--- a/src/java.rmi/share/classes/java/rmi/activation/ActivationException.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.rmi/share/classes/java/rmi/activation/ActivationException.java	Mon Aug 17 10:12:16 2015 -0700
@@ -36,7 +36,7 @@
  * the aforementioned "legacy field."
  *
  * <p>Invoking the method {@link Throwable#initCause(Throwable)} on an
- * instance of <code>ActivationException</code> always throws {@link
+ * instance of {@code ActivationException} always throws {@link
  * IllegalStateException}.
  *
  * @author      Ann Wollrath
@@ -59,14 +59,14 @@
     private static final long serialVersionUID = -4320118837291406071L;
 
     /**
-     * Constructs an <code>ActivationException</code>.
+     * Constructs an {@code ActivationException}.
      */
     public ActivationException() {
         initCause(null);  // Disallow subsequent initCause
     }
 
     /**
-     * Constructs an <code>ActivationException</code> with the specified
+     * Constructs an {@code ActivationException} with the specified
      * detail message.
      *
      * @param s the detail message
@@ -77,9 +77,9 @@
     }
 
     /**
-     * Constructs an <code>ActivationException</code> with the specified
+     * Constructs an {@code ActivationException} with the specified
      * detail message and cause.  This constructor sets the {@link #detail}
-     * field to the specified <code>Throwable</code>.
+     * field to the specified {@code Throwable}.
      *
      * @param s the detail message
      * @param cause the cause
@@ -109,7 +109,7 @@
      * Returns the cause of this exception.  This method returns the value
      * of the {@link #detail} field.
      *
-     * @return  the cause, which may be <tt>null</tt>.
+     * @return  the cause, which may be {@code null}.
      * @since   1.4
      */
     public Throwable getCause() {
--- a/src/java.rmi/share/classes/java/rmi/server/ServerCloneException.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.rmi/share/classes/java/rmi/server/ServerCloneException.java	Mon Aug 17 10:12:16 2015 -0700
@@ -26,8 +26,8 @@
 package java.rmi.server;
 
 /**
- * A <code>ServerCloneException</code> is thrown if a remote exception occurs
- * during the cloning of a <code>UnicastRemoteObject</code>.
+ * A {@code ServerCloneException} is thrown if a remote exception occurs
+ * during the cloning of a {@code UnicastRemoteObject}.
  *
  * <p>As of release 1.4, this exception has been retrofitted to conform to
  * the general purpose exception-chaining mechanism.  The "nested exception"
@@ -37,7 +37,7 @@
  * the aforementioned "legacy field."
  *
  * <p>Invoking the method {@link Throwable#initCause(Throwable)} on an
- * instance of <code>ServerCloneException</code> always throws {@link
+ * instance of {@code ServerCloneException} always throws {@link
  * IllegalStateException}.
  *
  * @author  Ann Wollrath
@@ -61,7 +61,7 @@
     private static final long serialVersionUID = 6617456357664815945L;
 
     /**
-     * Constructs a <code>ServerCloneException</code> with the specified
+     * Constructs a {@code ServerCloneException} with the specified
      * detail message.
      *
      * @param s the detail message.
@@ -72,7 +72,7 @@
     }
 
     /**
-     * Constructs a <code>ServerCloneException</code> with the specified
+     * Constructs a {@code ServerCloneException} with the specified
      * detail message and cause.
      *
      * @param s the detail message.
@@ -103,7 +103,7 @@
      * Returns the cause of this exception.  This method returns the value
      * of the {@link #detail} field.
      *
-     * @return  the cause, which may be <tt>null</tt>.
+     * @return  the cause, which may be {@code null}.
      * @since   1.4
      */
     public Throwable getCause() {
--- a/src/java.sql.rowset/share/classes/com/sun/rowset/package.html	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.sql.rowset/share/classes/com/sun/rowset/package.html	Mon Aug 17 10:12:16 2015 -0700
@@ -26,51 +26,51 @@
 <!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
 <html>
 <head>
-                                    
+
   <meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
   <title>com.sun.rowset Package</title>
 </head>
   <body bgcolor="#ffffff">
-Provides five standard implementations of the standard JDBC <tt>RowSet</tt> implementation 
-interface definitions. These reference implementations are included with the J2SE version 
-1.5 platform and represent the benchmark standard <tt>RowSet</tt> implementations as verified 
+Provides five standard implementations of the standard JDBC <code>RowSet</code> implementation
+interface definitions. These reference implementations are included with the J2SE version
+1.5 platform and represent the benchmark standard <code>RowSet</code> implementations as verified
 by the Test Compatibility Kit (TCK) as mandated by the Java Community Process.
- <br>
-   
+<br>
+
 <h3>1.0 Available JDBC RowSet Reference Implementations </h3>
-  The following implementations are provided:<br>
-           
-<blockquote><tt><b>JdbcRowSetImpl</b></tt> - The <tt>javax.sql.rowset.JdbcRowSet</tt>
+The following implementations are provided:<br>
+
+<blockquote><code><b>JdbcRowSetImpl</b></code> - The <code>javax.sql.rowset.JdbcRowSet</code>
 interface reference implementation. <br>
 <br>
-<tt><b>CachedRowSetImpl </b></tt>- The <tt>javax.sql.rowset.CachedRowSet</tt> interface
+<code><b>CachedRowSetImpl</b></code> - The <code>javax.sql.rowset.CachedRowSet</code> interface
 reference implementation.<br>
 <br>
-<tt><b>WebRowSetImpl</b></tt> - The <tt>javax.sql.rowset.WebRowSet</tt> interface
+<code><b>WebRowSetImpl</b></code> - The <code>javax.sql.rowset.WebRowSet</code> interface
 reference implementation.<br>
 <br>
-<tt><b>FilteredRowSetImpl</b></tt> - The <tt>javax.sql.rowset.FilteredRowSet</tt>
+<code><b>FilteredRowSetImpl</b></code> - The <code>javax.sql.rowset.FilteredRowSet</code>
 interface reference implementation.<br>
 <br>
-<tt><b>JoinRowSetImpl</b></tt> - The <tt>javax.sql.rowset.JoinRowSet</tt> interface
+<code><b>JoinRowSetImpl</b></code> - The <code>javax.sql.rowset.JoinRowSet</code> interface
 reference implementation.<br>
 </blockquote>
 
-All details on their expected behavior, including their interactions with the <tt>SyncProvider</tt>
-SPI and helper classes are provided in the interface definitions in the <tt>javax.sql.rowset</tt>
+All details on their expected behavior, including their interactions with the <code>SyncProvider</code>
+SPI and helper classes are provided in the interface definitions in the <code>javax.sql.rowset</code>
 package specification.<br>
-   
+
 <h3>2.0 Usage</h3>
 The reference implementations represent robust implementations of the standard
-<code>RowSet</code> interfaces defined in the <code>javax.sql.rowset</code> package. 
-All disconnected <code>RowSet</code> implementations, such as the <tt>CachedRowSetImpl</tt>
-and <tt>WebRowSetImpl</tt>, are flexible enough to use the <tt>SyncFactory</tt> SPIs to 
-leverage non-reference implementation <tt>SyncProvider</tt> implementations to obtain
-differing synchronization semantics. Furthermore, developers and vendors alike are free 
+<code>RowSet</code> interfaces defined in the <code>javax.sql.rowset</code> package.
+All disconnected <code>RowSet</code> implementations, such as the <code>CachedRowSetImpl</code>
+and <code>WebRowSetImpl</code>, are flexible enough to use the <code>SyncFactory</code> SPIs to
+leverage non-reference implementation <code>SyncProvider</code> implementations to obtain
+differing synchronization semantics. Furthermore, developers and vendors alike are free
 to use these implementations and integrate them into their products just as they
 can with to other components of the Java platform.<br>
-   
+
 <h3>3.0 Extending the JDBC RowSet Implementations</h3>
 
 The JDBC <code>RowSet</code> reference implementations are provided as non-final
@@ -81,6 +81,6 @@
 provider a portal where implementations can be listed, similar to the way it
 provides a site for JDBC drivers.
 <br>
- <br>
+<br>
 </body>
 </html>
--- a/src/java.sql.rowset/share/classes/com/sun/rowset/providers/package.html	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.sql.rowset/share/classes/com/sun/rowset/providers/package.html	Mon Aug 17 10:12:16 2015 -0700
@@ -1,10 +1,10 @@
 <!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
 <html>
 <head>
-                    
+
   <meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
-                    
+
   <meta name="GENERATOR"
  content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
      <!--
@@ -35,21 +35,21 @@
   <title>javax.sql.rowset.providers Package</title>
 </head>
   <body bgcolor="#ffffff">
-  Repository for the <tt>RowSet</tt> reference implementations of the 
- <tt>SyncProvider</tt> abstract class. These implementations provide a 
- disconnected <code>RowSet</code>
- object with the ability to synchronize the data in the underlying data 
- source with its data.  These implementations are provided as
-the default <tt>SyncProvider</tt> implementations and are accessible via the
-<tt>SyncProvider</tt> SPI managed by the <tt>SyncFactory</tt>.  
+Repository for the <code>RowSet</code> reference implementations of the
+<code>SyncProvider</code> abstract class. These implementations provide a
+disconnected <code>RowSet</code>
+object with the ability to synchronize the data in the underlying data
+source with its data.  These implementations are provided as
+the default <code>SyncProvider</code> implementations and are accessible via the
+<code>SyncProvider</code> SPI managed by the <code>SyncFactory</code>.
 
 <h3>1.0 <code>SyncProvider</code> Reference Implementations</h3>
-  The main job of a <tt>SyncProvider</tt> implementation is to manage
+  The main job of a <code>SyncProvider</code> implementation is to manage
 the reader and writer mechanisms.
- The <tt>SyncProvider</tt> SPI, as specified in the <tt>javax.sql.rowset.spi</tt>
-package, provides a pluggable mechanism by which <tt>javax.sql.RowSetReader</tt>
-and <tt>javax.sql.RowSetWriter</tt> implementations can be supplied to a disconnected
-<tt>RowSet</tt> object.
+ The <code>SyncProvider</code> SPI, as specified in the <code>javax.sql.rowset.spi</code>
+package, provides a pluggable mechanism by which <code>javax.sql.RowSetReader</code>
+and <code>javax.sql.RowSetWriter</code> implementations can be supplied to a disconnected
+<code>RowSet</code> object.
 <P>
  A reader, a <code>javax.sql.RowSetReader</code>
 object, does the work necessary to populate a <code>RowSet</code> object with data.
@@ -100,24 +100,24 @@
    
 <UL>
 <LI>
-<b><tt>RIOptimisticProvider </tt></b>- provides the <tt>javax.sql.RowSetReader</tt>
- and <tt>javax.sql.RowSetWriter</tt> interface implementations and provides
+<b><code>RIOptimisticProvider</code></b> - provides the <code>javax.sql.RowSetReader</code>
+and <code>javax.sql.RowSetWriter</code> interface implementations and provides
 an optimistic concurrency model for synchronization. This model assumes that there
 will be few conflicts and therefore uses a relatively low grade of synchronization.
 If no other provider is available, this is the default provider that the 
 <code>SyncFactory</code> will supply to a <code>RowSet</code> object.
     <br>
 <LI>
-    <b><tt>RIXMLProvider </tt></b>- provides the <tt>XmlReader</tt> (an extension
-of  the <tt>javax.sql.RowSetReader</tt> interface) and the <tt>XmlWriter</tt>
-(an extension of the <tt>javax.sql.RowSetWriter</tt> interface) to enable
-  <tt>WebRowSet</tt> objects to write their state to a
-well formed XML document according to the <tt>WebRowSet</tt> XML schema
+<b><code>RIXMLProvider</code></b> - provides the <code>XmlReader</code> (an extension
+of the <code>javax.sql.RowSetReader</code> interface) and the <code>XmlWriter</code>
+(an extension of the <code>javax.sql.RowSetWriter</code> interface) to enable
+<code>WebRowSet</code> objects to write their state to a
+well formed XML document according to the <code>WebRowSet</code> XML schema
 definition.<br>
 </UL>
    
 <h3>2.0 Basics in RowSet Population &amp; Synchronization</h3>
-  A rowset's first task is to populate itself with rows of column values.
+A rowset's first task is to populate itself with rows of column values.
 Generally,   these rows will come from a relational database, so a rowset
 has properties   that supply what is necessary for making a connection to
 a database and executing  a query. A rowset that does not need to establish
@@ -127,28 +127,28 @@
 properties. The general  rule is that a RowSet is required to set only the
 properties that it uses.<br>
     <br>
-    The <tt>command</tt> property contains the query that determines what 
+The <code>command</code> property contains the query that determines what 
 data  a <code>RowSet</code> will contain. Rowsets have methods for setting a query's 
 parameter(s),  which means that a query can be executed multiple times with 
 different parameters  to produce different result sets. Or the query can be
 changed to something  completely new to get a new result set.           
-<p>Once a rowset contains the rows from a <tt>ResultSet</tt> object or some
-  other data source, its column values can be updated, and its rows can be
- inserted or deleted. Any method that causes a change in the rowset's values
- or cursor position also notifies any object that has been registered as
-a  listener with the rowset. So, for example, a table that displays the rowset's
- data in an applet can be notified of changes and make updates as they
- occur.<br>
+<p>Once a rowset contains the rows from a <code>ResultSet</code> object or some
+other data source, its column values can be updated, and its rows can be
+inserted or deleted. Any method that causes a change in the rowset's values
+or cursor position also notifies any object that has been registered as
+a listener with the rowset. So, for example, a table that displays the rowset's
+data in an applet can be notified of changes and make updates as they
+occur.<br>
     <br>
-  The changes made to a rowset can be propagated back to the original data
-  source to keep the rowset and its data source synchronized. Although this
-  involves many operations behind the scenes, it is completely transparent 
- to the application programmer and remains the concern of the RowSet provider 
-  developer. All an application has to do is invoke the method <tt>acceptChanges</tt>, 
-  and the data source backing the rowset will be updated to match the current 
-  values in the rowset. </p>
-       
-<p>A disconnected rowset, such as a <tt>CachedRowSet</tt> or <tt>WebRowSet</tt>
+The changes made to a rowset can be propagated back to the original data
+source to keep the rowset and its data source synchronized. Although this
+involves many operations behind the scenes, it is completely transparent 
+to the application programmer and remains the concern of the RowSet provider 
+developer. All an application has to do is invoke the method <code>acceptChanges</code>, 
+and the data source backing the rowset will be updated to match the current 
+values in the rowset. </p>
+
+<p>A disconnected rowset, such as a <code>CachedRowSet</code> or <code>WebRowSet</code>
  object, establishes a connection to populate itself with data from a database 
  and then closes the connection. The <code>RowSet</code> object will remain 
  disconnected until it wants to propagate changes back to its database table, 
@@ -156,9 +156,9 @@
  the database), the rowset establishes a connection, write the changes, and then 
  once again disconnects itself.<br>
   </p>
-      
+
 <h3> 3.0 Other Possible Implementations</h3>
- There are many other possible implementations of the <tt>SyncProvider</tt> abstract
+ There are many other possible implementations of the <code>SyncProvider</code> abstract
  class. One possibility is to employ a more robust synchronization model, which
  would give a <code>RowSet</code> object increased trust in the provider's
  ability to get any updates back to the original data source. Another possibility 
--- a/src/java.sql.rowset/share/classes/javax/sql/rowset/package.html	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.sql.rowset/share/classes/javax/sql/rowset/package.html	Mon Aug 17 10:12:16 2015 -0700
@@ -1,7 +1,7 @@
 <!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
 <html>
 <head>
-                                    
+
   <meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
 <!--
@@ -53,40 +53,40 @@
  All five extend the 
 <a href="../RowSet.html">RowSet</a> interface described in the JDBC 3.0
 specification.  It is anticipated that additional definitions
-of more specialized JDBC <code>RowSet</code> types will emerge as this technology 
-matures. Future definitions <i>should</i> be specified as subinterfaces using 
+of more specialized JDBC <code>RowSet</code> types will emerge as this technology
+matures. Future definitions <i>should</i> be specified as subinterfaces using
 inheritance similar to the way it is used in this specification.
 <p>
 <i>Note:</i> The interface definitions provided in this package form the basis for
 all compliant JDBC <code>RowSet</code> implementations. Vendors and more advanced
-developers who intend to provide their own compliant <code>RowSet</code> implementations 
+developers who intend to provide their own compliant <code>RowSet</code> implementations
 should pay particular attention to the assertions detailed in specification
 interfaces. 
 
 <h3><a name="stdrowset">2.0 Standard RowSet Definitions</a></h3>
 <ul>
-<li><a href="JdbcRowSet.html"><b><code>JdbcRowSet</code></b></a> - A wrapper around 
-a <tt>ResultSet</tt> object that makes it possible to use the result set as a 
+<li><a href="JdbcRowSet.html"><b><code>JdbcRowSet</code></b></a> - A wrapper around
+a <code>ResultSet</code> object that makes it possible to use the result set as a
 JavaBeans&trade; component. Thus,
-a <tt>JdbcRowSet</tt> object can be a Bean that any tool
+a <code>JdbcRowSet</code> object can be a Bean that any tool
 makes available for assembling an application as part of a component based
-architecture . A <tt>JdbcRowSet</tt> object is a connected <code>RowSet</code>
+architecture. A <code>JdbcRowSet</code> object is a connected <code>RowSet</code>
 object, that is, it 
 <b>must</b> continually maintain its connection to its data source using a JDBC
 technology-enabled driver ("JDBC driver"). In addition, a <code>JdbcRowSet</code>
-object provides a fully updatable and scrollable tabular 
+object provides a fully updatable and scrollable tabular
 data structure as defined in the JDBC 3.0 specification.
 
 <li><a href="CachedRowSet.html">
 <b><code>CachedRowSet</code>&trade;</b></a>
- - A <tt>CachedRowSet</tt> object is a JavaBeans&trade;
+ - A <code>CachedRowSet</code> object is a JavaBeans&trade;
  component that is scrollable, updatable, serializable, and generally disconnected from
- the source of its data. A <tt>CachedRowSet</tt> object
+ the source of its data. A <code>CachedRowSet</code> object
 typically contains rows from a result set, but it can also contain rows from any
-file with a tabular format, such as a spreadsheet. <tt>CachedRowSet</tt> implementations 
-<b>must</b> use the <tt>SyncFactory</tt> to manage and obtain pluggable
+file with a tabular format, such as a spreadsheet. <code>CachedRowSet</code> implementations
+<b>must</b> use the <code>SyncFactory</code> to manage and obtain pluggable
 <code>SyncProvider</code> objects to provide synchronization between the
-disconnected <code>RowSet</code> object and the originating data source. 
+disconnected <code>RowSet</code> object and the originating data source.
 Typically a <code>SyncProvider</code> implementation relies upon a JDBC
 driver to obtain connectivity to a particular data source.
 Further details on this mechanism are discussed in the <a
@@ -94,13 +94,13 @@
 specification.
 
 <li><a href="WebRowSet.html"><b><code>WebRowSet</code></b></a> - A 
-<code>WebRowSet</code> object is an extension of <tt>CachedRowSet</tt>
+<code>WebRowSet</code> object is an extension of <code>CachedRowSet</code>
 that can read and write a <code>RowSet</code> object in a well formed XML format.
-This class calls an <a href="spi/XmlReader.html"><code>XmlReader</code></a> object 
+This class calls an <a href="spi/XmlReader.html"><code>XmlReader</code></a> object
 (an extension of the <a href="../RowSetReader.html"><code>RowSetReader</code></a>
 interface) to read a rowset in XML format. It calls an 
-<a href="spi/XmlWriter.html"><code>XmlWriter</code></a> object (an extension of the 
-<a href="../RowSetWriter.html"><code>RowSetWriter</code></a> interface) 
+<a href="spi/XmlWriter.html"><code>XmlWriter</code></a> object (an extension of the
+<a href="../RowSetWriter.html"><code>RowSetWriter</code></a> interface)
 to write a rowset in XML format. The reader and writer required by
 <code>WebRowSet</code> objects are provided by the
 <code>SyncFactory</code> in the form of <code>SyncProvider</code>
@@ -110,14 +110,14 @@
 <code>http://java.sun.com/xml/ns/jdbc/webrowset.xsd</code></a>.
 
 <li><a href="FilteredRowSet.html"><b><code>FilteredRowSet</code></b></a> - A
-<tt>FilteredRowSet</tt> object provides filtering functionality in a programmatic
-and extensible way. There are many instances when a <tt>RowSet</tt> <code>object</code>
+<code>FilteredRowSet</code> object provides filtering functionality in a programmatic
+and extensible way. There are many instances when a <code>RowSet</code> <code>object</code>
 has a need to provide filtering in its contents without sacrificing the disconnected
 environment, thus saving the expense of having to create a connection to the data source.
 Solutions to this need vary from providing heavyweight full scale 
 SQL query abilities, to portable components, to more lightweight 
 approaches. A <code>FilteredRowSet</code> object consumes
-an implementation of the <a href="Predicate.html"><code>Predicate</code></a> 
+an implementation of the <a href="Predicate.html"><code>Predicate</code></a>
 interface, which <b>may</b> define a filter at run time. In turn, a
 <code>FilteredRowSet</code> object is tasked with enforcing the set filter for both
 inbound and outbound read and write operations. That is, all filters can be
@@ -125,19 +125,19 @@
 however, sufficient mechanics are specified to permit any required filter to be
 implemented.
 
-<li><a href="JoinRowSet.html"><b><code>JoinRowSet</code></b></a> - The <tt>JoinRowSet</tt>
-interface  describes a mechanism by which relationships can be established between 
-two or more standard <code>RowSet</code> implementations. Any number of <tt>RowSet</tt>
- objects can be added to a <tt>JoinRowSet</tt> object provided  the <tt>RowSet</tt>objects 
-can be related  in a SQL <tt>JOIN</tt> like fashion. By definition, the SQL <tt>JOIN</tt> 
+<li><a href="JoinRowSet.html"><b><code>JoinRowSet</code></b></a> - The <code>JoinRowSet</code>
+interface  describes a mechanism by which relationships can be established between
+two or more standard <code>RowSet</code> implementations. Any number of <code>RowSet</code>
+ objects can be added to a <code>JoinRowSet</code> object provided  the <code>RowSet</code>objects
+can be related  in a SQL <code>JOIN</code> like fashion. By definition, the SQL <code>JOIN</code>
 statement  is used to combine the data contained in two (<i>or more</i>) relational
 database tables based upon a common attribute. By establishing and then enforcing
-column matches, a <tt>JoinRowSet</tt> object establishes relationships between
-<tt>RowSet</tt> instances without the need to touch the originating data source.     
+column matches, a <code>JoinRowSet</code> object establishes relationships between
+<code>RowSet</code> instances without the need to touch the originating data source.
 </ul>
 
 <h3><a name="impl">3.0 Implementer's Guide</a></h3>
-Compliant implementations of JDBC <code>RowSet</code> Implementations 
+Compliant implementations of JDBC <code>RowSet</code> Implementations
 <b>must</b> follow the assertions described in this specification. In accordance
 with the terms of the <a href="http://www.jcp.org">Java Community Process</a>, a
 Test Compatibility Kit (TCK) can be licensed to ensure compatibility with the
@@ -155,24 +155,24 @@
 </li>
 <li><b>3.2 Role of the <code>BaseRowSet</code> Class</b>
 <p>
-A compliant JDBC <code>RowSet</code> implementation <b>must</b> implement one or more 
-standard interfaces specified in this package and <b>may</b> extend the 
-<a href="BaseRowSet.html"><code>BaseRowSet</code></a> abstract class. For example, a 
+A compliant JDBC <code>RowSet</code> implementation <b>must</b> implement one or more
+standard interfaces specified in this package and <b>may</b> extend the
+<a href="BaseRowSet.html"><code>BaseRowSet</code></a> abstract class. For example, a
 <code>CachedRowSet</code> implementation must implement the <code>CachedRowSet</code>
 interface and extend the <code>BaseRowSet</code> abstract class. The
 <code>BaseRowSet</code> class provides the standard architecture on which all
 <code>RowSet</code> implementations should be built, regardless of whether the
 <code>RowSet</code> objects exist in a connected or disconnected environment.
-The <tt>BaseRowSet</tt> abstract class provides any <tt>RowSet</tt> implementation
+The <code>BaseRowSet</code> abstract class provides any <code>RowSet</code> implementation
 with its base functionality, including property manipulation and event notification
-that is fully compliant with <a href="http://java.sun.com/products/javabeans">JavaBeans</a> 
+that is fully compliant with <a href="http://java.sun.com/products/javabeans">JavaBeans</a>
 component requirements. As an example, all implementations provided in the
-reference implementations (contained in the <tt>com.sun.rowset</tt> package) use
-the <tt>BaseRowSet</tt> class as a basis for their implementations.            
+reference implementations (contained in the <code>com.sun.rowset</code> package) use
+the <code>BaseRowSet</code> class as a basis for their implementations.
 <P>
 The following table illustrates the features that the <code>BaseRowSet</code>
 abstract class provides.
-  <blockquote>                    
+  <blockquote>
     <table cellpadding="2" cellspacing="2" border="1" width="75%">
           <tbody>
             <tr>
@@ -185,8 +185,8 @@
               <td valign="top">Properties<br>
               </td>
               <td valign="top">Provides standard JavaBeans property manipulation
-  mechanisms to allow applications to get and set <code>RowSet</code> command and
-property  values. Refer to the   documentation of the <tt>javax.sql.RowSet</tt>
+mechanisms to allow applications to get and set <code>RowSet</code> command and
+property  values. Refer to the   documentation of the <code>javax.sql.RowSet</code>
 interface  (available in the JDBC 3.0 specification) for more details on
 the standard  <code>RowSet</code> properties.<br>
               </td>
@@ -195,9 +195,9 @@
               <td valign="top">Event notification<br>
               </td>
               <td valign="top">Provides standard JavaBeans event notifications
-  to registered event listeners. Refer to the documentation of <tt>javax.sql.RowSetEvent
-           </tt> interface (available in the JDBC 3.0 specification) for
-more  details on how  to register and handle standard RowSet events generated
+to registered event listeners. Refer to the documentation of <code>javax.sql.RowSetEvent</code>
+interface (available in the JDBC 3.0 specification) for
+more details on how  to register and handle standard RowSet events generated
 by  compliant implementations.<br>
               </td>
             </tr>
@@ -223,8 +223,8 @@
 <p>
 The <code>JdbcRowSet</code> describes a <code>RowSet</code> object that <b>must</b> always
 be connected to the originating data source. Implementations of the <code>JdbcRowSet</code>
-should ensure that this connection is provided solely by a JDBC driver. 
-Furthermore, <code>RowSet</code> objects that are implementations of the 
+should ensure that this connection is provided solely by a JDBC driver.
+Furthermore, <code>RowSet</code> objects that are implementations of the
 <code>JdbcRowSet</code> interface and are therefore operating in a connected environment
 do not use the <code>SyncFactory</code> to obtain a <code>RowSetReader</code> object
 or a <code>RowSetWriter</code> object. They can safely rely on the JDBC driver to
@@ -234,24 +234,24 @@
 <li>
 <b>3.4 Disconnected RowSet Requirements</b>
 <p> 
-A disconnected <code>RowSet</code> object, such as a <code>CachedRowSet</code> object, 
+A disconnected <code>RowSet</code> object, such as a <code>CachedRowSet</code> object,
 <b>should</b> delegate  
-connection management to a <code>SyncProvider</code> object provided by the 
-<code>SyncFactory</code>. To ensure fully disconnected semantics, all 
+connection management to a <code>SyncProvider</code> object provided by the
+<code>SyncFactory</code>. To ensure fully disconnected semantics, all
 disconnected <code>RowSet</code> objects <b>must</b> ensure
-that the original connection made to the data source to populate the <code>RowSet</code> 
+that the original connection made to the data source to populate the <code>RowSet</code>
 object is closed to permit the garbage collector to recover and release resources. The
-<code>SyncProvider</code> object ensures that the critical JDBC properties are 
-maintained in order to re-establish a connection to the data source when a 
-synchronization is required. A disconnected <code>RowSet</code> object should 
-therefore ensure that no 
+<code>SyncProvider</code> object ensures that the critical JDBC properties are
+maintained in order to re-establish a connection to the data source when a
+synchronization is required. A disconnected <code>RowSet</code> object should
+therefore ensure that no
 extraneous references remain on the <code>Connection</code> object.
 
 <li><b>3.5 Role of RowSetMetaDataImpl</b>
 <p>
 The <code>RowsetMetaDataImpl</code> class is a utility class that provides an implementation of the
 <a href="../RowSetMetaData.html">RowSetMetaData</a> interface, supplying standard setter
-method implementations for metadata for both connected and disconnected 
+method implementations for metadata for both connected and disconnected
 <code>RowSet</code> objects. All implementations are free to use this standard
 implementation but are not required to do so.
 
@@ -261,10 +261,10 @@
 on <code>RowSet</code> implementations.
 Similar to <a href="../../../java/sql/SQLWarning.html">SQLWarning</a> objects,
 <code>RowSetWarning</code>  objects are silently chained to the object whose method
-caused the warning to be thrown. All <code>RowSet</code> implementations <b>should</b>  
+caused the warning to be thrown. All <code>RowSet</code> implementations <b>should</b>
 ensure that this chaining occurs if a warning is generated and also ensure that the
 warnings are available via the <code>getRowSetWarnings</code> method defined in either
-the <code>JdbcRowSet</code> interface or the <code>CachedRowSet</code> interface. 
+the <code>JdbcRowSet</code> interface or the <code>CachedRowSet</code> interface.
 After a warning has been retrieved with one of the
 <code>getRowSetWarnings</code> methods, the <code>RowSetWarning</code> method
 <code>getNextWarning</code> can be called on it to retrieve any warnings that might
@@ -273,10 +273,10 @@
 
 <li><b>3.7 The Joinable Interface</b>
 <P>
-The <code>Joinable</code> interface provides both connected and disconnected 
-<code>RowSet</code> objects with the capability to be added to a 
+The <code>Joinable</code> interface provides both connected and disconnected
+<code>RowSet</code> objects with the capability to be added to a
 <code>JoinRowSet</code> object in an SQL <code>JOIN</code> operation.
-A <code>RowSet</code> object that has  implemented the <code>Joinable</code> 
+A <code>RowSet</code> object that has  implemented the <code>Joinable</code>
 interface can set a match column, retrieve a match column, or unset a match column.
 A <code>JoinRowSet</code> object can then use the <code>RowSet</code> object's
 match column as a basis for adding the <code>RowSet</code> object.
@@ -298,7 +298,7 @@
 <h3><a name="reldocs">5.0 Related Documentation</a></h3>
 <ul>
 <li><a href="http://docs.oracle.com/javase/tutorial/jdbc/basics/rowset.html">
-JDBC RowSet Tutorial</a>      
+JDBC RowSet Tutorial</a>
 </ul>
 </body>
 </html>
--- a/src/java.sql.rowset/share/classes/javax/sql/rowset/serial/package.html	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.sql.rowset/share/classes/javax/sql/rowset/serial/package.html	Mon Aug 17 10:12:16 2015 -0700
@@ -1,10 +1,10 @@
 <!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
 <html>
 <head>
-                
+
   <meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
-                
+
   <meta name="GENERATOR"
  content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
 <!--
@@ -36,52 +36,52 @@
 <body bgcolor="#ffffff">
 Provides utility classes to allow serializable mappings between SQL types
 and data types in the Java programming language.
-<p> Standard JDBC <code>RowSet</code> implementations may use these utility 
+<p> Standard JDBC <code>RowSet</code> implementations may use these utility
 classes to
-assist in the serialization of disconnected <code>RowSet</code> objects. 
+assist in the serialization of disconnected <code>RowSet</code> objects.
 This is useful
-when  transmitting a disconnected <tt>RowSet</tt> object over the wire to
+when  transmitting a disconnected <code>RowSet</code> object over the wire to
 a different VM or across layers within an application.<br>
 </p>
 
 <h3>1.0 SerialArray</h3>
-A serializable mapping in the Java programming language of an SQL ARRAY 
+A serializable mapping in the Java programming language of an SQL ARRAY
 value. <br>
 <br>
-The <tt>SerialArray </tt>class provides a constructor for creating a <tt>SerialArray
-</tt>instance from an Array object, methods for getting the base type and
+The <code>SerialArray</code> class provides a constructor for creating a <code>SerialArray</code>
+instance from an Array object, methods for getting the base type and
 the SQL name for the base type, and methods for copying all or part of a
-<tt>SerialArray </tt>object. <br>
+<code>SerialArray</code> object. <br>
 
 <h3>2.0 SerialBlob</h3>
 A serializable mapping in the Java programming language of an SQL BLOB
 value.  <br>
 <br>
-The <tt>SerialBlob </tt>class provides a constructor for creating an instance
+The <code>SerialBlob</code>class provides a constructor for creating an instance
 from a Blob object. Note that the Blob object should have brought the SQL
-BLOB value's data over to the client before a <tt>SerialBlob </tt>object
+BLOB value's data over to the client before a <code>SerialBlob</code>object
 is constructed from it. The data of an SQL BLOB value can be materialized
-on the client as an array of bytes (using the method <tt>Blob.getBytes</tt>)
-or as a stream of uninterpreted bytes (using the method <tt>Blob.getBinaryStream</tt>).
+on the client as an array of bytes (using the method <code>Blob.getBytes</code>)
+or as a stream of uninterpreted bytes (using the method <code>Blob.getBinaryStream</code>).
 <br>
 <br>
-<tt>SerialBlob </tt>methods make it possible to make a copy of a <tt>SerialBlob
-</tt>object as an array of bytes or as a stream. They also make it possible
-to locate a given pattern of bytes or a <tt>Blob </tt>object within a <tt>SerialBlob
-</tt>object. <br>
+<code>SerialBlob</code> methods make it possible to make a copy of a <code>SerialBlob</code>
+object as an array of bytes or as a stream. They also make it possible
+to locate a given pattern of bytes or a <code>Blob</code> object within a <code>SerialBlob</code>
+object. <br>
 
 <h3>3.0 SerialClob</h3>
 A serializable mapping in the Java programming language of an SQL CLOB
 value.  <br>
 <br>
-The <tt>SerialClob </tt>class provides a constructor for creating an instance
-from a <tt>Clob </tt>object. Note that the <tt>Clob </tt>object should have
-brought the SQL CLOB value's data over to the client before a <tt>SerialClob
-</tt>object is constructed from it. The data of an SQL CLOB value can be
+The <code>SerialClob</code> class provides a constructor for creating an instance
+from a <code>Clob</code> object. Note that the <code>Clob</code> object should have
+brought the SQL CLOB value's data over to the client before a <code>SerialClob</code>
+object is constructed from it. The data of an SQL CLOB value can be
 materialized on the client as a stream of Unicode characters. <br>
 <br>
-<tt>SerialClob </tt>methods make it possible to get a substring from a 
-<tt>SerialClob </tt>object or to locate the start of a pattern of characters. 
+<code>SerialClob</code> methods make it possible to get a substring from a
+<code>SerialClob</code> object or to locate the start of a pattern of characters.
 <br>
 
 <h3>5.0 SerialDatalink</h3>
@@ -89,11 +89,11 @@
 value. A DATALINK value references a file outside of the underlying data source
 that the originating data source manages. <br>
 <br>
-<code>RowSet</code> implementations can use the method <tt>RowSet.getURL() </tt>to retrieve
+<code>RowSet</code> implementations can use the method <code>RowSet.getURL()</code> to retrieve
 a <code>java.net.URL</code> object, which can be used to manipulate the external data.
 <br>
 <br>
-&nbsp;&nbsp;<tt>&nbsp;&nbsp;&nbsp; java.net.URL url = rowset.getURL(1);</tt><br>
+&nbsp;&nbsp;<code>&nbsp;&nbsp;&nbsp; java.net.URL url = rowset.getURL(1);</code><br>
 
 <h3>6.0 SerialJavaObject</h3>
 A serializable mapping in the Java programming language of an SQL JAVA_OBJECT
@@ -103,16 +103,16 @@
 If however, the serialization is not possible in the case where the Java
 object is not immediately serializable, this class will attempt to serialize
 all non static members to permit the object instance state to be serialized.
-Static or transient fields cannot be serialized and attempting to do so 
-will result in a <tt>SerialException </tt>being thrown. <br>
+Static or transient fields cannot be serialized and attempting to do so
+will result in a <code>SerialException</code> being thrown. <br>
 
 <h3>7.0 SerialRef</h3>
 A serializable mapping between the SQL REF type and the Java programming
 language. <br>
 <br>
-The <tt>SerialRef </tt>class provides a constructor for creating a <tt>SerialRef
-</tt>instance from a <tt>Ref</tt> type and provides methods for getting
-and setting the <tt>Ref</tt> object type. <br>
+The <code>SerialRef</code> class provides a constructor for creating a <code>SerialRef</code>
+instance from a <code>Ref</code> type and provides methods for getting
+and setting the <code>Ref</code> object type. <br>
 
 <h3>8.0 SerialStruct</h3>
 A serializable mapping in the Java programming language of an SQL structured
@@ -121,58 +121,58 @@
 that is not already serializable is mapped to a serializable form. <br>
 <br>
 In addition, if a <code>Map</code> object is passed to one of the constructors or
-to the method <code>getAttributes</code>, the structured type is custom mapped 
+to the method <code>getAttributes</code>, the structured type is custom mapped
 according to the mapping specified in the <code>Map</code> object.
-  <br>
-  The <tt>SerialStruct </tt>class provides a constructor for creating an
-instance  from a <tt>Struct</tt> object, a method for retrieving the SQL
+<br>
+The <code>SerialStruct</code> class provides a constructor for creating an
+instance  from a <code>Struct</code> object, a method for retrieving the SQL
 type name of the SQL structured type in the database, and methods for retrieving
 its attribute values. <br>
-   
+
 <h3>9.0 SQLInputImpl</h3>
-  An input stream used for custom mapping user-defined types (UDTs). An 
-  <tt>SQLInputImpl</tt> object is an input stream that contains a stream of 
+  An input stream used for custom mapping user-defined types (UDTs). An
+  <code>SQLInputImpl</code> object is an input stream that contains a stream of
   values that are
 the attributes of a UDT. This class is used by the driver behind the scenes
-when the method <tt>getObject</tt> is called on an SQL structured or distinct
-type that has a custom mapping; a programmer never invokes <tt>SQLInputImpl
-</tt> methods directly. <br>
+when the method <code>getObject</code> is called on an SQL structured or distinct
+type that has a custom mapping; a programmer never invokes <code>SQLInputImpl</code>
+methods directly. <br>
   <br>
-  The <tt>SQLInputImpl</tt> class provides a set of reader methods
- analogous to the <tt>ResultSet</tt> getter methods. These methods make it
- possible to read the values in an <tt>SQLInputImpl</tt> object. The method
+The <code>SQLInputImpl</code> class provides a set of reader methods
+analogous to the <code>ResultSet</code> getter methods. These methods make it
+possible to read the values in an <code>SQLInputImpl</code> object. The method
 <code>wasNull</code> is used to determine whether the last value read was SQL NULL.
+<br>
  <br>
-  <br>
-  When a constructor or getter method that takes a <code>Map</code> object is called, 
+When a constructor or getter method that takes a <code>Map</code> object is called,
 the JDBC driver calls the method
-<tt>SQLData.getSQLType</tt> to determine the SQL type of the UDT being custom
+<code>SQLData.getSQLType</code> to determine the SQL type of the UDT being custom
 mapped. The driver  creates an instance of <code>SQLInputImpl</code>, populating it with
 the attributes of  the UDT. The driver then passes the input stream to the
-method <tt>SQLData.readSQL</tt>,  which in turn calls the <tt>SQLInputImpl</tt>
+method <code>SQLData.readSQL</code>,  which in turn calls the <code>SQLInputImpl</code>
 methods to read the  attributes from the input stream. <br>
-   
+
 <h3>10.0 SQLOutputImpl</h3>
   The output stream for writing the attributes of a custom mapped user-defined
  type (UDT) back to the database. The driver uses this interface internally,
  and its methods are never directly invoked by an application programmer.
 <br>
   <br>
-  When an application calls the method <tt>PreparedStatement.setObject, </tt>the
- driver checks to see whether the value to be written is a UDT with a custom
- mapping. If it is, there will be an entry in a type map containing the Class
- object for the class that implements <tt>SQLData </tt>for this UDT. If the
- value to be written is an instance of <tt>SQLData</tt>, the driver will
-create  an instance of <code>SQLOutputImpl</code> and pass it to the method 
-<tt>SQLData.writeSQL</tt>.
- The method <code>writeSQL</code> in turn calls the appropriate <tt>SQLOutputImpl</tt>
-writer methods to write data from the <code>SQLData</code> object to the 
+When an application calls the method <code>PreparedStatement.setObject</code>, the
+driver checks to see whether the value to be written is a UDT with a custom
+mapping. If it is, there will be an entry in a type map containing the Class
+object for the class that implements <code>SQLData</code> for this UDT. If the
+value to be written is an instance of <code>SQLData</code>, the driver will
+create  an instance of <code>SQLOutputImpl</code> and pass it to the method
+<code>SQLData.writeSQL</code>.
+The method <code>writeSQL</code> in turn calls the appropriate <code>SQLOutputImpl</code>
+writer methods to write data from the <code>SQLData</code> object to the
 <code>SQLOutputImpl</code>
-output  stream as the representation of an SQL user-defined type.       
-   
+output  stream as the representation of an SQL user-defined type.
+
 <h3>Custom Mapping</h3>
-The JDBC API provides mechanisms for mapping an SQL structured type or DISTINCT 
-type to the Java programming language.  Typically, a structured type is mapped 
+The JDBC API provides mechanisms for mapping an SQL structured type or DISTINCT
+type to the Java programming language.  Typically, a structured type is mapped
 to a class, and its attributes are mapped to fields in the class.
 (A DISTINCT type can thought of as having one attribute.)  However, there are
 many other possibilities, and there may be any number of different mappings.
@@ -181,7 +181,7 @@
 For example, if an SQL structured type named AUTHORS has the attributes NAME,
 TITLE, and PUBLISHER, it could be mapped to a Java class named Authors.  The
 Authors class could have the fields name, title, and publisher, to which the
-attributes of AUTHORS are mapped.  In such a case, the implementation of 
+attributes of AUTHORS are mapped.  In such a case, the implementation of
 <code>SQLData</code> could look like the following:
 <PRE>
    public class Authors implements SQLData {
@@ -213,27 +213,27 @@
 A <code>java.util.Map</code> object is used to associate the SQL structured
 type with its mapping to the class <code>Authors</code>. The following code fragment shows
 how a <code>Map</code> object might be created and given an entry associating
-<code>AUTHORS</code> and <code>Authors</code>.  
+<code>AUTHORS</code> and <code>Authors</code>.
 <PRE>
     java.util.Map map = new java.util.HashMap();
     map.put("SCHEMA_NAME.AUTHORS", Class.forName("Authors");
 </PRE>
- 
-The <code>Map</code> object <i>map</i> now contains an entry with the 
+
+The <code>Map</code> object <i>map</i> now contains an entry with the
 fully qualified name of the SQL structured type and the <code>Class</code>
  object for the class <code>Authors</code>.  It can be passed to a method
-to tell the driver how to map <code>AUTHORS</code> to <code>Authors</code>.  
+to tell the driver how to map <code>AUTHORS</code> to <code>Authors</code>.
 <P>
 For a disconnected <code>RowSet</code> object, custom mapping can be done
 only when a <code>Map</code> object is passed to the method or constructor
 that will be doing the custom mapping.  The situation is different for
 connected <code>RowSet</code> objects because they maintain a connection
-with the data source.  A method that does custom mapping and is called by 
+with the data source.  A method that does custom mapping and is called by
 a disconnected <code>RowSet</code> object may use the <code>Map</code>
 object that is associated with the <code>Connection</code> object being
-used. So, in other words, if no map is specified, the connection's type 
+used. So, in other words, if no map is specified, the connection's type
 map can be used by default.
-     
+
 <br>
 </body>
 </html>
--- a/src/java.sql.rowset/share/classes/javax/sql/rowset/spi/package.html	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.sql.rowset/share/classes/javax/sql/rowset/spi/package.html	Mon Aug 17 10:12:16 2015 -0700
@@ -37,14 +37,14 @@
   <body bgcolor="#ffffff">
 
 The standard classes and interfaces that a third party vendor has to
-use in its implementation of a synchronization provider. These classes and 
-interfaces are referred to as the Service Provider Interface (SPI). A vendor may 
+use in its implementation of a synchronization provider. These classes and
+interfaces are referred to as the Service Provider Interface (SPI). A vendor may
 have its implementation included on the JDBC web page that lists available
 <code>SyncProvider</code> implementations by sending email to <code>jdbc@sun.com</code>.
 Doing this helps make developers aware of the implementation. To make it possible
 for a <code>RowSet</code> object to use an implementation, the vendor must register
 it with the <code>SyncFactory</code> singleton. (See the class comment for
-<code>SyncProvider</code> for a full explanation of the registration process and 
+<code>SyncProvider</code> for a full explanation of the registration process and
 the naming convention to be used.)
 
 <h2>Table of Contents</h2>
@@ -81,10 +81,10 @@
 object with the mechanisms for reading data into it and for writing data that has been
 modified in it
 back to the underlying data source.  A <i>reader</i>, a <code>RowSetReader</code> or
-<code>XMLReader</code> object, reads data into a <code>RowSet</code> object when the 
-<code>CachedRowSet</code> methods <code>execute</code> or <code>populate</code> 
+<code>XMLReader</code> object, reads data into a <code>RowSet</code> object when the
+<code>CachedRowSet</code> methods <code>execute</code> or <code>populate</code>
 are called.  A <i>writer</i>, a <code>RowSetWriter</code> or <code>XMLWriter</code>
-object, writes changes back to the underlying data source when the 
+object, writes changes back to the underlying data source when the
 <code>CachedRowSet</code> method <code>acceptChanges</code> is called.
 <P>
 The process of writing changes in a <code>RowSet</code> object to its data source
@@ -96,9 +96,9 @@
 The lower grades of synchronization are
 known as <i>optimistic</i> concurrency levels because they optimistically
 assume that there will be no conflicts or very few conflicts.  A conflict exists when
-the same data modified in the <code>RowSet</code> object has also been modified 
+the same data modified in the <code>RowSet</code> object has also been modified
 in the data source. Using the optimistic concurrency model means that if there
-is a conflict, modifications to either the data source or the <code>RowSet</code> 
+is a conflict, modifications to either the data source or the <code>RowSet</code>
 object will be lost.
 <P>
 Higher grades of synchronization are called <i>pessimistic</i> because they assume
@@ -106,7 +106,7 @@
 grades set varying levels of locks to increase the chances that no conflicts
 occur.
 <P>
-The lowest level of synchronization is simply writing any changes made to the 
+The lowest level of synchronization is simply writing any changes made to the
 <code>RowSet</code> object to its underlying data source.  The writer does
 nothing to check for conflicts. 
 If there is a conflict and the data
@@ -116,69 +116,69 @@
 The <code>RIXMLProvider</code> implementation uses the lowest level 
 of synchronization and just writes <code>RowSet</code> changes to the data source.
 This is true because  typically XML data sources do not enable transaction
-techniques for maintaining the integrity of data. However, specific standards 
+techniques for maintaining the integrity of data. However, specific standards
 groups have considered offering XML-based synchronization.  For details, see
 <PRE>
      <a href="http://www.syncml.org">http://www.syncml.org</a>
 </PRE>
 <P>
 For the next level up, the
-writer checks to see if there are any conflicts, and if there are, 
+writer checks to see if there are any conflicts, and if there are,
 it does not write anything to the data source.  The problem with this concurrency
-level is that if another party has modified the corresponding data in the data source 
+level is that if another party has modified the corresponding data in the data source
 since the <code>RowSet</code> object got its data,
 the changes made to the <code>RowSet</code> object are lost. The
 <code>RIOptimisticProvider</code> implementation uses this level of synchronization.
 <P>
 At higher levels of synchronization, referred to as pessimistic concurrency,
 the writer take steps to avoid conflicts by setting locks. Setting locks
-can vary from setting a lock on a single row to setting a lock on a table 
-or the entire data source. The level of synchronization is therefore a tradeoff 
+can vary from setting a lock on a single row to setting a lock on a table
+or the entire data source. The level of synchronization is therefore a tradeoff
 between the ability of users to access the data source concurrently and the  ability
 of the writer to keep the data in the <code>RowSet</code> object and its data source
 synchronized.
 <P>
-It is a requirement that all disconnected <code>RowSet</code> objects 
-(<code>CachedRowSet</code>, <code>FilteredRowSet</code>, <code>JoinRowSet</code>, 
+It is a requirement that all disconnected <code>RowSet</code> objects
+(<code>CachedRowSet</code>, <code>FilteredRowSet</code>, <code>JoinRowSet</code>,
 and <code>WebRowSet</code> objects) obtain their <code>SyncProvider</code> objects
 from the <code>SyncFactory</code> mechanism.  
 <P>
 The reference implementation (RI) provides two synchronization providers.
-	<UL>
-       <LI><b><tt>RIOptimisticProvider</tt></b> <br>
+    <UL>
+       <LI><b><code>RIOptimisticProvider</code></b> <br>
            The default provider that the <code>SyncFactory</code> instance will
            supply to a disconnected <code>RowSet</code> object when no provider
            implementation is specified.<BR>
            This synchronization provider uses an optimistic concurrency model,
-           assuming that there will be few conflicts among users 
+           assuming that there will be few conflicts among users
            who are accessing the same data in a database.  It avoids
            using locks; rather, it checks to see if there is a conflict
            before trying to synchronize the <code>RowSet</code> object and the
            data source. If there is a conflict, it does nothing, meaning that
            changes to the <code>RowSet</code> object are not persisted to the data
            source.
-       <LI><B><tt>RIXMLProvider</tt></B> <BR>
+       <LI><B><code>RIXMLProvider</code></B> <BR>
             A synchronization provider that can be used with a
-            <code>WebRowSet</code> object, which is a rowset that can be written 
-            in XML format or read from XML format. The 
+            <code>WebRowSet</code> object, which is a rowset that can be written
+            in XML format or read from XML format. The
             <code>RIXMLProvider</code> implementation does no checking at all for
             conflicts and simply writes any updated data in the
             <code>WebRowSet</code> object to the underlying data source.
             <code>WebRowSet</code> objects use this provider when they are 
             dealing with XML data.
-	</UL>
+    </UL>
 
 These <code>SyncProvider</code> implementations
 are bundled with the reference implementation, which makes them always available to
-<code>RowSet</code> implementations. 
+<code>RowSet</code> implementations.
 <code>SyncProvider</code> implementations make themselves available by being
-registered with the <code>SyncFactory</code> singleton.  When a <code>RowSet</code> 
+registered with the <code>SyncFactory</code> singleton.  When a <code>RowSet</code>
 object requests a provider, by specifying it in the constructor or as an argument to the
-<code>CachedRowSet</code> method <code>setSyncProvider</code>, 
+<code>CachedRowSet</code> method <code>setSyncProvider</code>,
 the <code>SyncFactory</code> singleton
 checks to see if the requested provider has been registered with it.
 If it has, the <code>SyncFactory</code> creates an instance of it and passes it to the
-requesting <code>RowSet</code> object.  
+requesting <code>RowSet</code> object.
 If the <code>SyncProvider</code> implementation that is specified has not been registered,
 the <code>SyncFactory</code> singleton causes a <code>SyncFactoryException</code> object
 to be thrown.  If no provider is specified,
@@ -189,18 +189,18 @@
 <P>
 If a <code>WebRowSet</code> object does not specify a provider in its constructor, the
 <code>SyncFactory</code> will give it an instance of <code>RIOptimisticProvider</code>.
-However, the constructor for <code>WebRowSet</code> is implemented to set the provider 
+However, the constructor for <code>WebRowSet</code> is implemented to set the provider
 to the <code>RIXMLProvider</code>, which reads and writes a <code>RowSet</code> object
 in XML format.
 <P>
 See the <a href="SyncProvider.html">SyncProvider</a> class
 specification for further details.
 <p>
-Vendors may develop a <tt>SyncProvider</tt> implementation with any one of the possible
+Vendors may develop a <code>SyncProvider</code> implementation with any one of the possible
 levels of synchronization, thus giving <code>RowSet</code> objects a choice of
-synchronization mechanisms.  A vendor can make its implementation available by 
+synchronization mechanisms.  A vendor can make its implementation available by
 registering the fully qualified class name with Oracle Corporation at
-<code>jdbc@sun.com</code>. This process is discussed in further detail below. 
+<code>jdbc@sun.com</code>. This process is discussed in further detail below.
 
 <h3><a name="arch">2.0 Service Provider Interface Architecture</a></h3>
 <b>2.1 Overview</b>
@@ -208,7 +208,7 @@
 The Service Provider Interface provides a pluggable mechanism by which
 <code>SyncProvider</code> implementations can be registered and then generated when
 required. The lazy reference mechanism employed by the <code>SyncFactory</code> limits
-unnecessary resource consumption by not creating an instance until it is 
+unnecessary resource consumption by not creating an instance until it is
 required by a disconnected
 <code>RowSet</code> object. The <code>SyncFactory</code> class also provides
 a standard API to configure logging options and streams that <b>may</b> be provided
@@ -216,11 +216,11 @@
 <p>
 <b>2.2 Registering with the <code>SyncFactory</code></b>
 <p>
-A third party <code>SyncProvider</code> implementation must be registered with the 
-<code>SyncFactory</code> in order for a disconnected <code>RowSet</code> object 
-to obtain it and thereby use its <code>javax.sql.RowSetReader</code> and 
+A third party <code>SyncProvider</code> implementation must be registered with the
+<code>SyncFactory</code> in order for a disconnected <code>RowSet</code> object
+to obtain it and thereby use its <code>javax.sql.RowSetReader</code> and
 <code>javax.sql.RowSetWriter</code>
-implementations. The following registration mechanisms are available to all 
+implementations. The following registration mechanisms are available to all
 <code>SyncProvider</code> implementations:
 <ul>
 <li><b>System properties</b> - Properties set at the command line. These
@@ -235,9 +235,9 @@
 file than can be edited to add additional <code>SyncProvider</code> objects.
 
 <li><b>JNDI Context</b> - Available providers can be registered on a JNDI
-context. The <tt>SyncFactory</tt> will attempt to load <tt>SyncProvider</tt>
+context. The <code>SyncFactory</code> will attempt to load <code>SyncProvider</code>
 objects bound to the context and register them with the factory. This
-context must be supplied to the <code>SyncFactory</code> for the mechanism to 
+context must be supplied to the <code>SyncFactory</code> for the mechanism to
 function correctly.
 </ul>
 <p>
@@ -250,11 +250,11 @@
 The <code>SyncFactory</code> generates a requested <code>SyncProvider</code>
 object if the provider has been correctly registered.  The
 following policies are adhered to when either a disconnected <code>RowSet</code> object
-is instantiated with a specified <code>SyncProvider</code> implementation or is 
+is instantiated with a specified <code>SyncProvider</code> implementation or is
 reconfigured at runtime with an alternative <code>SyncProvider</code> object.
 <ul>
 <li> If a <code>SyncProvider</code> object is specified and the <code>SyncFactory</code>
-contains <i>no</i> reference to the provider, a <code>SyncFactoryException</code> is 
+contains <i>no</i> reference to the provider, a <code>SyncFactoryException</code> is
 thrown.
 
 <li> If a <code>SyncProvider</code> object is specified and the <code>SyncFactory</code>
@@ -294,13 +294,13 @@
 <li><b>GRADE_NONE</b> - No synchronization with the originating data source is
 provided. A <code>SyncProvider</code> implementation returning this grade will simply
 attempt to write any data that has changed in the <code>RowSet</code> object to the
-underlying data source, overwriting whatever is there. No attempt is made to compare 
-original values with current values to see if there is a conflict. The 
+underlying data source, overwriting whatever is there. No attempt is made to compare
+original values with current values to see if there is a conflict. The
 <code>RIXMLProvider</code> is implemented with this grade.
 
 <li><b>GRADE_CHECK_MODIFIED_AT_COMMIT</b> - A low grade of optimistic synchronization.
 A <code>SyncProvider</code> implementation returning this grade
-will check for conflicts in rows that have changed between the last synchronization 
+will check for conflicts in rows that have changed between the last synchronization
 and the current synchronization under way. Any changes in the originating data source
 that have been modified will not be reflected in the disconnected <code>RowSet</code>
 object. If there are no conflicts, changes in the <code>RowSet</code> object will be
@@ -333,16 +333,16 @@
 on which constructs the locks are placed.  These locks will remain on the data
 source while the <code>RowSet</code> object is disconnected from the data source.
 <P>
-These constants <b>should</b> be considered complementary to the 
+These constants <b>should</b> be considered complementary to the
 grade constants. The default setting for the majority of grade settings requires
-that no data source locks remain when a <code>RowSet</code> object is disconnected 
+that no data source locks remain when a <code>RowSet</code> object is disconnected
 from its data source.
 The grades <code>GRADE_LOCK_WHEN_MODIFIED</code> and
 <code>GRADE_LOCK_WHEN_LOADED</code> allow a disconnected <code>RowSet</code> object
 to have a fine-grained control over the degree of locking.
 <ul>
-<li><b>DATASOURCE_NO_LOCK</b> - No locks remain on the originating data source. 
-This is the default lock setting for all <code>SyncProvider</code> implementations 
+<li><b>DATASOURCE_NO_LOCK</b> - No locks remain on the originating data source.
+This is the default lock setting for all <code>SyncProvider</code> implementations
 unless otherwise directed by a <code>RowSet</code> object.
 
 <li><b>DATASOURCE_ROW_LOCK</b> - A lock is placed on the rows that are touched by
@@ -364,26 +364,26 @@
 <ul>
 <li><b>UPDATABLE_VIEW_SYNC</b>
 Indicates that a <code>SyncProvider</code> implementation  supports synchronization
-to the table or tables from which the SQL <code>VIEW</code> used to populate  a
+to the table or tables from which the SQL <code>VIEW</code> used to populate
 a <code>RowSet</code> object is derived.
 
 <li><b>NONUPDATABLE_VIEW_SYNC</b>
 Indicates that a <code>SyncProvider</code> implementation  does <b>not</b> support
-synchronization to the table or tables from which the SQL <code>VIEW</code> 
+synchronization to the table or tables from which the SQL <code>VIEW</code>
 used to populate  a <code>RowSet</code> object is derived.
 </ul>
 <p>
 <b>3.5 Usage of <code>SyncProvider</code> Grading and Locking</b>
 <p>
-In the example below, the reference <tt>CachedRowSetImpl</tt> implementation
-reconfigures its current <tt>SyncProvider</tt> object by calling the 
-<tt>setSyncProvider</tt> method.<br>
+In the example below, the reference <code>CachedRowSetImpl</code> implementation
+reconfigures its current <code>SyncProvider</code> object by calling the
+<code>setSyncProvider</code> method.<br>
 
 <PRE>
     CachedRowSetImpl crs = new CachedRowSetImpl();
     crs.setSyncProvider("com.foo.bar.HASyncProvider");
 </PRE>
-    An application can retrieve the <tt>SyncProvider</tt> object currently in use
+    An application can retrieve the <code>SyncProvider</code> object currently in use
 by a disconnected <code>RowSet</code> object. It can also retrieve the
 grade of synchronization with which the provider was implemented and the degree of
 locking currently in use.  In addition, an application has the flexibility to set
@@ -396,14 +396,14 @@
     case: SyncProvider.GRADE_CHECK_ALL_AT_COMMIT
          //A high grade of optimistic synchronization
     break;
-    case: SyncProvider.GRADE_CHECK_MODIFIED_AT_COMMIT 
-         //A low grade of optimistic synchronization 
+    case: SyncProvider.GRADE_CHECK_MODIFIED_AT_COMMIT
+         //A low grade of optimistic synchronization
     break;
-    case: SyncProvider.GRADE_LOCK_WHEN_LOADED 
-         // A pessimistic synchronization grade 
+    case: SyncProvider.GRADE_LOCK_WHEN_LOADED
+         // A pessimistic synchronization grade
     break;
-    case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED 
-         // A pessimistic synchronization grade 
+    case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED
+         // A pessimistic synchronization grade
     break;
     case: SyncProvider.GRADE_NONE 
       // No synchronization with the originating data source provided
@@ -421,13 +421,13 @@
       break;
 
       case: SyncProvider.DATASOURCE_ROW_LOCK
-       // A lock is placed on the rows that are  touched by the original 
+       // A lock is placed on the rows that are  touched by the original
        // SQL statement used to populate
        // the RowSet object that is using the SyncProvider
        break;
 
       case: DATASOURCE_TABLE_LOCK
-       // A lock is placed on  all tables that are touched by the original 
+       // A lock is placed on  all tables that are touched by the original
        // SQL statement used to populated
        // the RowSet object that is using the SyncProvider
        break;
@@ -450,12 +450,12 @@
 it throws a <code>SyncProviderException</code> object.  An application can
 catch the exception and
 have it retrieve a <code>SyncResolver</code> object by calling the method
-<code>SyncProviderException.getSyncResolver()</code>. 
+<code>SyncProviderException.getSyncResolver()</code>.
 <P>
-A <code>SyncResolver</code> object, which is a special kind of 
+A <code>SyncResolver</code> object, which is a special kind of
 <code>CachedRowSet</code> object or
-a <code>JdbcRowSet</code> object that has implemented the <code>SyncResolver</code> 
-interface,  examines the conflicts row by row. It is a duplicate of the 
+a <code>JdbcRowSet</code> object that has implemented the <code>SyncResolver</code>
+interface,  examines the conflicts row by row. It is a duplicate of the
 <code>RowSet</code> object being synchronized except that it contains only the data
 from the data source this is causing a conflict. All of the other column values are
 set to <code>null</code>. To navigate from one conflict value to another, a
@@ -472,18 +472,18 @@
      to be changed
 </UL>
 <P>
-When the <code>CachedRowSet</code> method <code>acceptChanges</code> is called, it 
+When the <code>CachedRowSet</code> method <code>acceptChanges</code> is called, it
 delegates to the <code>RowSet</code> object's  <code>SyncProvider</code> object.
 How the writer provided by that <code>SyncProvider</code> object is implemented
-determines what level (grade) of checking for conflicts will be done.  After all 
+determines what level (grade) of checking for conflicts will be done.  After all
 checking for conflicts is completed and one or more conflicts has been found, the method
 <code>acceptChanges</code> throws a <code>SyncProviderException</code> object. The
-application can catch the exception and use it to obtain a <code>SyncResolver</code> object.  
+application can catch the exception and use it to obtain a <code>SyncResolver</code> object.
 <P>
 The application can then use <code>SyncResolver</code> methods to get information
 about each conflict and decide what to do.  If the application logic or the user
 decides that a value in the <code>RowSet</code> object should be the one to
-persist, the application or user can overwrite the data source value with it.  
+persist, the application or user can overwrite the data source value with it.
 <P>
 The comment for the <code>SyncResolver</code> interface has more detail.
 
--- a/src/java.sql/share/classes/java/sql/Timestamp.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/java.sql/share/classes/java/sql/Timestamp.java	Mon Aug 17 10:12:16 2015 -0700
@@ -31,43 +31,43 @@
 import sun.misc.JavaLangAccess;
 
 /**
- * <P>A thin wrapper around <code>java.util.Date</code> that allows
- * the JDBC API to identify this as an SQL <code>TIMESTAMP</code> value.
+ * <P>A thin wrapper around {@code java.util.Date} that allows
+ * the JDBC API to identify this as an SQL {@code TIMESTAMP} value.
  * It adds the ability
- * to hold the SQL <code>TIMESTAMP</code> fractional seconds value, by allowing
+ * to hold the SQL {@code TIMESTAMP} fractional seconds value, by allowing
  * the specification of fractional seconds to a precision of nanoseconds.
  * A Timestamp also provides formatting and
  * parsing operations to support the JDBC escape syntax for timestamp values.
  *
  * <p>The precision of a Timestamp object is calculated to be either:
  * <ul>
- * <li><code>19 </code>, which is the number of characters in yyyy-mm-dd hh:mm:ss
- * <li> <code> 20 + s </code>, which is the number
- * of characters in the yyyy-mm-dd hh:mm:ss.[fff...] and <code>s</code> represents  the scale of the given Timestamp,
+ * <li>{@code 19 }, which is the number of characters in yyyy-mm-dd hh:mm:ss
+ * <li> {@code  20 + s }, which is the number
+ * of characters in the yyyy-mm-dd hh:mm:ss.[fff...] and {@code s} represents  the scale of the given Timestamp,
  * its fractional seconds precision.
  *</ul>
  *
- * <P><B>Note:</B> This type is a composite of a <code>java.util.Date</code> and a
+ * <P><B>Note:</B> This type is a composite of a {@code java.util.Date} and a
  * separate nanoseconds value. Only integral seconds are stored in the
- * <code>java.util.Date</code> component. The fractional seconds - the nanos - are
- * separate.  The <code>Timestamp.equals(Object)</code> method never returns
- * <code>true</code> when passed an object
- * that isn't an instance of <code>java.sql.Timestamp</code>,
+ * {@code java.util.Date} component. The fractional seconds - the nanos - are
+ * separate.  The {@code Timestamp.equals(Object)} method never returns
+ * {@code true} when passed an object
+ * that isn't an instance of {@code java.sql.Timestamp},
  * because the nanos component of a date is unknown.
- * As a result, the <code>Timestamp.equals(Object)</code>
+ * As a result, the {@code Timestamp.equals(Object)}
  * method is not symmetric with respect to the
- * <code>java.util.Date.equals(Object)</code>
- * method.  Also, the <code>hashCode</code> method uses the underlying
- * <code>java.util.Date</code>
+ * {@code java.util.Date.equals(Object)}
+ * method.  Also, the {@code hashCode} method uses the underlying
+ * {@code java.util.Date}
  * implementation and therefore does not include nanos in its computation.
  * <P>
- * Due to the differences between the <code>Timestamp</code> class
- * and the <code>java.util.Date</code>
+ * Due to the differences between the {@code Timestamp} class
+ * and the {@code java.util.Date}
  * class mentioned above, it is recommended that code not view
- * <code>Timestamp</code> values generically as an instance of
- * <code>java.util.Date</code>.  The
- * inheritance relationship between <code>Timestamp</code>
- * and <code>java.util.Date</code> really
+ * {@code Timestamp} values generically as an instance of
+ * {@code java.util.Date}.  The
+ * inheritance relationship between {@code Timestamp}
+ * and {@code java.util.Date} really
  * denotes implementation inheritance, and not type inheritance.
  */
 public class Timestamp extends java.util.Date {
@@ -75,7 +75,7 @@
     private static final JavaLangAccess jla = SharedSecrets.getJavaLangAccess();
 
     /**
-     * Constructs a <code>Timestamp</code> object initialized
+     * Constructs a {@code Timestamp} object initialized
      * with the given values.
      *
      * @param year the year minus 1900
@@ -85,7 +85,7 @@
      * @param minute 0 to 59
      * @param second 0 to 59
      * @param nano 0 to 999,999,999
-     * @deprecated instead use the constructor <code>Timestamp(long millis)</code>
+     * @deprecated instead use the constructor {@code Timestamp(long millis)}
      * @exception IllegalArgumentException if the nano argument is out of bounds
      */
     @Deprecated
@@ -99,11 +99,11 @@
     }
 
     /**
-     * Constructs a <code>Timestamp</code> object
+     * Constructs a {@code Timestamp} object
      * using a milliseconds time value. The
      * integral seconds are stored in the underlying date value; the
-     * fractional seconds are stored in the <code>nanos</code> field of
-     * the <code>Timestamp</code> object.
+     * fractional seconds are stored in the {@code nanos} field of
+     * the {@code Timestamp} object.
      *
      * @param time milliseconds since January 1, 1970, 00:00:00 GMT.
      *        A negative number is the number of milliseconds before
@@ -120,8 +120,8 @@
     }
 
     /**
-     * Sets this <code>Timestamp</code> object to represent a point in time that is
-     * <tt>time</tt> milliseconds after January 1, 1970 00:00:00 GMT.
+     * Sets this {@code Timestamp} object to represent a point in time that is
+     * {@code time} milliseconds after January 1, 1970 00:00:00 GMT.
      *
      * @param time   the number of milliseconds.
      * @see #getTime
@@ -139,7 +139,7 @@
 
     /**
      * Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
-     * represented by this <code>Timestamp</code> object.
+     * represented by this {@code Timestamp} object.
      *
      * @return  the number of milliseconds since January 1, 1970, 00:00:00 GMT
      *          represented by this date.
@@ -157,16 +157,16 @@
     private int nanos;
 
     /**
-     * Converts a <code>String</code> object in JDBC timestamp escape format to a
-     * <code>Timestamp</code> value.
+     * Converts a {@code String} object in JDBC timestamp escape format to a
+     * {@code Timestamp} value.
      *
-     * @param s timestamp in format <code>yyyy-[m]m-[d]d hh:mm:ss[.f...]</code>.  The
-     * fractional seconds may be omitted. The leading zero for <code>mm</code>
-     * and <code>dd</code> may also be omitted.
+     * @param s timestamp in format {@code yyyy-[m]m-[d]d hh:mm:ss[.f...]}.  The
+     * fractional seconds may be omitted. The leading zero for {@code mm}
+     * and {@code dd} may also be omitted.
      *
-     * @return corresponding <code>Timestamp</code> value
+     * @return corresponding {@code Timestamp} value
      * @exception java.lang.IllegalArgumentException if the given argument
-     * does not have the format <code>yyyy-[m]m-[d]d hh:mm:ss[.f...]</code>
+     * does not have the format {@code yyyy-[m]m-[d]d hh:mm:ss[.f...]}
      */
     public static Timestamp valueOf(String s) {
         final int YEAR_LENGTH = 4;
@@ -258,11 +258,11 @@
 
     /**
      * Formats a timestamp in JDBC timestamp escape format.
-     *         <code>yyyy-mm-dd hh:mm:ss.fffffffff</code>,
-     * where <code>ffffffffff</code> indicates nanoseconds.
+     *         {@code yyyy-mm-dd hh:mm:ss.fffffffff},
+     * where {@code ffffffffff} indicates nanoseconds.
      *
-     * @return a <code>String</code> object in
-     *           <code>yyyy-mm-dd hh:mm:ss.fffffffff</code> format
+     * @return a {@code String} object in
+     *           {@code yyyy-mm-dd hh:mm:ss.fffffffff} format
      */
     @SuppressWarnings("deprecation")
     public String toString() {
@@ -315,9 +315,9 @@
     }
 
     /**
-     * Gets this <code>Timestamp</code> object's <code>nanos</code> value.
+     * Gets this {@code Timestamp} object's {@code nanos} value.
      *
-     * @return this <code>Timestamp</code> object's fractional seconds component
+     * @return this {@code Timestamp} object's fractional seconds component
      * @see #setNanos
      */
     public int getNanos() {
@@ -325,7 +325,7 @@
     }
 
     /**
-     * Sets this <code>Timestamp</code> object's <code>nanos</code> field
+     * Sets this {@code Timestamp} object's {@code nanos} field
      * to the given value.
      *
      * @param n the new fractional seconds component
@@ -341,13 +341,13 @@
     }
 
     /**
-     * Tests to see if this <code>Timestamp</code> object is
-     * equal to the given <code>Timestamp</code> object.
+     * Tests to see if this {@code Timestamp} object is
+     * equal to the given {@code Timestamp} object.
      *
-     * @param ts the <code>Timestamp</code> value to compare with
-     * @return <code>true</code> if the given <code>Timestamp</code>
-     *         object is equal to this <code>Timestamp</code> object;
-     *         <code>false</code> otherwise
+     * @param ts the {@code Timestamp} value to compare with
+     * @return {@code true} if the given {@code Timestamp}
+     *         object is equal to this {@code Timestamp} object;
+     *         {@code false} otherwise
      */
     public boolean equals(Timestamp ts) {
         if (super.equals(ts)) {
@@ -362,22 +362,22 @@
     }
 
     /**
-     * Tests to see if this <code>Timestamp</code> object is
+     * Tests to see if this {@code Timestamp} object is
      * equal to the given object.
      *
-     * This version of the method <code>equals</code> has been added
+     * This version of the method {@code equals} has been added
      * to fix the incorrect
-     * signature of <code>Timestamp.equals(Timestamp)</code> and to preserve backward
+     * signature of {@code Timestamp.equals(Timestamp)} and to preserve backward
      * compatibility with existing class files.
      *
      * Note: This method is not symmetric with respect to the
-     * <code>equals(Object)</code> method in the base class.
+     * {@code equals(Object)} method in the base class.
      *
-     * @param ts the <code>Object</code> value to compare with
-     * @return <code>true</code> if the given <code>Object</code> is an instance
-     *         of a <code>Timestamp</code> that
-     *         is equal to this <code>Timestamp</code> object;
-     *         <code>false</code> otherwise
+     * @param ts the {@code Object} value to compare with
+     * @return {@code true} if the given {@code Object} is an instance
+     *         of a {@code Timestamp} that
+     *         is equal to this {@code Timestamp} object;
+     *         {@code false} otherwise
      */
     public boolean equals(java.lang.Object ts) {
       if (ts instanceof Timestamp) {
@@ -388,40 +388,40 @@
     }
 
     /**
-     * Indicates whether this <code>Timestamp</code> object is
-     * earlier than the given <code>Timestamp</code> object.
+     * Indicates whether this {@code Timestamp} object is
+     * earlier than the given {@code Timestamp} object.
      *
-     * @param ts the <code>Timestamp</code> value to compare with
-     * @return <code>true</code> if this <code>Timestamp</code> object is earlier;
-     *        <code>false</code> otherwise
+     * @param ts the {@code Timestamp} value to compare with
+     * @return {@code true} if this {@code Timestamp} object is earlier;
+     *        {@code false} otherwise
      */
     public boolean before(Timestamp ts) {
         return compareTo(ts) < 0;
     }
 
     /**
-     * Indicates whether this <code>Timestamp</code> object is
-     * later than the given <code>Timestamp</code> object.
+     * Indicates whether this {@code Timestamp} object is
+     * later than the given {@code Timestamp} object.
      *
-     * @param ts the <code>Timestamp</code> value to compare with
-     * @return <code>true</code> if this <code>Timestamp</code> object is later;
-     *        <code>false</code> otherwise
+     * @param ts the {@code Timestamp} value to compare with
+     * @return {@code true} if this {@code Timestamp} object is later;
+     *        {@code false} otherwise
      */
     public boolean after(Timestamp ts) {
         return compareTo(ts) > 0;
     }
 
     /**
-     * Compares this <code>Timestamp</code> object to the given
-     * <code>Timestamp</code> object.
+     * Compares this {@code Timestamp} object to the given
+     * {@code Timestamp} object.
      *
-     * @param   ts   the <code>Timestamp</code> object to be compared to
-     *                this <code>Timestamp</code> object
-     * @return  the value <code>0</code> if the two <code>Timestamp</code>
-     *          objects are equal; a value less than <code>0</code> if this
-     *          <code>Timestamp</code> object is before the given argument;
-     *          and a value greater than <code>0</code> if this
-     *          <code>Timestamp</code> object is after the given argument.
+     * @param   ts   the {@code Timestamp} object to be compared to
+     *                this {@code Timestamp} object
+     * @return  the value {@code 0} if the two {@code Timestamp}
+     *          objects are equal; a value less than {@code 0} if this
+     *          {@code Timestamp} object is before the given argument;
+     *          and a value greater than {@code 0} if this
+     *          {@code Timestamp} object is after the given argument.
      * @since   1.4
      */
     public int compareTo(Timestamp ts) {
@@ -439,16 +439,16 @@
     }
 
     /**
-     * Compares this <code>Timestamp</code> object to the given
-     * <code>Date</code> object.
+     * Compares this {@code Timestamp} object to the given
+     * {@code Date} object.
      *
-     * @param o the <code>Date</code> to be compared to
-     *          this <code>Timestamp</code> object
-     * @return  the value <code>0</code> if this <code>Timestamp</code> object
-     *          and the given object are equal; a value less than <code>0</code>
-     *          if this  <code>Timestamp</code> object is before the given argument;
-     *          and a value greater than <code>0</code> if this
-     *          <code>Timestamp</code> object is after the given argument.
+     * @param o the {@code Date} to be compared to
+     *          this {@code Timestamp} object
+     * @return  the value {@code 0} if this {@code Timestamp} object
+     *          and the given object are equal; a value less than {@code 0}
+     *          if this  {@code Timestamp} object is before the given argument;
+     *          and a value greater than {@code 0} if this
+     *          {@code Timestamp} object is after the given argument.
      *
      * @since   1.5
      */
--- a/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachine.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachine.java	Mon Aug 17 10:12:16 2015 -0700
@@ -35,7 +35,7 @@
 /**
  * A Java virtual machine.
  *
- * <p> A <code>VirtualMachine</code> represents a Java virtual machine to which this
+ * <p> A {@code VirtualMachine} represents a Java virtual machine to which this
  * Java virtual machine has attached. The Java virtual machine to which it is
  * attached is sometimes called the <i>target virtual machine</i>, or <i>target VM</i>.
  * An application (typically a tool such as a managemet console or profiler) uses a
@@ -47,7 +47,7 @@
  * with an identifier that identifies the target virtual machine. The identifier is
  * implementation-dependent but is typically the process identifier (or pid) in
  * environments where each Java virtual machine runs in its own operating system process.
- * Alternatively, a <code>VirtualMachine</code> instance is obtained by invoking the
+ * Alternatively, a {@code VirtualMachine} instance is obtained by invoking the
  * {@link #attach(VirtualMachineDescriptor) attach} method with a {@link
  * com.sun.tools.attach.VirtualMachineDescriptor VirtualMachineDescriptor} obtained
  * from the list of virtual machine descriptors returned by the {@link #list list} method.
@@ -66,7 +66,7 @@
  * <p> In addition to loading agents a VirtualMachine provides read access to the
  * {@link java.lang.System#getProperties() system properties} in the target VM.
  * This can be useful in some environments where properties such as
- * <code>java.home</code>, <code>os.name</code>, or <code>os.arch</code> are
+ * {@code java.home}, {@code os.name}, or {@code os.arch} are
  * used to construct the path to agent that will be loaded into the target VM.
  *
  * <p> The following example demonstrates how VirtualMachine may be used:</p>
@@ -87,7 +87,7 @@
  * </pre>
  *
  * <p> In this example we attach to a Java virtual machine that is identified by
- * the process identifier <code>2177</code>. Then the JMX management agent is
+ * the process identifier {@code 2177}. Then the JMX management agent is
  * started in the target process using the supplied arguments. Finally, the
  * client detaches from the target VM. </p>
  *
@@ -111,7 +111,7 @@
      *          The abstract identifier that identifies the Java virtual machine.
      *
      * @throws  NullPointerException
-     *          If <code>provider</code> or <code>id</code> is <code>null</code>.
+     *          If {@code provider} or {@code id} is {@code null}.
      */
     protected VirtualMachine(AttachProvider provider, String id) {
         if (provider == null) {
@@ -160,10 +160,10 @@
      * attachVirtualMachine} method in turn. If a provider successfully
      * attaches then the iteration terminates, and the VirtualMachine created
      * by the provider that successfully attached is returned by this method.
-     * If the <code>attachVirtualMachine</code> method of all providers throws
+     * If the {@code attachVirtualMachine} method of all providers throws
      * {@link com.sun.tools.attach.AttachNotSupportedException AttachNotSupportedException}
-     * then this method also throws <code>AttachNotSupportedException</code>.
-     * This means that <code>AttachNotSupportedException</code> is thrown when
+     * then this method also throws {@code AttachNotSupportedException}.
+     * This means that {@code AttachNotSupportedException} is thrown when
      * the identifier provided to this method is invalid, or the identifier
      * corresponds to a Java virtual machine that does not exist, or none
      * of the providers can attach to it. This exception is also thrown if
@@ -178,19 +178,19 @@
      * @throws  SecurityException
      *          If a security manager has been installed and it denies
      *          {@link com.sun.tools.attach.AttachPermission AttachPermission}
-     *          <tt>("attachVirtualMachine")</tt>, or another permission
+     *          {@code ("attachVirtualMachine")}, or another permission
      *          required by the implementation.
      *
      * @throws  AttachNotSupportedException
-     *          If the <code>attachVirtualmachine</code> method of all installed
-     *          providers throws <code>AttachNotSupportedException</code>, or
+     *          If the {@code attachVirtualmachine} method of all installed
+     *          providers throws {@code AttachNotSupportedException}, or
      *          there aren't any providers installed.
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  NullPointerException
-     *          If <code>id</code> is <code>null</code>.
+     *          If {@code id} is {@code null}.
      */
     public static VirtualMachine attach(String id)
         throws AttachNotSupportedException, IOException
@@ -231,18 +231,18 @@
      * @throws  SecurityException
      *          If a security manager has been installed and it denies
      *          {@link com.sun.tools.attach.AttachPermission AttachPermission}
-     *          <tt>("attachVirtualMachine")</tt>, or another permission
+     *          {@code ("attachVirtualMachine")}, or another permission
      *          required by the implementation.
      *
      * @throws  AttachNotSupportedException
-     *          If the attach provider's <code>attachVirtualmachine</code>
-     *          throws <code>AttachNotSupportedException</code>.
+     *          If the attach provider's {@code attachVirtualmachine}
+     *          throws {@code AttachNotSupportedException}.
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  NullPointerException
-     *          If <code>vmd</code> is <code>null</code>.
+     *          If {@code vmd} is {@code null}.
      */
     public static VirtualMachine attach(VirtualMachineDescriptor vmd)
         throws AttachNotSupportedException, IOException
@@ -259,7 +259,7 @@
      * loadAgent} for example) is in progress when this method is invoked then
      * the behaviour is implementation dependent. In other words, it is
      * implementation specific if the operation completes or throws
-     * <tt>IOException</tt>.
+     * {@code IOException}.
      *
      * <p> If already detached from the virtual machine then invoking this
      * method has no effect. </p>
@@ -296,26 +296,26 @@
      * platform equivalent of a dynamic library. Alternatively, it may be statically linked into the VM.
      * This method causes the given agent library to be loaded into the target
      * VM (if not already loaded or if not statically linked into the VM).
-     * It then causes the target VM to invoke the <code>Agent_OnAttach</code> function
-     * or, for a statically linked agent named 'L', the <code>Agent_OnAttach_L</code> function
+     * It then causes the target VM to invoke the {@code Agent_OnAttach} function
+     * or, for a statically linked agent named 'L', the {@code Agent_OnAttach_L} function
      * as specified in the
      * <a href="../../../../../../../../technotes/guides/jvmti/index.html"> JVM Tools
-     * Interface</a> specification. Note that the <code>Agent_OnAttach[_L]</code>
+     * Interface</a> specification. Note that the {@code Agent_OnAttach[_L]}
      * function is invoked even if the agent library was loaded prior to invoking
      * this method.
      *
      * <p> The agent library provided is the name of the agent library. It is interpreted
      * in the target virtual machine in an implementation-dependent manner. Typically an
      * implementation will expand the library name into an operating system specific file
-     * name. For example, on UNIX systems, the name <tt>L</tt> might be expanded to
-     * <tt>libL.so</tt>, and located using the search path specified by the
-     * <tt>LD_LIBRARY_PATH</tt> environment variable. If the agent named 'L' is
+     * name. For example, on UNIX systems, the name {@code L} might be expanded to
+     * {@code libL.so}, and located using the search path specified by the
+     * {@code LD_LIBRARY_PATH} environment variable. If the agent named 'L' is
      * statically linked into the VM then the VM must export a function named
-     * <code>Agent_OnAttach_L</code>.</p>
+     * {@code Agent_OnAttach_L}.</p>
      *
-     * <p> If the <code>Agent_OnAttach[_L]</code> function in the agent library returns
+     * <p> If the {@code Agent_OnAttach[_L]} function in the agent library returns
      * an error then an {@link com.sun.tools.attach.AgentInitializationException} is
-     * thrown. The return value from the <code>Agent_OnAttach[_L]</code> can then be
+     * thrown. The return value from the {@code Agent_OnAttach[_L]} can then be
      * obtained by invoking the {@link
      * com.sun.tools.attach.AgentInitializationException#returnValue() returnValue}
      * method on the exception. </p>
@@ -324,8 +324,8 @@
      *          The name of the agent library.
      *
      * @param   options
-     *          The options to provide to the <code>Agent_OnAttach[_L]</code>
-     *          function (can be <code>null</code>).
+     *          The options to provide to the {@code Agent_OnAttach[_L]}
+     *          function (can be {@code null}).
      *
      * @throws  AgentLoadException
      *          If the agent library does not exist, the agent library is not
@@ -333,13 +333,13 @@
      *          loaded for another reason.
      *
      * @throws  AgentInitializationException
-     *          If the <code>Agent_OnAttach[_L]</code> function returns an error.
+     *          If the {@code Agent_OnAttach[_L]} function returns an error.
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  NullPointerException
-     *          If <code>agentLibrary</code> is <code>null</code>.
+     *          If {@code agentLibrary} is {@code null}.
      *
      * @see     com.sun.tools.attach.AgentInitializationException#returnValue()
      */
@@ -351,9 +351,9 @@
      *
      * <p> This convenience method works as if by invoking:
      *
-     * <blockquote><tt>
+     * <blockquote><code>
      * {@link #loadAgentLibrary(String, String) loadAgentLibrary}(agentLibrary,&nbsp;null);
-     * </tt></blockquote>
+     * </code></blockquote>
      *
      * @param   agentLibrary
      *          The name of the agent library.
@@ -364,13 +364,13 @@
      *          loaded for another reason.
      *
      * @throws  AgentInitializationException
-     *          If the <code>Agent_OnAttach[_L]</code> function returns an error.
+     *          If the {@code Agent_OnAttach[_L]} function returns an error.
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  NullPointerException
-     *          If <code>agentLibrary</code> is <code>null</code>.
+     *          If {@code agentLibrary} is {@code null}.
      */
     public void loadAgentLibrary(String agentLibrary)
         throws AgentLoadException, AgentInitializationException, IOException
@@ -389,18 +389,18 @@
      * linked with the VM. The parsing of the agentPath parameter into
      * a statically linked library name is done in a platform
      * specific manner in the VM. For example, in UNIX, an agentPath parameter
-     * of <code>/a/b/libL.so</code> would name a library 'L'.
+     * of {@code /a/b/libL.so} would name a library 'L'.
      *
      * See the JVM TI Specification for more details.
      *
      * This method causes the given agent library to be loaded into the target
      * VM (if not already loaded or if not statically linked into the VM).
-     * It then causes the target VM to invoke the <code>Agent_OnAttach</code>
+     * It then causes the target VM to invoke the {@code Agent_OnAttach}
      * function or, for a statically linked agent named 'L', the
-     * <code>Agent_OnAttach_L</code> function as specified in the
+     * {@code Agent_OnAttach_L} function as specified in the
      * <a href="../../../../../../../../technotes/guides/jvmti/index.html"> JVM Tools
      * Interface</a> specification.
-     * Note that the <code>Agent_OnAttach[_L]</code>
+     * Note that the {@code Agent_OnAttach[_L]}
      * function is invoked even if the agent library was loaded prior to invoking
      * this method.
      *
@@ -408,9 +408,9 @@
      * agent library. Unlike {@link #loadAgentLibrary loadAgentLibrary}, the library name
      * is not expanded in the target virtual machine. </p>
      *
-     * <p> If the <code>Agent_OnAttach[_L]</code> function in the agent library returns
+     * <p> If the {@code Agent_OnAttach[_L]} function in the agent library returns
      * an error then an {@link com.sun.tools.attach.AgentInitializationException} is
-     * thrown. The return value from the <code>Agent_OnAttach[_L]</code> can then be
+     * thrown. The return value from the {@code Agent_OnAttach[_L]} can then be
      * obtained by invoking the {@link
      * com.sun.tools.attach.AgentInitializationException#returnValue() returnValue}
      * method on the exception. </p>
@@ -419,8 +419,8 @@
      *          The full path of the agent library.
      *
      * @param   options
-     *          The options to provide to the <code>Agent_OnAttach[_L]</code>
-     *          function (can be <code>null</code>).
+     *          The options to provide to the {@code Agent_OnAttach[_L]}
+     *          function (can be {@code null}).
      *
      * @throws  AgentLoadException
      *          If the agent library does not exist, the agent library is not
@@ -428,13 +428,13 @@
      *          loaded for another reason.
      *
      * @throws  AgentInitializationException
-     *          If the <code>Agent_OnAttach[_L]</code> function returns an error.
+     *          If the {@code Agent_OnAttach[_L]} function returns an error.
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  NullPointerException
-     *          If <code>agentPath</code> is <code>null</code>.
+     *          If {@code agentPath} is {@code null}.
      *
      * @see     com.sun.tools.attach.AgentInitializationException#returnValue()
      */
@@ -446,9 +446,9 @@
      *
      * <p> This convenience method works as if by invoking:
      *
-     * <blockquote><tt>
+     * <blockquote><code>
      * {@link #loadAgentPath(String, String) loadAgentPath}(agentLibrary,&nbsp;null);
-     * </tt></blockquote>
+     * </code></blockquote>
      *
      * @param   agentPath
      *          The full path to the agent library.
@@ -459,13 +459,13 @@
      *          loaded for another reason.
      *
      * @throws  AgentInitializationException
-     *          If the <code>Agent_OnAttach[_L]</code> function returns an error.
+     *          If the {@code Agent_OnAttach[_L]} function returns an error.
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  NullPointerException
-     *          If <code>agentPath</code> is <code>null</code>.
+     *          If {@code agentPath} is {@code null}.
      */
     public void loadAgentPath(String agentPath)
        throws AgentLoadException, AgentInitializationException, IOException
@@ -482,29 +482,29 @@
      * machine where it is interpreted. The target virtual machine attempts to start
      * the agent as specified by the {@link java.lang.instrument} specification.
      * That is, the specified JAR file is added to the system class path (of the target
-     * virtual machine), and the <code>agentmain</code> method of the agent class, specified
-     * by the <code>Agent-Class</code> attribute in the JAR manifest, is invoked. This
-     * method completes when the <code>agentmain</code> method completes.
+     * virtual machine), and the {@code agentmain} method of the agent class, specified
+     * by the {@code Agent-Class} attribute in the JAR manifest, is invoked. This
+     * method completes when the {@code agentmain} method completes.
      *
      * @param   agent
      *          Path to the JAR file containing the agent.
      *
      * @param   options
-     *          The options to provide to the agent's <code>agentmain</code>
-     *          method (can be <code>null</code>).
+     *          The options to provide to the agent's {@code agentmain}
+     *          method (can be {@code null}).
      *
      * @throws  AgentLoadException
      *          If the agent does not exist, or cannot be started in the manner
      *          specified in the {@link java.lang.instrument} specification.
      *
      * @throws  AgentInitializationException
-     *          If the <code>agentmain</code> throws an exception
+     *          If the {@code agentmain} throws an exception
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  NullPointerException
-     *          If <code>agent</code> is <code>null</code>.
+     *          If {@code agent} is {@code null}.
      */
     public abstract void loadAgent(String agent, String options)
         throws AgentLoadException, AgentInitializationException, IOException;
@@ -514,9 +514,9 @@
      *
      * <p> This convenience method works as if by invoking:
      *
-     * <blockquote><tt>
+     * <blockquote><code>
      * {@link #loadAgent(String, String) loadAgent}(agent,&nbsp;null);
-     * </tt></blockquote>
+     * </code></blockquote>
      *
      * @param   agent
      *          Path to the JAR file containing the agent.
@@ -526,13 +526,13 @@
      *          specified in the {@link java.lang.instrument} specification.
      *
      * @throws  AgentInitializationException
-     *          If the <code>agentmain</code> throws an exception
+     *          If the {@code agentmain} throws an exception
      *
      * @throws  IOException
      *          If an I/O error occurs
      *
      * @throws  NullPointerException
-     *          If <code>agent</code> is <code>null</code>.
+     *          If {@code agent} is {@code null}.
      */
     public void loadAgent(String agent)
         throws AgentLoadException, AgentInitializationException, IOException
@@ -544,16 +544,16 @@
      * Returns the current system properties in the target virtual machine.
      *
      * <p> This method returns the system properties in the target virtual
-     * machine. Properties whose key or value is not a <tt>String</tt> are
+     * machine. Properties whose key or value is not a {@code String} are
      * omitted. The method is approximately equivalent to the invocation of the
      * method {@link java.lang.System#getProperties System.getProperties}
      * in the target virtual machine except that properties with a key or
-     * value that is not a <tt>String</tt> are not included.
+     * value that is not a {@code String} are not included.
      *
      * <p> This method is typically used to decide which agent to load into
      * the target virtual machine with {@link #loadAgent loadAgent}, or
      * {@link #loadAgentLibrary loadAgentLibrary}. For example, the
-     * <code>java.home</code> or <code>user.dir</code> properties might be
+     * {@code java.home} or {@code user.dir} properties might be
      * use to create the path to the agent library or JAR file.
      *
      * @return  The system properties
@@ -586,7 +586,7 @@
      * agent might create an agent property for its transport address.
      *
      * <p> This method returns the agent properties whose key and value is a
-     * <tt>String</tt>. Properties whose key or value is not a <tt>String</tt>
+     * {@code String}. Properties whose key or value is not a {@code String}
      * are omitted. If there are no agent properties maintained in the target
      * virtual machine then an empty property list is returned.
      *
@@ -686,7 +686,7 @@
      * Tests this VirtualMachine for equality with another object.
      *
      * <p> If the given object is not a VirtualMachine then this
-     * method returns <tt>false</tt>. For two VirtualMachines to
+     * method returns {@code false}. For two VirtualMachines to
      * be considered equal requires that they both reference the same
      * provider, and their {@link VirtualMachineDescriptor#id() identifiers} are equal. </p>
      *
@@ -695,7 +695,7 @@
      *
      * @param   ob   The object to which this object is to be compared
      *
-     * @return  <tt>true</tt> if, and only if, the given object is
+     * @return  {@code true} if, and only if, the given object is
      *                a VirtualMachine that is equal to this
      *                VirtualMachine.
      */
@@ -715,7 +715,7 @@
     }
 
     /**
-     * Returns the string representation of the <code>VirtualMachine</code>.
+     * Returns the string representation of the {@code VirtualMachine}.
      */
     public String toString() {
         return provider.toString() + ": " + id;
--- a/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java	Mon Aug 17 10:12:16 2015 -0700
@@ -30,7 +30,7 @@
 /**
  * Describes a Java virtual machine.
  *
- * <p> A <code>VirtualMachineDescriptor</code> is a container class used to
+ * <p> A {@code VirtualMachineDescriptor} is a container class used to
  * describe a Java virtual machine. It encapsulates an identifier that identifies
  * a target virtual machine, and a reference to the {@link
  * com.sun.tools.attach.spi.AttachProvider AttachProvider} that should be used
@@ -39,15 +39,15 @@
  * environments where each Java virtual machine runs in its own operating system
  * process. </p>
  *
- * <p> A <code>VirtualMachineDescriptor</code> also has a {@link #displayName() displayName}.
+ * <p> A {@code VirtualMachineDescriptor} also has a {@link #displayName() displayName}.
  * The display name is typically a human readable string that a tool might
  * display to a user. For example, a tool that shows a list of Java
  * virtual machines running on a system might use the display name rather
- * than the identifier. A <code>VirtualMachineDescriptor</code> may be
+ * than the identifier. A {@code VirtualMachineDescriptor} may be
  * created without a <i>display name</i>. In that case the identifier is
  * used as the <i>display name</i>.
  *
- * <p> <code>VirtualMachineDescriptor</code> instances are typically created by
+ * <p> {@code VirtualMachineDescriptor} instances are typically created by
  * invoking the {@link com.sun.tools.attach.VirtualMachine#list VirtualMachine.list()}
  * method. This returns the complete list of descriptors to describe the
  * Java virtual machines known to all installed {@link
@@ -72,7 +72,7 @@
      * @param   displayName   The display name.
      *
      * @throws  NullPointerException
-     *          If any of the arguments are <code>null</code>
+     *          If any of the arguments are {@code null}
      */
     public VirtualMachineDescriptor(AttachProvider provider, String id, String displayName) {
         if (provider == null) {
@@ -95,10 +95,10 @@
      * <p> This convenience constructor works as if by invoking the
      * three-argument constructor as follows:
      *
-     * <blockquote><tt>
+     * <blockquote><code>
      * new&nbsp;{@link #VirtualMachineDescriptor(AttachProvider, String, String)
      * VirtualMachineDescriptor}(provider, &nbsp;id, &nbsp;id);
-     * </tt></blockquote>
+     * </code></blockquote>
      *
      * <p> That is, it creates a virtual machine descriptor such that
      * the <i>display name</i> is the same as the virtual machine
@@ -108,16 +108,16 @@
      * @param   id            The virtual machine identifier.
      *
      * @throws  NullPointerException
-     *          If <tt>provider</tt> or <tt>id</tt> is <tt>null</tt>.
+     *          If {@code provider} or {@code id} is {@code null}.
      */
     public VirtualMachineDescriptor(AttachProvider provider, String id) {
         this(provider, id, id);
     }
 
     /**
-     * Return the <code>AttachProvider</code> that this descriptor references.
+     * Return the {@code AttachProvider} that this descriptor references.
      *
-     * @return The <code>AttachProvider</code> that this descriptor references.
+     * @return The {@code AttachProvider} that this descriptor references.
      */
     public AttachProvider provider() {
         return provider;
@@ -161,7 +161,7 @@
      * Tests this VirtualMachineDescriptor for equality with another object.
      *
      * <p> If the given object is not a VirtualMachineDescriptor then this
-     * method returns <tt>false</tt>. For two VirtualMachineDescriptors to
+     * method returns {@code false}. For two VirtualMachineDescriptors to
      * be considered equal requires that they both reference the same
      * provider, and their {@link #id() identifiers} are equal. </p>
      *
@@ -170,7 +170,7 @@
      *
      * @param   ob   The object to which this object is to be compared
      *
-     * @return  <tt>true</tt> if, and only if, the given object is
+     * @return  {@code true} if, and only if, the given object is
      *                a VirtualMachineDescriptor that is equal to this
      *                VirtualMachineDescriptor.
      */
@@ -190,7 +190,7 @@
     }
 
     /**
-     * Returns the string representation of the <code>VirtualMachineDescriptor</code>.
+     * Returns the string representation of the {@code VirtualMachineDescriptor}.
      */
     public String toString() {
         String s = provider.toString() + ": " + id;
--- a/src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java	Mon Aug 17 10:12:16 2015 -0700
@@ -142,7 +142,7 @@
      *   visible to the system class loader, and that jar file contains a
      *   provider-configuration file named
      *   {@code com.sun.net.httpserver.HttpServerProvider} in the resource
-     *   directory <tt>META-INF/services</tt>, then the first class name
+     *   directory {@code META-INF/services}, then the first class name
      *   specified in that file is taken.  The class is loaded and
      *   instantiated; if this process fails then an unspecified unchecked error
      *   or exception is thrown.  </p></li>
--- a/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java	Mon Aug 17 10:12:16 2015 -0700
@@ -197,8 +197,8 @@
  * in a jar file that is visible to the defining class loader of
  * the {@link com.sun.jdi.connect.Connector} type,
  * and that jar file contains a provider configuration file named
- * <tt>com.sun.jdi.connect.Connector</tt> in the resource directory
- * <tt>META-INF/services</tt>, and the provider configuration file
+ * {@code com.sun.jdi.connect.Connector} in the resource directory
+ * {@code META-INF/services}, and the provider configuration file
  * lists the full-qualified class name of the Connector
  * implementation. A Connector is a class that implements the
  * {@link com.sun.jdi.connect.Connector Connector} interface. More
@@ -209,7 +209,7 @@
  * LaunchingConnector}. The format of the provider configuration file
  * is one fully-qualified class name per line. Space and tab characters
  * surrounding each class, as well as blank lines are ignored. The
- * comment character is <tt>'#'</tt> (<tt>0x23</tt>), and on each
+ * comment character is {@code '#'} ({@code 0x23}), and on each
  * line all characters following the first comment character are
  * ignored. The file must be encoded in UTF-8.
  *
@@ -227,8 +227,8 @@
  * visible to the defining class loader for the
  * {@link com.sun.jdi.connect.spi.TransportService} type, and that jar
  * file contains a provider configuration file named
- * <tt>com.sun.jdi.connect.spi.TransportService</tt> in the resource
- * directory <tt>META-INF/services</tt>, and the provider
+ * {@code com.sun.jdi.connect.spi.TransportService} in the resource
+ * directory {@code META-INF/services}, and the provider
  * configuration file lists the full-qualified class name of the
  * TransportService implementation. A TransportService is a concrete
  * sub-class of {@link com.sun.jdi.connect.spi.TransportService
@@ -245,12 +245,12 @@
  * com.sun.jdi.connect.Transport Transport} that in turn
  * encapsulates the TransportService.
  * The AttachingConnector will be named based on the name of the
- * transport service concatenated with the string <tt>Attach</tt>.
+ * transport service concatenated with the string {@code Attach}.
  * For example, if the transport service {@link
  * com.sun.jdi.connect.spi.TransportService#name() name()} method
- * returns <tt>telepathic</tt> then the AttachingConnector will
- * be named <tt>telepathicAttach</tt>. Similiarly the ListeningConnector
- * will be named with the string <tt>Listen</tt> tagged onto the
+ * returns {@code telepathic} then the AttachingConnector will
+ * be named {@code telepathicAttach}. Similiarly the ListeningConnector
+ * will be named with the string {@code Listen} tagged onto the
  * name of the transport service. The {@link
  * com.sun.jdi.connect.Connector#description() description()} method
  * of both the AttachingConnector, and the ListeningConnector, will
@@ -259,10 +259,10 @@
  * the AttachingConnector and the ListeningConnector will have two
  * Connector {@link com.sun.jdi.connect.Connector$Argument Arguments}.
  * A {@link com.sun.jdi.connect.Connector$StringArgument StringArgument}
- * named <tt>address</tt> is the connector argument to specify the
+ * named {@code address} is the connector argument to specify the
  * address to attach too, or to listen on. A
  * {@link com.sun.jdi.connect.Connector$IntegerArgument IntegerArgument}
- * named <tt>timeout</tt> is the connector argument to specify the
+ * named {@code timeout} is the connector argument to specify the
  * timeout when attaching, or accepting. The timeout connector may be
  * ignored depending on if the transport service supports an attach
  * timeout or accept timeout.
@@ -372,13 +372,13 @@
       * A Connector can then use this method to create a virtual machine
       * mirror to represent the composite state of the target VM.
       *
-      * <p> The <tt>process</tt> argument specifies the
+      * <p> The {@code process} argument specifies the
       * {@link java.lang.Process} object for the taget VM. It may be
-      * specified as <tt>null</tt>. If the target VM is launched
+      * specified as {@code null}. If the target VM is launched
       * by a {@link com.sun.jdi.connect.LaunchingConnector
-      * LaunchingConnector} the <tt>process</tt> argument should be
+      * LaunchingConnector} the {@code process} argument should be
       * specified, otherwise calling {@link com.sun.jdi.VirtualMachine#process()}
-      * on the created virtual machine will return <tt>null</tt>.
+      * on the created virtual machine will return {@code null}.
       *
       * <p> This method exists so that Connectors may create
       * a virtual machine mirror when a connection is established
@@ -391,7 +391,7 @@
       *
       * @param  process
       *         If launched, the {@link java.lang.Process} object for
-      *         the target VM. <tt>null</tt> if not launched.
+      *         the target VM. {@code null} if not launched.
       *
       * @return new virtual machine representing the target VM.
       *
@@ -413,7 +413,7 @@
       *
       * <p> This convenience method works as if by invoking {@link
       * #createVirtualMachine(Connection, Process)} method and
-      * specifying <tt>null</tt> as the <tt>process</tt> argument.
+      * specifying {@code null} as the {@code process} argument.
       *
       * <p> This method exists so that Connectors may create
       * a virtual machine mirror when a connection is established
--- a/src/jdk.jdi/share/classes/com/sun/jdi/connect/TransportTimeoutException.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jdi/share/classes/com/sun/jdi/connect/TransportTimeoutException.java	Mon Aug 17 10:12:16 2015 -0700
@@ -58,7 +58,7 @@
 public class TransportTimeoutException extends java.io.IOException {
     private static final long serialVersionUID = 4107035242623365074L;
     /**
-     * Constructs a <tt>TransportTimeoutException</tt> with no detail
+     * Constructs a {@code TransportTimeoutException} with no detail
      * message.
      */
     public TransportTimeoutException() {
@@ -66,7 +66,7 @@
 
 
     /**
-     * Constructs a <tt>TransportTimeoutException</tt> with the
+     * Constructs a {@code TransportTimeoutException} with the
      * specified detail message.
      *
      * @param message the detail message pertaining to this exception.
--- a/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java	Mon Aug 17 10:12:16 2015 -0700
@@ -49,14 +49,14 @@
 public class ClosedConnectionException extends java.io.IOException {
     private static final long serialVersionUID = 3877032124297204774L;
     /**
-     * Constructs a <tt>ClosedConnectionException</tt> with no detail
+     * Constructs a {@code ClosedConnectionException} with no detail
      * message.
      */
     public ClosedConnectionException() {
     }
 
     /**
-     * Constructs a <tt>ClosedConnectionException</tt> with the
+     * Constructs a {@code ClosedConnectionException} with the
      * specified detail message.
      *
      * @param message the detail message pertaining to this exception.
--- a/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/TransportService.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/TransportService.java	Mon Aug 17 10:12:16 2015 -0700
@@ -105,7 +105,7 @@
          * multiple concurrent connections to a single address that
          * it is listening on.
          *
-         * @return  <tt>true</tt> if, and only if, this transport
+         * @return  {@code true} if, and only if, this transport
          *          service supports multiple connections.
          */
         public abstract boolean supportsMultipleConnections();
@@ -115,7 +115,7 @@
          * Tell whether or not this transport service supports a timeout
          * when attaching to a target VM.
          *
-         * @return      <tt>true</tt> if, and only if, this transport
+         * @return      {@code true} if, and only if, this transport
          *              service supports attaching with a timeout.
          *
          * @see #attach(String,long,long)
@@ -126,7 +126,7 @@
          * Tell whether or not this transport service supports a
          * timeout while waiting for a target VM to connect.
          *
-         * @return  <tt>true</tt> if, and only if, this transport
+         * @return  {@code true} if, and only if, this transport
          *          service supports timeout while waiting for
          *          a target VM to connect.
          *
@@ -138,7 +138,7 @@
          * Tells whether or not this transport service supports a
          * timeout when handshaking with the target VM.
          *
-         * @return  <tt>true</tt> if, and only if, this transport
+         * @return  {@code true} if, and only if, this transport
          *          service supports a timeout while handshaking
          *          with the target VM.
          *
@@ -176,15 +176,15 @@
      *
      * @param   attachTimeout
      *          If this transport service supports an attach timeout,
-     *          and if <tt>attachTimeout</tt> is positive, then it specifies
+     *          and if {@code attachTimeout} is positive, then it specifies
      *          the timeout, in milliseconds (more or less), to use
      *          when attaching to the target VM.  If the transport service
-     *          does not support an attach timeout, or if <tt>attachTimeout</tt>
+     *          does not support an attach timeout, or if {@code attachTimeout}
      *          is specified as zero then attach without any timeout.
      *
      * @param   handshakeTimeout
      *          If this transport service supports a handshake timeout,
-     *          and if <tt>handshakeTimeout</tt> is positive, then it
+     *          and if {@code handshakeTimeout} is positive, then it
      *          specifies the timeout, in milliseconds (more or less), to
      *          use when handshaking with the target VM. The exact
      *          usage of the timeout are specific to the transport service.
@@ -195,7 +195,7 @@
      *          use the handshakeTimeout as a timeout for the duration of the
      *          handshake exchange.
      *          If the transport service does not support a handshake
-     *          timeout, or if <tt>handshakeTimeout</tt> is specified
+     *          timeout, or if {@code handshakeTimeout} is specified
      *          as zero then the handshake does not timeout if there
      *          isn't a response from the target VM.
      *
@@ -221,9 +221,9 @@
     /**
      * A <i>listen key</i>.
      *
-     * <p> A <tt>TransportService</tt> may listen on multiple, yet
+     * <p> A {@code TransportService} may listen on multiple, yet
      * different, addresses at the same time. To uniquely identify
-     * each <tt>listener</tt> a listen key is created each time that
+     * each {@code listener} a listen key is created each time that
      * {@link #startListening startListening} is called. The listen
      * key is used in calls to the {@link #accept accept} method
      * to accept inbound connections to that listener. A listen
@@ -250,7 +250,7 @@
      *
      * @param   address
      *          The address to start listening for connections,
-     *          or <tt>null</tt> to listen on an address chosen
+     *          or {@code null} to listen on an address chosen
      *          by the transport service.
      *
      * @return  a listen key to be used in subsequent calls to be
@@ -268,8 +268,8 @@
     /**
      * Listens on an address chosen by the transport service.
      *
-     * <p> This convenience method works as if by invoking {@link
-     * #startListening(String) startListening(<tt>null</tt>)}. </p>
+     * <p> This convenience method works as if by invoking
+     * {@link #startListening(String) startListening(null)}.
      *
      * @return  a listen key to be used in subsequent calls to be
      *          {@link #accept accept} or {@link #stopListening
@@ -327,16 +327,16 @@
      *
      * @param   acceptTimeout
      *          if this transport service supports an accept timeout, and
-     *          if <tt>acceptTimeout</tt> is positive then block for up to
-     *          <tt>acceptTimeout</tt> milliseconds, more or less, while waiting
+     *          if {@code acceptTimeout} is positive then block for up to
+     *          {@code acceptTimeout} milliseconds, more or less, while waiting
      *          for the target VM to connect.
      *          If the transport service does not support an accept timeout
-     *          or if <tt>acceptTimeout</tt> is zero then block indefinitely
+     *          or if {@code acceptTimeout} is zero then block indefinitely
      *          for a target VM to connect.
      *
      * @param   handshakeTimeout
      *          If this transport service supports a handshake timeout,
-     *          and if <tt>handshakeTimeout</tt> is positive, then it
+     *          and if {@code handshakeTimeout} is positive, then it
      *          specifies the timeout, in milliseconds (more or less), to
      *          use when handshaking with the target VM. The exact
      *          usage of the timeout is specific to the transport service.
@@ -347,7 +347,7 @@
      *          use the timeout as a timeout for the duration of the
      *          handshake exchange.
      *          If the transport service does not support a handshake
-     *          timeout, of if <tt>handshakeTimeout</tt> is specified
+     *          timeout, of if {@code handshakeTimeout} is specified
      *          as zero then the handshake does not timeout if there
      *          isn't a response from the target VM.
      *
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/HostIdentifier.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/HostIdentifier.java	Mon Aug 17 10:12:16 2015 -0700
@@ -42,26 +42,26 @@
  * to the string <em>local://localhost</em>. The components of the
  * HostIdentifier are:
  * <ul>
- *   <li><p><tt>protocol</tt> - The communications protocol. If omitted,
+ *   <li><p>{@code protocol} - The communications protocol. If omitted,
  *          and a hostname is not specified, then default local protocol,
  *          <em>local:</em>, is assumed. If the protocol is omitted and a
  *          hostname is specified then the default remote protocol,
  *          <em>rmi:</em> is assumed.
  *       </p></li>
- *   <li><p><tt>hostname</tt> - The hostname. If omitted, then
+ *   <li><p>{@code hostname} - The hostname. If omitted, then
  *          <em>localhost</em> is assumed. If the protocol is also omitted,
  *          then default local protocol <em>local:</em> is also assumed.
  *          If the hostname is not omitted but the protocol is omitted,
  *          then the default remote protocol, <em>rmi:</em> is assumed.
  *       </p></li>
- *   <li><p><tt>port</tt> - The port for the communications protocol.
- *          Treatment of the <tt>port</tt> parameter is implementation
+ *   <li><p>{@code port} - The port for the communications protocol.
+ *          Treatment of the {@code port} parameter is implementation
  *          (protocol) specific. It is unused by the default local protocol,
  *          <em>local:</em>. For the default remote protocol, <em>rmi:</em>,
- *          <tt>port</tt> indicates the port number of the <em>rmiregistry</em>
+ *          {@code port} indicates the port number of the <em>rmiregistry</em>
  *          on the target host and defaults to port 1099.
  *       </p></li>
- *   <li><p><tt>servername</tt> - The treatment of the Path, Query, and
+ *   <li><p>{@code servername} - The treatment of the Path, Query, and
  *          Fragment components of the HostIdentifier are implementation
  *          (protocol) dependent. These components are ignored by the
  *          default local protocol, <em>local:</em>. For the default remote
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredHost.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredHost.java	Mon Aug 17 10:12:16 2015 -0700
@@ -94,7 +94,7 @@
 
     /**
      * Factory method to construct MonitoredHost instances to manage
-     * connections to the host indicated by <tt>hostIdString</tt>
+     * connections to the host indicated by {@code hostIdString}
      *
      * @param hostIdString a String representation of a {@link HostIdentifier}
      * @return MonitoredHost - the MonitoredHost instance for communicating
@@ -113,7 +113,7 @@
 
     /**
      * Factory method to construct a MonitoredHost instance to manage the
-     * connection to the Java Virtual Machine indicated by <tt>vmid</tt>.
+     * connection to the Java Virtual Machine indicated by {@code vmid}.
      *
      * This method provide a convenient short cut for attaching to a specific
      * instrumented Java Virtual Machine. The information in the VmIdentifier
@@ -142,7 +142,7 @@
 
     /**
      * Factory method to construct a MonitoredHost instance to manage the
-     * connection to the host indicated by <tt>hostId</tt>.
+     * connection to the host indicated by {@code hostId}.
      *
      * @param hostId the identifier for the target host.
      * @return MonitoredHost - The MonitoredHost object needed to attach to
@@ -269,7 +269,7 @@
      * Get the last exception encountered while polling this MonitoredHost.
      *
      * @return Exception - the last exception occurred while polling this
-     *                     MonitoredHost, or <tt>null</tt> if no exception
+     *                     MonitoredHost, or {@code null} if no exception
      *                     has occurred or the exception has been cleared,
      */
     public Exception getLastException() {
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredHostService.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredHostService.java	Mon Aug 17 10:12:16 2015 -0700
@@ -29,7 +29,7 @@
 
     /**
      * Construct a MonitoredHost instance to manage the
-     * connection to the host indicated by <tt>hostId</tt>.
+     * connection to the host indicated by {@code hostId}.
      *
      * @param hostId the identifier for the target host.
      * @return MonitoredHost - The MonitoredHost object needed to attach to
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredVm.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredVm.java	Mon Aug 17 10:12:16 2015 -0700
@@ -55,12 +55,12 @@
      * instrumentation exported by this Java Virtual Machine. If an
      * instrumentation object with the given name exists, a Monitor interface
      * to that object will be return. Otherwise, the method returns
-     * <tt>null</tt>.
+     * {@code null}.
      *
      * @param name the name of the Instrumentation object to find.
      * @return Monitor - the {@link Monitor} object that can be used to
      *                   monitor the named instrumentation object, or
-     *                   <tt>null</tt> if the named object doesn't exist.
+     *                   {@code null} if the named object doesn't exist.
      * @throws MonitorException Thrown if an error occurs while communicating
      *                          with the target Java Virtual Machine.
      */
@@ -99,7 +99,7 @@
     /* ---- Methods to support polled MonitoredVm Implementations ---- */
 
     /**
-     * Set the polling interval to <code>interval</code> milliseconds.
+     * Set the polling interval to {@code interval} milliseconds.
      *
      * Polling based monitoring implementations need to refresh the
      * instrumentation data on a periodic basis. This interface allows
@@ -136,10 +136,10 @@
      * Get the last exception encountered while polling this MonitoredVm.
      *
      * Returns the last exception observed by the implementation dependent
-     * polling task or <tt>null</tt> if no such error has occurred.
+     * polling task or {@code null} if no such error has occurred.
      *
      * @return Exception - the last exception that occurred during polling
-     *                     or <tt>null</tt> if no error condition exists.
+     *                     or {@code null} if no error condition exists.
      * @see #isErrored
      * @see #setLastException
      */
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/AbstractPerfDataBuffer.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/AbstractPerfDataBuffer.java	Mon Aug 17 10:12:16 2015 -0700
@@ -87,12 +87,12 @@
      * instrumentation exported by this Java Virtual Machine. If an
      * instrumentation object with the given name exists, a Monitor interface
      * to that object will be return. Otherwise, the method returns
-     * <tt>null</tt>.
+     * {@code null}.
      *
      * @param name the name of the Instrumentation object to find.
      * @return Monitor - the {@link Monitor} object that can be used to
      *                   monitor the named instrumentation object, or
-     *                   <tt>null</tt> if the named object doesn't exist.
+     *                   {@code null} if the named object doesn't exist.
      * @throws MonitorException Thrown if an error occurs while communicating
      *                          with the target Java Virtual Machine.
      */
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/PerfByteArrayMonitor.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/PerfByteArrayMonitor.java	Mon Aug 17 10:12:16 2015 -0700
@@ -98,7 +98,7 @@
      * Get the current value of an element of the byte array instrument.
      *
      * @return byte - a copy of the current value of the element at index
-     *                <tt>index</tt> of the byte array instrument.
+     *                {@code index} of the byte array instrument.
      */
     public byte byteAt(int index) {
         bb.position(index);
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/PerfDataBufferImpl.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/PerfDataBufferImpl.java	Mon Aug 17 10:12:16 2015 -0700
@@ -222,7 +222,7 @@
      * instrumentation exported by this Java Virtual Machine. If an
      * instrumentation object with the given name exists, a Monitor interface
      * to that object will be return. Otherwise, the method returns
-     * <tt>null</tt>. The method will map requests for instrumention objects
+     * {@code null}. The method will map requests for instrumention objects
      * using old names to their current names, if applicable.
      *
      *
@@ -230,7 +230,7 @@
      * @param name the name of the Instrumentation object to find.
      * @return Monitor - the {@link Monitor} object that can be used to
      *                   monitor the named instrumentation object, or
-     *                   <tt>null</tt> if the named object doesn't exist.
+     *                   {@code null} if the named object doesn't exist.
      * @throws MonitorException Thrown if an error occurs while communicating
      *                          with the target Java Virtual Machine.
      */
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/MonitoredHostProvider.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/MonitoredHostProvider.java	Mon Aug 17 10:12:16 2015 -0700
@@ -66,7 +66,7 @@
      * {@inheritDoc}.
      * <p>
      * Note - the <em>file:</em> protocol silently ignores the
-     * <tt>interval</tt> parameter.
+     * {@code interval} parameter.
      */
     public MonitoredVm getMonitoredVm(VmIdentifier vmid, int interval)
                        throws MonitorException {
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java	Mon Aug 17 10:12:16 2015 -0700
@@ -84,7 +84,7 @@
      * for the JVM identified by the given local Vm Identifier.
      * <p>
      * This method looks for the most up to date backing store file for
-     * the given <tt>lvmid</tt>. It will search all the user specific
+     * the given {@code lvmid}. It will search all the user specific
      * directories in the temporary directory for the host operating
      * system, which may be influenced by platform specific environment
      * variables.
--- a/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/package.html	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/package.html	Mon Aug 17 10:12:16 2015 -0700
@@ -40,7 +40,7 @@
 implementation. It utilizes a name shared memory mechanism, identified
 by a backing store file in the file system name space. The location of
 the backing store file is platform specific and is dictated primarily by
-the JVM implementation. However, the <tt>java.io.tmpdir</em> system
+the JVM implementation. However, the <code>java.io.tmpdir</code> system
 property generally contains the location of the files, with the exception
 of the Solaris implementation, as the SDK and HotSpot JVM use different
 locations for their temporary file storage. The HotSpot JVM uses the
--- a/src/jdk.management/share/classes/com/sun/management/GarbageCollectorMXBean.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.management/share/classes/com/sun/management/GarbageCollectorMXBean.java	Mon Aug 17 10:12:16 2015 -0700
@@ -44,16 +44,16 @@
     /**
      * Returns the GC information about the most recent GC.
      * This method returns a {@link GcInfo}.
-     * If no GC information is available, <tt>null</tt> is returned.
+     * If no GC information is available, {@code null} is returned.
      * The collector-specific attributes, if any, can be obtained
      * via the {@link CompositeData CompositeData} interface.
      * <p>
      * <b>MBeanServer access:</b>
-     * The mapped type of <tt>GcInfo</tt> is <tt>CompositeData</tt>
+     * The mapped type of {@code GcInfo} is {@code CompositeData}
      * with attributes specified in {@link GcInfo#from GcInfo}.
      *
-     * @return a <tt>GcInfo</tt> object representing
-     * the most GC information; or <tt>null</tt> if no GC
+     * @return a {@code GcInfo} object representing
+     * the most GC information; or {@code null} if no GC
      * information available.
      */
     public GcInfo getLastGcInfo();
--- a/src/jdk.management/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.management/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java	Mon Aug 17 10:12:16 2015 -0700
@@ -33,10 +33,10 @@
  * <p>The diagnostic MBean is registered to the platform MBeanServer
  * as are other platform MBeans.
  *
- * <p>The <tt>ObjectName</tt> for uniquely identifying the diagnostic
+ * <p>The {@code ObjectName} for uniquely identifying the diagnostic
  * MXBean within an MBeanServer is:
  * <blockquote>
- *    <tt>com.sun.management:type=HotSpotDiagnostic</tt>
+ *    {@code com.sun.management:type=HotSpotDiagnostic}
  * </blockquote>
 .*
  * It can be obtained by calling the
@@ -50,22 +50,22 @@
 @jdk.Exported
 public interface HotSpotDiagnosticMXBean extends PlatformManagedObject {
     /**
-     * Dumps the heap to the <tt>outputFile</tt> file in the same
+     * Dumps the heap to the {@code outputFile} file in the same
      * format as the hprof heap dump.
      * <p>
      * If this method is called remotely from another process,
-     * the heap dump output is written to a file named <tt>outputFile</tt>
+     * the heap dump output is written to a file named {@code outputFile}
      * on the machine where the target VM is running.  If outputFile is
      * a relative path, it is relative to the working directory where
      * the target VM was started.
      *
      * @param  outputFile the system-dependent filename
-     * @param  live if <tt>true</tt> dump only <i>live</i> objects
+     * @param  live if {@code true} dump only <i>live</i> objects
      *         i.e. objects that are reachable from others
-     * @throws IOException if the <tt>outputFile</tt>
+     * @throws IOException if the {@code outputFile}
      *                     cannot be created, opened, or written to.
      * @throws UnsupportedOperationException if this operation is not supported.
-     * @throws NullPointerException if <tt>outputFile</tt> is <tt>null</tt>.
+     * @throws NullPointerException if {@code outputFile} is {@code null}.
      * @throws SecurityException
      *         If a security manager exists and its {@link
      *         java.lang.SecurityManager#checkWrite(java.lang.String)}
@@ -75,21 +75,21 @@
     public void dumpHeap(String outputFile, boolean live) throws java.io.IOException;
 
     /**
-     * Returns a list of <tt>VMOption</tt> objects for all diagnostic options.
+     * Returns a list of {@code VMOption} objects for all diagnostic options.
      * A diagnostic option is a {@link VMOption#isWriteable writeable}
      * VM option that can be set dynamically mainly for troubleshooting
      * and diagnosis.
      *
-     * @return a list of <tt>VMOption</tt> objects for all diagnostic options.
+     * @return a list of {@code VMOption} objects for all diagnostic options.
      */
     public java.util.List<VMOption> getDiagnosticOptions();
 
     /**
-     * Returns a <tt>VMOption</tt> object for a VM option of the given
+     * Returns a {@code VMOption} object for a VM option of the given
      * name.
      *
-     * @return a <tt>VMOption</tt> object for a VM option of the given name.
-     * @throws NullPointerException if name is <tt>null</tt>.
+     * @return a {@code VMOption} object for a VM option of the given name.
+     * @throws NullPointerException if name is {@code null}.
      * @throws IllegalArgumentException if a VM option of the given name
      *                                     does not exist.
      */
@@ -97,10 +97,10 @@
 
     /**
      * Sets a VM option of the given name to the specified value.
-     * The new value will be reflected in a new <tt>VMOption</tt>
+     * The new value will be reflected in a new {@code VMOption}
      * object returned by the {@link #getVMOption} method or
      * the {@link #getDiagnosticOptions} method.  This method does
-     * not change the value of this <tt>VMOption</tt> object.
+     * not change the value of this {@code VMOption} object.
      *
      * @param name Name of a VM option
      * @param value New value of the VM option to be set
@@ -109,7 +109,7 @@
      *                                     does not exist.
      * @throws IllegalArgumentException if the new value is invalid.
      * @throws IllegalArgumentException if the VM option is not writable.
-     * @throws NullPointerException if name or value is <tt>null</tt>.
+     * @throws NullPointerException if name or value is {@code null}.
      *
      * @throws  java.lang.SecurityException
      *     if a security manager exists and the caller does not have
--- a/src/jdk.management/share/classes/com/sun/management/OperatingSystemMXBean.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.management/share/classes/com/sun/management/OperatingSystemMXBean.java	Mon Aug 17 10:12:16 2015 -0700
@@ -30,7 +30,7 @@
  * on which the Java virtual machine is running.
  *
  * <p>
- * The <tt>OperatingSystemMXBean</tt> object returned by
+ * The {@code OperatingSystemMXBean} object returned by
  * {@link java.lang.management.ManagementFactory#getOperatingSystemMXBean()}
  * is an instance of the implementation class of this interface
  * or {@link UnixOperatingSystemMXBean} interface depending on
@@ -46,11 +46,11 @@
     /**
      * Returns the amount of virtual memory that is guaranteed to
      * be available to the running process in bytes,
-     * or <tt>-1</tt> if this operation is not supported.
+     * or {@code -1} if this operation is not supported.
      *
      * @return the amount of virtual memory that is guaranteed to
      * be available to the running process in bytes,
-     * or <tt>-1</tt> if this operation is not supported.
+     * or {@code -1} if this operation is not supported.
      */
     public long getCommittedVirtualMemorySize();
 
@@ -72,11 +72,11 @@
      * Returns the CPU time used by the process on which the Java
      * virtual machine is running in nanoseconds.  The returned value
      * is of nanoseconds precision but not necessarily nanoseconds
-     * accuracy.  This method returns <tt>-1</tt> if the
+     * accuracy.  This method returns {@code -1} if the
      * the platform does not support this operation.
      *
      * @return the CPU time used by the process in nanoseconds,
-     * or <tt>-1</tt> if this operation is not supported.
+     * or {@code -1} if this operation is not supported.
      */
     public long getProcessCpuTime();
 
--- a/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsContext.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsContext.java	Mon Aug 17 10:12:16 2015 -0700
@@ -125,7 +125,7 @@
      * Returns a clone of a DNS context.  The context's modifiable
      * private state is independent of the original's (so closing one
      * context, for example, won't close the other).  The two contexts
-     * share <tt>environment</tt>, but it's copy-on-write so there's
+     * share {@code environment}, but it's copy-on-write so there's
      * no conflict.
      */
     private DnsContext(DnsContext ctx) {
--- a/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsName.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsName.java	Mon Aug 17 10:12:16 2015 -0700
@@ -34,7 +34,7 @@
 
 
 /**
- * <tt>DnsName</tt> implements compound names for DNS as specified by
+ * {@code DnsName} implements compound names for DNS as specified by
  * RFCs 1034 and 1035, and as updated and clarified by RFCs 1123 and 2181.
  *
  * <p> The labels in a domain name correspond to JNDI atomic names.
@@ -57,45 +57,45 @@
  * <p> DNS does not specify an encoding (such as UTF-8) to use for
  * octets with non-ASCII values.  As of this writing there is some
  * work going on in this area, but it is not yet finalized.
- * <tt>DnsName</tt> currently converts any non-ASCII octets into
+ * {@code DnsName} currently converts any non-ASCII octets into
  * characters using ISO-LATIN-1 encoding, in effect taking the
  * value of each octet and storing it directly into the low-order byte
  * of a Java character and <i>vice versa</i>.  As a consequence, no
  * character in a DNS name will ever have a non-zero high-order byte.
  * When the work on internationalizing domain names has stabilized
- * (see for example <i>draft-ietf-idn-idna-10.txt</i>), <tt>DnsName</tt>
+ * (see for example <i>draft-ietf-idn-idna-10.txt</i>), {@code DnsName}
  * may be updated to conform to that work.
  *
- * <p> Backslash (<tt>\</tt>) is used as the escape character in the
+ * <p> Backslash ({@code \}) is used as the escape character in the
  * textual representation of a domain name.  The character sequence
- * `<tt>\DDD</tt>', where <tt>DDD</tt> is a 3-digit decimal number
+ * `{@code \DDD}', where {@code DDD} is a 3-digit decimal number
  * (with leading zeros if needed), represents the octet whose value
- * is <tt>DDD</tt>.  The character sequence `<tt>\C</tt>', where
- * <tt>C</tt> is a character other than <tt>'0'</tt> through
- * <tt>'9'</tt>, represents the octet whose value is that of
- * <tt>C</tt> (again using ISO-LATIN-1 encoding); this is particularly
- * useful for escaping <tt>'.'</tt> or backslash itself.  Backslash is
+ * is {@code DDD}.  The character sequence `{@code \C}', where
+ * {@code C} is a character other than {@code '0'} through
+ * {@code '9'}, represents the octet whose value is that of
+ * {@code C} (again using ISO-LATIN-1 encoding); this is particularly
+ * useful for escaping {@code '.'} or backslash itself.  Backslash is
  * otherwise not allowed in a domain name.  Note that escape characters
  * are interpreted when a name is parsed.  So, for example, the character
- * sequences `<tt>S</tt>', `<tt>\S</tt>', and `<tt>\083</tt>' each
- * represent the same one-octet name.  The <tt>toString()</tt> method
+ * sequences `{@code S}', `{@code \S}', and `{@code \083}' each
+ * represent the same one-octet name.  The {@code toString()} method
  * does not generally insert escape sequences except where necessary.
- * If, however, the <tt>DnsName</tt> was constructed using unneeded
- * escapes, those escapes may appear in the <tt>toString</tt> result.
+ * If, however, the {@code DnsName} was constructed using unneeded
+ * escapes, those escapes may appear in the {@code toString} result.
  *
  * <p> Atomic names passed as parameters to methods of
- * <tt>DnsName</tt>, and those returned by them, are unescaped.  So,
- * for example, <tt>(new&nbsp;DnsName()).add("a.b")</tt> creates an
- * object representing the one-label domain name <tt>a\.b</tt>, and
- * calling <tt>get(0)</tt> on this object returns <tt>"a.b"</tt>.
+ * {@code DnsName}, and those returned by them, are unescaped.  So,
+ * for example, <code>(new&nbsp;DnsName()).add("a.b")</code> creates an
+ * object representing the one-label domain name {@code a\.b}, and
+ * calling {@code get(0)} on this object returns {@code "a.b"}.
  *
  * <p> While DNS names are case-preserving, comparisons between them
  * are case-insensitive.  When comparing names containing non-ASCII
- * octets, <tt>DnsName</tt> uses case-insensitive comparison
+ * octets, {@code DnsName} uses case-insensitive comparison
  * between pairs of ASCII values, and exact binary comparison
  * otherwise.
 
- * <p> A <tt>DnsName</tt> instance is not synchronized against
+ * <p> A {@code DnsName} instance is not synchronized against
  * concurrent access by multiple threads.
  *
  * @author Scott Seligman
@@ -119,16 +119,16 @@
 
 
     /**
-     * Constructs a <tt>DnsName</tt> representing the empty domain name.
+     * Constructs a {@code DnsName} representing the empty domain name.
      */
     public DnsName() {
     }
 
     /**
-     * Constructs a <tt>DnsName</tt> representing a given domain name.
+     * Constructs a {@code DnsName} representing a given domain name.
      *
      * @param   name    the domain name to parse
-     * @throws InvalidNameException if <tt>name</tt> does not conform
+     * @throws InvalidNameException if {@code name} does not conform
      *          to DNS syntax.
      */
     public DnsName(String name) throws InvalidNameException {
--- a/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/NameNode.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/NameNode.java	Mon Aug 17 10:12:16 2015 -0700
@@ -38,7 +38,7 @@
  * <p> A node may be addressed from another by giving a DnsName
  * consisting of the sequence of labels from one node to the other.
  *
- * <p> Each node also has an <tt>isZoneCut</tt> flag, used to indicate
+ * <p> Each node also has an {@code isZoneCut} flag, used to indicate
  * if the node is a zone cut.  A zone cut is a node with an NS record
  * that is contained in one zone, but that actually belongs to a child zone.
  *
@@ -115,7 +115,7 @@
     /*
      * Returns the node at the end of a path, or null if the
      * node does not exist.
-     * The path is specified by the labels of <tt>name</tt>, beginning
+     * The path is specified by the labels of {@code name}, beginning
      * at index idx.
      */
     NameNode get(DnsName name, int idx) {
@@ -129,7 +129,7 @@
     /*
      * Returns the node at the end of a path, creating it and any
      * intermediate nodes as needed.
-     * The path is specified by the labels of <tt>name</tt>, beginning
+     * The path is specified by the labels of {@code name}, beginning
      * at index idx.
      */
     NameNode add(DnsName name, int idx) {
--- a/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/Resolver.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/Resolver.java	Mon Aug 17 10:12:16 2015 -0700
@@ -160,7 +160,7 @@
     }
 
     /*
-     * Finds the name servers of a zone.  <tt>zone</tt> is a fully-qualified
+     * Finds the name servers of a zone.  {@code zone} is a fully-qualified
      * domain name at the top of a zone.
      * If recursion is true, recursion is requested on the query.
      */
--- a/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/ZoneNode.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.naming.dns/share/classes/com/sun/jndi/dns/ZoneNode.java	Mon Aug 17 10:12:16 2015 -0700
@@ -154,7 +154,7 @@
     }
 
     /*
-     * Set this zone's data to expire in <tt>secsToExpiration</tt> seconds.
+     * Set this zone's data to expire in {@code secsToExpiration} seconds.
      */
     private void setExpiration(long secsToExpiration) {
         expiration = new Date(System.currentTimeMillis() +
--- a/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpChannel.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpChannel.java	Mon Aug 17 10:12:16 2015 -0700
@@ -538,11 +538,11 @@
      * {@link java.io.IOException} to be thrown.
      *
      * <P> If this channel is already connected then this method will not block
-     * and will immediately return <tt>true</tt>.  If this channel is in
-     * non-blocking mode then this method will return <tt>false</tt> if the
+     * and will immediately return {@code true}.  If this channel is in
+     * non-blocking mode then this method will return {@code false} if the
      * connection process is not yet complete.  If this channel is in blocking
      * mode then this method will block until the connection either completes
-     * or fails, and will always either return <tt>true</tt> or throw a checked
+     * or fails, and will always either return {@code true} or throw a checked
      * exception describing the failure.
      *
      * <P> This method may be invoked at any time. If a {@link #send send} or {@link #receive receive}
@@ -711,9 +711,9 @@
      * Returns an operation set identifying this channel's supported operations.
      *
      * <P> SCTP channels support connecting, reading, and writing, so this
-     * method returns <tt>(</tt>{@link SelectionKey#OP_CONNECT}
-     * <tt>|</tt>&nbsp;{@link SelectionKey#OP_READ} <tt>|</tt>&nbsp;{@link
-     * SelectionKey#OP_WRITE}<tt>)</tt>.  </p>
+     * method returns {@code (}{@link SelectionKey#OP_CONNECT}
+     * {@code |}&nbsp;{@link SelectionKey#OP_READ} {@code |}&nbsp;{@link
+     * SelectionKey#OP_WRITE}{@code )}.
      *
      * @return  The valid-operation set
      */
--- a/test/ProblemList.txt	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/ProblemList.txt	Mon Aug 17 10:12:16 2015 -0700
@@ -353,6 +353,10 @@
 # 8062512
 java/util/spi/ResourceBundleControlProvider/UserDefaultControlTest.java generic-all
 
+# 8029453
+java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java linux-all
+
+
 ############################################################################
 
 # jdk_instrument
--- a/test/java/lang/ProcessHandle/InfoTest.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/java/lang/ProcessHandle/InfoTest.java	Mon Aug 17 10:12:16 2015 -0700
@@ -136,7 +136,17 @@
                         }
                     }
 
-
+                    if (Platform.isAix()) {
+                        // Unfortunately, on AIX the usr/sys times reported through
+                        // /proc/<pid>/psinfo which are used by ProcessHandle.Info
+                        // are running slow compared to the corresponding times reported
+                        // by the times()/getrusage() system calls which are used by
+                        // OperatingSystemMXBean.getProcessCpuTime() and returned by
+                        // the JavaChild for the "cputime" command.
+                        // This is because /proc/<pid>/status is only updated once a second.
+                        // So we better wait a little bit to get plausible values here.
+                        Thread.sleep(1000);
+                    }
                     ProcessHandle.Info info = p1.info();
                     System.out.printf(" info: %s%n", info);
 
@@ -160,19 +170,10 @@
                     if (info.arguments().isPresent()) {
                         String[] args = info.arguments().get();
 
-                        if (Platform.isLinux() || Platform.isOSX()) {
-                            int offset = args.length - extraArgs.length;
-                            for (int i = 0; i < extraArgs.length; i++) {
-                                Assert.assertEquals(args[offset + i], extraArgs[i],
-                                        "Actual argument mismatch, index: " + i);
-                            }
-                        } else if (Platform.isSolaris()) {
-                            Assert.assertEquals(args.length, 1,
-                                    "Expected argument list length: 1");
-                            Assert.assertNotNull(args[0],
-                                    "Expected an argument");
-                        } else {
-                            System.out.printf("No argument test for OS: %s%n", Platform.getOsName());
+                        int offset = args.length - extraArgs.length;
+                        for (int i = 0; i < extraArgs.length; i++) {
+                            Assert.assertEquals(args[offset + i], extraArgs[i],
+                                                "Actual argument mismatch, index: " + i);
                         }
 
                         // Now check that the first argument is not the same as the executed command
@@ -183,6 +184,46 @@
                         }
                     }
 
+                    if (command.isPresent() && info.arguments().isPresent()) {
+                        // If both, 'command' and 'arguments' are present,
+                        // 'commandLine' is just the concatenation of the two.
+                        Assert.assertTrue(info.commandLine().isPresent(),
+                                          "commandLine() must be available");
+
+                        String javaExe = System.getProperty("test.jdk") +
+                                File.separator + "bin" + File.separator + "java";
+                        String expected = Platform.isWindows() ? javaExe + ".exe" : javaExe;
+                        Path expectedPath = Paths.get(expected);
+                        String commandLine = info.commandLine().get();
+                        String commandLineCmd = commandLine.split(" ")[0];
+                        Path commandLineCmdPath = Paths.get(commandLineCmd);
+                        Assert.assertTrue(Files.isSameFile(commandLineCmdPath, expectedPath),
+                                          "commandLine() should start with: " + expectedPath +
+                                          " but starts with " + commandLineCmdPath);
+
+                        List<String> allArgs = p1.getArgs();
+                        for (int i = 0; i < allArgs.size(); i++) {
+                            Assert.assertTrue(commandLine.contains(allArgs.get(i)),
+                                              "commandLine() must contain argument: " + allArgs.get(i));
+                        }
+                    } else if (info.commandLine().isPresent()) {
+                        // If we only have the commandLine() we can only do some basic checks...
+                        String commandLine = info.commandLine().get();
+                        String javaExe = "java" + (Platform.isWindows() ? ".exe": "");
+                        int pos = commandLine.indexOf(javaExe);
+                        Assert.assertTrue(pos > 0, "commandLine() should at least contain 'java'");
+
+                        pos += javaExe.length() + 1; // +1 for the space after the command
+                        List<String> allArgs = p1.getArgs();
+                        // First argument is the command - skip it here as we've already checked that.
+                        for (int i = 1; (i < allArgs.size()) &&
+                                        (pos + allArgs.get(i).length() < commandLine.length()); i++) {
+                            Assert.assertTrue(commandLine.contains(allArgs.get(i)),
+                                              "commandLine() must contain argument: " + allArgs.get(i));
+                            pos += allArgs.get(i).length() + 1;
+                        }
+                    }
+
                     if (info.totalCpuDuration().isPresent()) {
                         Duration totalCPU = info.totalCpuDuration().get();
                         Duration epsilon = Duration.ofMillis(200L);
@@ -269,10 +310,27 @@
     public static void test4() {
         Duration myCputime1 = ProcessUtil.MXBeanCpuTime();
 
+        if (Platform.isAix()) {
+            // Unfortunately, on AIX the usr/sys times reported through
+            // /proc/<pid>/psinfo which are used by ProcessHandle.Info
+            // are running slow compared to the corresponding times reported
+            // by the times()/getrusage() system calls which are used by
+            // OperatingSystemMXBean.getProcessCpuTime() and returned by
+            // the JavaChild for the "cputime" command.
+            // So we better wait a little bit to get plausible values here.
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException ex) {}
+        }
         Optional<Duration> dur1 = ProcessHandle.current().info().totalCpuDuration();
 
         Duration myCputime2 = ProcessUtil.MXBeanCpuTime();
 
+        if (Platform.isAix()) {
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException ex) {}
+        }
         Optional<Duration> dur2 = ProcessHandle.current().info().totalCpuDuration();
 
         if (dur1.isPresent() && dur2.isPresent()) {
--- a/test/java/lang/ProcessHandle/JavaChild.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/java/lang/ProcessHandle/JavaChild.java	Mon Aug 17 10:12:16 2015 -0700
@@ -68,8 +68,9 @@
      * {@link #forEachOutputLine} can be used to process output from the child
      * @param delegate the process to delegate and send commands to and get responses from
      */
-    private JavaChild(Process delegate) {
-        this.delegate = delegate;
+    private JavaChild(ProcessBuilder pb) throws IOException {
+        allArgs = pb.command();
+        delegate = pb.start();
         // Initialize PrintWriter with autoflush (on println)
         inputWriter = new PrintWriter(delegate.getOutputStream(), true);
         outputReader = new BufferedReader(new InputStreamReader(delegate.getInputStream()));
@@ -119,6 +120,10 @@
         return "delegate: " + delegate.toString();
     }
 
+    public List<String> getArgs() {
+        return allArgs;
+    }
+
     public CompletableFuture<JavaChild> onJavaChildExit() {
         return onExit().thenApply(ph -> this);
     }
@@ -187,7 +192,7 @@
         }
         ProcessBuilder pb = build(stringArgs);
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
-        return new JavaChild(pb.start());
+        return new JavaChild(pb);
     }
 
     /**
@@ -236,6 +241,9 @@
                     "-classpath", absolutifyPath(classpath),
                     "JavaChild");
 
+    // Will hold the complete list of arguments which was given to Processbuilder.command()
+    private List<String> allArgs;
+
     private static String absolutifyPath(String path) {
         StringBuilder sb = new StringBuilder();
         for (String file : path.split(File.pathSeparator)) {
--- a/test/java/lang/ProcessHandle/OnExitTest.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/java/lang/ProcessHandle/OnExitTest.java	Mon Aug 17 10:12:16 2015 -0700
@@ -126,6 +126,11 @@
             } while (processes.size() < expected &&
                     Instant.now().isBefore(endTimeout));
 
+            if (processes.size() < expected) {
+                printf("WARNING: not all children have been started. Can't complete test.%n");
+                printf("         You can try to increase the timeout or%n");
+                printf("         you can try to use a faster VM (i.e. not a debug version).%n");
+            }
             children = getAllChildren(procHandle);
 
             ConcurrentHashMap<ProcessHandle, CompletableFuture<ProcessHandle>> completions =
--- a/test/java/lang/invoke/ExplicitCastArgumentsTest.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/java/lang/invoke/ExplicitCastArgumentsTest.java	Mon Aug 17 10:12:16 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, 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
@@ -21,79 +21,583 @@
  * questions.
  */
 
-package java.lang.invoke;
-
+import com.oracle.testlibrary.jsr292.Helper;
+import java.io.File;
+import java.io.Serializable;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
+import java.lang.invoke.WrongMethodTypeException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
 import sun.invoke.util.Wrapper;
 
-/* @test
+/*
+ * @test
+ * @bug 8060483 8066746
+ * @key randomness
+ * @library /lib/testlibrary /lib/testlibrary/jsr292
  * @summary unit tests for MethodHandles.explicitCastArguments()
- *
- * @run main/bootclasspath java.lang.invoke.ExplicitCastArgumentsTest
+ * @run main ExplicitCastArgumentsTest
+ */
+
+/**
+ * Tests for MethodHandles.explicitCastArguments().
  */
 public class ExplicitCastArgumentsTest {
-    private static final boolean VERBOSE = Boolean.getBoolean("verbose");
+
+    private static final boolean VERBOSE = Helper.IS_VERBOSE;
     private static final Class<?> THIS_CLASS = ExplicitCastArgumentsTest.class;
+    private static final Random RNG = Helper.RNG;
+    private static final Map<Wrapper, Object> RANDOM_VALUES = new HashMap<>(9);
+
+    static {
+        RANDOM_VALUES.put(Wrapper.BOOLEAN, RNG.nextBoolean());
+        RANDOM_VALUES.put(Wrapper.BYTE, (byte) RNG.nextInt());
+        RANDOM_VALUES.put(Wrapper.SHORT, (short) RNG.nextInt());
+        RANDOM_VALUES.put(Wrapper.CHAR, (char) RNG.nextInt());
+        RANDOM_VALUES.put(Wrapper.INT, RNG.nextInt());
+        RANDOM_VALUES.put(Wrapper.LONG, RNG.nextLong());
+        RANDOM_VALUES.put(Wrapper.FLOAT, RNG.nextFloat());
+        RANDOM_VALUES.put(Wrapper.DOUBLE, RNG.nextDouble());
+        RANDOM_VALUES.put(Wrapper.OBJECT, new Object());
+    }
 
     public static void main(String[] args) throws Throwable {
         testVarargsCollector();
+        testNullRef2Prim();
         testRef2Prim();
+        testPrim2Ref();
+        testPrim2Prim();
+        testNonBCPRef2NonBCPRef();
+        testBCPRef2BCPRef();
+        testNonBCPRef2BCPRef();
+        testReturnAny2Void();
+        testReturnVoid2Any();
+        testMultipleArgs();
         System.out.println("TEST PASSED");
     }
 
-    public static String[] f(String... args) { return args; }
+    /**
+     * Dummy method used in {@link #testVarargsCollector} test to form a method
+     * handle.
+     *
+     * @param args - any args
+     * @return - returns args
+     */
+    public static String[] f(String... args) {
+        return args;
+    }
 
+    /**
+     * Tests that MHs.explicitCastArguments does incorrect type checks for
+     * VarargsCollector. Bug 8066746.
+     *
+     * @throws java.lang.Throwable
+     */
     public static void testVarargsCollector() throws Throwable {
         MethodType mt = MethodType.methodType(String[].class, String[].class);
-        MethodHandle mh = MethodHandles.publicLookup().findStatic(THIS_CLASS, "f", mt);
-        mh = MethodHandles.explicitCastArguments(mh, MethodType.methodType(Object.class, Object.class));
-        mh.invokeWithArguments((Object)(new String[] {"str1", "str2"}));
+        MethodHandle mh = MethodHandles.publicLookup()
+                .findStatic(THIS_CLASS, "f", mt);
+        mh = MethodHandles.explicitCastArguments(mh,
+                MethodType.methodType(Object.class, Object.class));
+        mh.invokeWithArguments((Object) (new String[]{"str1", "str2"}));
+    }
+
+    /**
+     * Tests that null wrapper reference is successfully converted to primitive
+     * types. Converted result should be zero for a primitive. Bug 8060483.
+     */
+    public static void testNullRef2Prim() {
+        for (Wrapper from : Wrapper.values()) {
+            for (Wrapper to : Wrapper.values()) {
+                if (from == Wrapper.VOID || to == Wrapper.VOID) {
+                    continue;
+                }
+                // MHs.eCA javadoc:
+                //    If T0 is a reference and T1 a primitive, and if the reference
+                //    is null at runtime, a zero value is introduced.
+                for (TestConversionMode mode : TestConversionMode.values()) {
+                    testConversion(mode, from.wrapperType(),
+                            to.primitiveType(), null, to.zero(), false, null);
+                }
+            }
+        }
     }
 
-    public static void testRef2Prim() throws Throwable {
+    /**
+     * Tests that non-null wrapper reference is successfully converted to
+     * primitive types.
+     */
+    public static void testRef2Prim() {
+        for (Wrapper from : Wrapper.values()) {
+            for (Wrapper to : Wrapper.values()) {
+                if (from == Wrapper.VOID || to == Wrapper.VOID
+                        || to == Wrapper.OBJECT) {
+                    continue;
+                }
+                Object value = RANDOM_VALUES.get(from);
+                for (TestConversionMode mode : TestConversionMode.values()) {
+                    if (from != Wrapper.OBJECT) {
+                        Object convValue = to.wrap(value);
+                        testConversion(mode, from.wrapperType(),
+                                to.primitiveType(), value, convValue, false, null);
+                    } else {
+                        testConversion(mode, from.wrapperType(),
+                                to.primitiveType(), value, null,
+                                true, ClassCastException.class);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Tests that primitive is successfully converted to wrapper reference
+     * types, to the Number type (if possible) and to the Object type.
+     */
+    public static void testPrim2Ref() {
         for (Wrapper from : Wrapper.values()) {
             for (Wrapper to : Wrapper.values()) {
-                if (from == Wrapper.VOID || to == Wrapper.VOID) continue;
-                testRef2Prim(from, to);
+                if (from == Wrapper.VOID || from == Wrapper.OBJECT
+                        || to == Wrapper.VOID || to == Wrapper.OBJECT) {
+                    continue;
+                }
+                Object value = RANDOM_VALUES.get(from);
+                for (TestConversionMode mode : TestConversionMode.values()) {
+                    if (from == to) {
+                        testConversion(mode, from.primitiveType(),
+                                to.wrapperType(), value, value, false, null);
+                    } else {
+                        testConversion(mode, from.primitiveType(),
+                                to.wrapperType(), value, null, true, ClassCastException.class);
+                    }
+                    if (from != Wrapper.BOOLEAN && from != Wrapper.CHAR) {
+                        testConversion(mode, from.primitiveType(),
+                                Number.class, value, value, false, null);
+                    } else {
+                        testConversion(mode, from.primitiveType(),
+                                Number.class, value, null,
+                                true, ClassCastException.class);
+                    }
+                    testConversion(mode, from.primitiveType(),
+                            Object.class, value, value, false, null);
+                }
+            }
+        }
+    }
+
+    /**
+     * Tests that primitive is successfully converted to other primitive type.
+     */
+    public static void testPrim2Prim() {
+        for (Wrapper from : Wrapper.values()) {
+            for (Wrapper to : Wrapper.values()) {
+                if (from == Wrapper.VOID || to == Wrapper.VOID
+                        || from == Wrapper.OBJECT || to == Wrapper.OBJECT) {
+                    continue;
+                }
+                Object value = RANDOM_VALUES.get(from);
+                Object convValue = to.wrap(value);
+                for (TestConversionMode mode : TestConversionMode.values()) {
+                    testConversion(mode, from.primitiveType(),
+                            to.primitiveType(), value, convValue, false, null);
+                }
             }
         }
     }
 
-    public static void testRef2Prim(Wrapper from, Wrapper to) throws Throwable {
-        // MHs.eCA javadoc:
-        //    If T0 is a reference and T1 a primitive, and if the reference is null at runtime, a zero value is introduced.
-        test(from.wrapperType(), to.primitiveType(), null, false);
+    /**
+     * Dummy interface for {@link #testNonBCPRef2Ref} test.
+     */
+    public static interface TestInterface {}
+
+    /**
+     * Dummy class for {@link #testNonBCPRef2Ref} test.
+     */
+    public static class TestSuperClass implements TestInterface {}
+
+    /**
+     * Dummy class for {@link #testNonBCPRef2Ref} test.
+     */
+    public static class TestSubClass1 extends TestSuperClass {}
+
+    /**
+     * Dummy class for {@link #testNonBCPRef2Ref} test.
+     */
+    public static class TestSubClass2 extends TestSuperClass {}
+
+    /**
+     * Tests non-bootclasspath reference to reference conversions.
+     *
+     * @throws java.lang.Throwable
+     */
+    public static void testNonBCPRef2NonBCPRef() throws Throwable {
+        Class testInterface = TestInterface.class;
+        Class testSuperClass = TestSuperClass.class;
+        Class testSubClass1 = TestSubClass1.class;
+        Class testSubClass2 = TestSubClass2.class;
+        Object testSuperObj = new TestSuperClass();
+        Object testObj01 = new TestSubClass1();
+        Object testObj02 = new TestSubClass2();
+        Class[] parents = {testInterface, testSuperClass};
+        Class[] children = {testSubClass1, testSubClass2};
+        Object[] childInst = {testObj01, testObj02};
+        for (TestConversionMode mode : TestConversionMode.values()) {
+            for (Class parent : parents) {
+                for (int j = 0; j < children.length; j++) {
+                    // Child type to parent type non-null conversion, shoud succeed
+                    testConversion(mode, children[j], parent, childInst[j], childInst[j], false, null);
+                    // Child type to parent type null conversion, shoud succeed
+                    testConversion(mode, children[j], parent, null, null, false, null);
+                    // Parent type to child type non-null conversion with parent
+                    // type instance, should fail
+                    testConversion(mode, parent, children[j], testSuperObj, null, true, ClassCastException.class);
+                    // Parent type to child type non-null conversion with child
+                    // type instance, should succeed
+                    testConversion(mode, parent, children[j], childInst[j], childInst[j], false, null);
+                    // Parent type to child type null conversion, should succeed
+                    testConversion(mode, parent, children[j], null, null, false, null);
+                }
+                // Parent type to child type non-null conversion with sibling
+                // type instance, should fail
+                testConversion(mode, parent, testSubClass1, testObj02, null, true, ClassCastException.class);
+            }
+            // Sibling type non-null conversion, should fail
+            testConversion(mode, testSubClass1,
+                    testSubClass2, testObj01, null, true,
+                    ClassCastException.class);
+            // Sibling type null conversion, should succeed
+            testConversion(mode, testSubClass1,
+                    testSubClass2, null, null, false, null);
+        }
+    }
+
+    /**
+     * Dummy interface for {@link #testNonBCPRef2BCPRef} test.
+     */
+    public static interface TestSerializableInterface extends Serializable {}
+
+    /**
+     * Dummy class for {@link #testNonBCPRef2BCPRef} test.
+     */
+    public static class TestSerializableClass
+            implements TestSerializableInterface {}
+
+    /**
+     * Dummy class for {@link #testNonBCPRef2BCPRef} test.
+     */
+    public static class TestFileChildClass extends File
+            implements TestSerializableInterface {
+        public TestFileChildClass(String pathname) {
+            super(pathname);
+        }
+    }
+
+    /**
+     * Tests non-bootclasspath reference to bootclasspath reference conversions
+     * and vice-versa.
+     *
+     * @throws java.lang.Throwable
+     */
+    public static void testNonBCPRef2BCPRef() throws Throwable {
+        Class bcpInterface = Serializable.class;
+        Class bcpSuperClass = File.class;
+        Class nonBcpInterface = TestSerializableInterface.class;
+        Class nonBcpSuperSiblingClass = TestSerializableClass.class;
+        Class nonBcpSubClass = TestFileChildClass.class;
+        Object bcpSuperObj = new File(".");
+        Object testSuperSiblingObj = new TestSerializableClass();
+        Object testSubObj = new TestFileChildClass(".");
+        Class[] parents = {bcpInterface, bcpSuperClass};
+        for (TestConversionMode mode : TestConversionMode.values()) {
+            for (Class parent : parents) {
+                // Child type to parent type non-null conversion, shoud succeed
+                testConversion(mode, nonBcpSubClass, parent, testSubObj,
+                        testSubObj, false, null);
+                // Child type to parent type null conversion, shoud succeed
+                testConversion(mode, nonBcpSubClass, parent, null, null,
+                        false, null);
+                // Parent type to child type non-null conversion with parent
+                // type instance, should fail
+                testConversion(mode, parent, nonBcpSubClass, bcpSuperObj, null,
+                        true, ClassCastException.class);
+                // Parent type to child type non-null conversion with child
+                // type instance, should succeed
+                testConversion(mode, parent, nonBcpSubClass, testSubObj,
+                        testSubObj, false, null);
+                // Parent type to child type null conversion, should succeed
+                testConversion(mode, parent, nonBcpSubClass, null, null,
+                        false, null);
+            }
+            // Parent type to child type non-null conversion with
+            // super sibling type instance, should fail
+            testConversion(mode, bcpInterface, nonBcpSubClass,
+                    testSuperSiblingObj, null, true, ClassCastException.class);
+            Class[] siblings = {nonBcpSubClass, bcpSuperClass};
+            for (Class sibling : siblings) {
+                // Non-bcp class to bcp/non-bcp sibling class non-null
+                // conversion with nonBcpSuperSiblingClass instance, should fail
+                testConversion(mode, nonBcpSuperSiblingClass, sibling,
+                        testSuperSiblingObj, null, true, ClassCastException.class);
+                // Non-bcp class to bcp/non-bcp sibling class null conversion,
+                // should succeed
+                testConversion(mode, nonBcpSuperSiblingClass, sibling,
+                        null, null, false, null);
+                // Non-bcp interface to bcp/non-bcp sibling class non-null
+                // conversion with nonBcpSubClass instance, should succeed
+                testConversion(mode, nonBcpInterface, sibling, testSubObj,
+                        testSubObj, false, null);
+                // Non-bcp interface to bcp/non-bcp sibling class
+                // null conversion, should succeed
+                testConversion(mode, nonBcpInterface, sibling, null, null,
+                        false, null);
+                // Non-bcp interface to bcp/non-bcp sibling class non-null
+                // conversion with nonBcpSuperSiblingClass instance, should fail
+                testConversion(mode, nonBcpInterface, sibling,
+                        testSuperSiblingObj, testSubObj,
+                        true, ClassCastException.class);
+            }
+        }
     }
 
-    public static void test(Class<?> from, Class<?> to, Object param, boolean failureExpected) throws Throwable {
-        if (VERBOSE) System.out.printf("%-10s => %-10s: %5s: ", from.getSimpleName(), to.getSimpleName(), param);
+    /**
+     * Tests bootclasspath reference to reference conversions.
+     */
+    public static void testBCPRef2BCPRef() {
+        Class bcpInterface = CharSequence.class;
+        Class bcpSubClass1 = String.class;
+        Class bcpSubClass2 = StringBuffer.class;
+        Object testObj01 = new String("test");
+        Object testObj02 = new StringBuffer("test");
+        Class[] children = {bcpSubClass1, bcpSubClass2};
+        Object[] childInst = {testObj01, testObj02};
+        for (TestConversionMode mode : TestConversionMode.values()) {
+            for (int i = 0; i < children.length; i++) {
+                // Child type to parent type non-null conversion, shoud succeed
+                testConversion(mode, children[i], bcpInterface, childInst[i],
+                        childInst[i], false, null);
+                // Child type to parent type null conversion, shoud succeed
+                testConversion(mode, children[i], bcpInterface, null,
+                        null, false, null);
+                // Parent type to child type non-null conversion with child
+                // type instance, should succeed
+                testConversion(mode, bcpInterface,
+                        children[i], childInst[i], childInst[i], false, null);
+                // Parent type to child type null conversion, should succeed
+                testConversion(mode, bcpInterface,
+                        children[i], null, null, false, null);
+            }
+            // Sibling type non-null conversion, should fail
+            testConversion(mode, bcpSubClass1,
+                    bcpSubClass2, testObj01, null, true,
+                    ClassCastException.class);
+            // Sibling type null conversion, should succeed
+            testConversion(mode, bcpSubClass1,
+                    bcpSubClass2, null, null, false, null);
+            // Parent type to child type non-null conversion with sibling
+            // type instance, should fail
+            testConversion(mode, bcpInterface, bcpSubClass1, testObj02,
+                    null, true, ClassCastException.class);
+        }
+    }
+
+    /**
+     * Dummy method used in {@link #testReturnAny2Void} and
+     * {@link #testReturnVoid2Any} tests to form a method handle.
+     */
+    public static void retVoid() {}
+
+    /**
+     * Tests that non-null any return is successfully converted to non-type
+     * void.
+     */
+    public static void testReturnAny2Void() {
+        for (Wrapper from : Wrapper.values()) {
+            testConversion(TestConversionMode.RETURN_VALUE, from.wrapperType(),
+                    void.class, RANDOM_VALUES.get(from),
+                    null, false, null);
+            testConversion(TestConversionMode.RETURN_VALUE, from.primitiveType(),
+                    void.class, RANDOM_VALUES.get(from),
+                    null, false, null);
+        }
+    }
+
+    /**
+     * Tests that void return is successfully converted to primitive and
+     * reference. Result should be zero for primitives and null for references.
+     */
+    public static void testReturnVoid2Any() {
+        for (Wrapper to : Wrapper.values()) {
+            testConversion(TestConversionMode.RETURN_VALUE, void.class,
+                    to.primitiveType(), null,
+                    to.zero(), false, null);
+            testConversion(TestConversionMode.RETURN_VALUE, void.class,
+                    to.wrapperType(), null,
+                    null, false, null);
+        }
+    }
+
+    private static void checkForWrongMethodTypeException(MethodHandle mh, MethodType mt) {
+        try {
+            MethodHandles.explicitCastArguments(mh, mt);
+            throw new AssertionError("Expected WrongMethodTypeException is not thrown");
+        } catch (WrongMethodTypeException wmte) {
+            if (VERBOSE) {
+                System.out.printf("Expected exception %s: %s\n",
+                        wmte.getClass(), wmte.getMessage());
+            }
+        }
+    }
 
-        MethodHandle original = MethodHandles.identity(from);
-        MethodType newType = original.type().changeReturnType(to);
+    /**
+     * Tests that MHs.eCA method works correctly with MHs with multiple arguments.
+     * @throws Throwable
+     */
+    public static void testMultipleArgs() throws Throwable {
+        int arity = 1 + RNG.nextInt(Helper.MAX_ARITY / 2 - 2);
+        int arityMinus = RNG.nextInt(arity);
+        int arityPlus = arity + RNG.nextInt(Helper.MAX_ARITY / 2 - arity) + 1;
+        MethodType mType = Helper.randomMethodTypeGenerator(arity);
+        MethodType mTypeNew = Helper.randomMethodTypeGenerator(arity);
+        MethodType mTypeNewMinus = Helper.randomMethodTypeGenerator(arityMinus);
+        MethodType mTypeNewPlus = Helper.randomMethodTypeGenerator(arityPlus);
+        Class<?> rType = mType.returnType();
+        MethodHandle original;
+        if (rType.equals(void.class)) {
+            MethodType mt = MethodType.methodType(void.class);
+            original = MethodHandles.publicLookup()
+                    .findStatic(THIS_CLASS, "retVoid", mt);
+        } else {
+            Object rValue = Helper.castToWrapper(1, rType);
+            original = MethodHandles.constant(rType, rValue);
+        }
+        original = Helper.addTrailingArgs(original, arity, mType.parameterList());
+        MethodHandle target = MethodHandles
+                    .explicitCastArguments(original, mTypeNew);
+        Object[] parList = Helper.randomArgs(mTypeNew.parameterList());
+        for (int i = 0; i < parList.length; i++) {
+            if (parList[i] instanceof String) {
+                parList[i] = null; //getting rid of Stings produced by randomArgs
+            }
+        }
+        target.invokeWithArguments(parList);
+        checkForWrongMethodTypeException(original, mTypeNewMinus);
+        checkForWrongMethodTypeException(original, mTypeNewPlus);
+    }
+
+    /**
+     * Enumeration of test conversion modes.
+     */
+    public enum TestConversionMode {
+        RETURN_VALUE,
+        ARGUMENT;
+    }
 
+    /**
+     * Tests type and value conversion. Comparing with the given expected result.
+     *
+     * @param mode - test conversion mode. See {@link #TestConversionMode}.
+     * @param from - source type.
+     * @param to - destination type.
+     * @param param - value to be converted.
+     * @param expectedResult - expected value after conversion.
+     * @param failureExpected - true if conversion failure expected.
+     * @param expectedException - expected exception class if
+     * {@code failureExpected} is true.
+     */
+    public static void testConversion(TestConversionMode mode,
+            Class<?> from, Class<?> to, Object param,
+            Object expectedResult, boolean failureExpected,
+            Class<? extends Throwable> expectedException) {
+        if (VERBOSE) {
+            System.out.printf("Testing return value conversion: "
+                    + "%-10s => %-10s: %5s: ", from.getSimpleName(),
+                    to.getSimpleName(), param);
+        }
+        MethodHandle original = null;
+        MethodType newType = null;
+        switch (mode) {
+            case RETURN_VALUE:
+                if (from.equals(void.class)) {
+                    MethodType mt = MethodType.methodType(void.class);
+                    try {
+                        original = MethodHandles.publicLookup()
+                                .findStatic(THIS_CLASS, "retVoid", mt);
+                    } catch (NoSuchMethodException | IllegalAccessException ex) {
+                        throw new Error("Unexpected issue", ex);
+                    }
+                } else {
+                    original = MethodHandles.constant(from, param);
+                }
+                newType = original.type().changeReturnType(to);
+                break;
+            case ARGUMENT:
+                if (from.equals(void.class) || to.equals(void.class)) {
+                    throw new Error("Test issue: argument conversion does not"
+                            + " work with non-type void");
+                }
+                original = MethodHandles.identity(to);
+                newType = original.type().changeParameterType(0, from);
+                break;
+            default:
+                String msg = String.format("Test issue: unknown test"
+                        + " convertion mode %s.", mode.name());
+                throw new Error(msg);
+        }
         try {
-            MethodHandle target = MethodHandles.explicitCastArguments(original, newType);
-            Object result = target.invokeWithArguments(param);
-
+            MethodHandle target = MethodHandles
+                    .explicitCastArguments(original, newType);
+            Object result;
+            switch (mode) {
+                case RETURN_VALUE:
+                    result = target.invokeWithArguments();
+                    break;
+                case ARGUMENT:
+                    result = target.invokeWithArguments(param);
+                    break;
+                default:
+                    String msg = String.format("Test issue: unknown test"
+                            + " convertion mode %s.", mode.name());
+                    throw new Error(msg);
+            }
+            if (!failureExpected
+                    && (expectedResult != null && !expectedResult.equals(result)
+                    || expectedResult == null && result != null)) {
+                String msg = String.format("Conversion result %s is not equal"
+                        + " to the expected result %10s",
+                        result, expectedResult);
+                throw new AssertionError(msg);
+            }
             if (VERBOSE) {
                 String resultStr;
                 if (result != null) {
-                    resultStr = String.format("%10s (%10s)", "'"+result+"'", result.getClass().getSimpleName());
+                    resultStr = String.format("Converted value and type are"
+                            + " %10s (%10s)", "'" + result + "'",
+                            result.getClass().getSimpleName());
                 } else {
-                    resultStr = String.format("%10s", result);
+                    resultStr = String.format("Converted value is %10s", result);
                 }
                 System.out.println(resultStr);
             }
-
             if (failureExpected) {
-                String msg = String.format("No exception thrown: %s => %s; parameter: %s", from, to, param);
+                String msg = String.format("No exception thrown while testing"
+                        + " return value conversion: %10s => %10s;"
+                        + " parameter: %10s",
+                        from, to, param);
                 throw new AssertionError(msg);
             }
         } catch (AssertionError e) {
             throw e; // report test failure
         } catch (Throwable e) {
-            if (VERBOSE) System.out.printf("%s: %s\n", e.getClass(), e.getMessage());
-            if (!failureExpected) {
-                String msg = String.format("Unexpected exception was thrown: %s => %s; parameter: %s", from, to, param);
+            if (VERBOSE) {
+                System.out.printf("%s: %s\n", e.getClass(), e.getMessage());
+            }
+            if (!failureExpected || !e.getClass().equals(expectedException)) {
+                String msg = String.format("Unexpected exception was thrown"
+                        + " while testing return value conversion:"
+                        + " %s => %s; parameter: %s", from, to, param);
                 throw new AssertionError(msg, e);
             }
         }
--- a/test/java/lang/invoke/LFCaching/TestMethods.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/java/lang/invoke/LFCaching/TestMethods.java	Mon Aug 17 10:12:16 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, 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
@@ -207,7 +207,7 @@
                     return MethodHandles.filterReturnValue(target, filter);
                 }
             },
-    INSERT_ARGUMENTS("insertArguments") {
+    INSERT_ARGUMENTS("insertArguments", Helper.MAX_ARITY - 3) {
                 @Override
                 public Map<String, Object> getTestCaseData() {
                     Map<String, Object> data = new HashMap<>();
@@ -610,26 +610,7 @@
      * @return MethodType generated randomly.
      */
     private static MethodType randomMethodTypeGenerator(int arity) {
-        final Class<?>[] CLASSES = {
-            Object.class,
-            int.class,
-            boolean.class,
-            byte.class,
-            short.class,
-            char.class,
-            long.class,
-            float.class,
-            double.class
-        };
-        if (arity > Helper.MAX_ARITY) {
-            throw new IllegalArgumentException(
-                    String.format("Arity should not exceed %d!", Helper.MAX_ARITY));
-        }
-        List<Class<?>> list = Helper.randomClasses(CLASSES, arity);
-        list = Helper.getParams(list, false, arity);
-        int i = Helper.RNG.nextInt(CLASSES.length + 1);
-        Class<?> rtype = i == CLASSES.length ? void.class : CLASSES[i];
-        return MethodType.methodType(rtype, list);
+        return Helper.randomMethodTypeGenerator(arity);
     }
 
     /**
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/util/Formatter/NullArg.java	Mon Aug 17 10:12:16 2015 -0700
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8039390
+ * @summary Basic test for null argument
+ */
+
+import java.util.Formatter;
+import java.util.Locale;
+
+public class NullArg {
+
+    public static void main(String [] args) {
+        char[] cs = new char[] {
+            'b', 'B', 'h', 'H', 's', 'S', 'c', 'C', 'd', 'o', 'x', 'X',
+            'e', 'E', 'f', 'g', 'G', 'a', 'A', 't', 'T',
+        };
+        char[] tcs = new char[] {
+            'H', 'I', 'k', 'l', 'l', 'M', 'S', 'L', 'N', 'p', 'z', 'Z', 's',
+            'Q', 'B', 'b', 'h', 'A', 'a', 'C', 'Y', 'y', 'j', 'm', 'd', 'e',
+            'R', 'T', 'r', 'D', 'F', 'c'
+        };
+        for (char c : cs) {
+            String expected = (c == 'b' || c == 'B') ? "false" : "null";
+            if (Character.isUpperCase(c)) {
+                expected = expected.toUpperCase(Locale.ROOT);
+            }
+            if (c == 't' || c == 'T') {
+                for (char ct : tcs) {
+                    if (!String.format("%" + c + ct, null).equals(expected)) {
+                        throw new RuntimeException("%t" + ct + "null check failed.");
+                    }
+                }
+            } else {
+                if (!String.format("%" + c , null).equals(expected)) {
+                    throw new RuntimeException("%" + c + "null check failed.");
+                }
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/crypto/SealedObject/TestSealedObjectNull.java	Mon Aug 17 10:12:16 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.io.IOException;
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NullCipher;
+import javax.crypto.SealedObject;
+
+/*
+ * @test
+ * @bug 8048624
+ * @summary This test instantiate a NullCipher, seal and unseal a String
+ *  object using the SealedObject with the initialized NullCipher,
+ *  and then compare the String content.
+ */
+public class TestSealedObjectNull {
+
+    private static final String SEAL_STR = "Any String!@#$%^";
+
+    public static void main(String[] args) throws IOException,
+            IllegalBlockSizeException, ClassNotFoundException,
+            BadPaddingException {
+        Cipher nullCipher = new NullCipher();
+
+        // Seal
+        SealedObject so = new SealedObject(SEAL_STR, nullCipher);
+
+        // Unseal and compare
+        if (!(SEAL_STR.equals(so.getObject(nullCipher)))) {
+            throw new RuntimeException("Unseal and compare failed.");
+        }
+
+        System.out.println("Test passed.");
+    }
+}
--- a/test/lib/testlibrary/jsr292/com/oracle/testlibrary/jsr292/Helper.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/lib/testlibrary/jsr292/com/oracle/testlibrary/jsr292/Helper.java	Mon Aug 17 10:12:16 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, 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
@@ -315,4 +315,33 @@
         }
         return null;
     }
+
+    /**
+     * Routine used to obtain a randomly generated method type.
+     *
+     * @param arity Arity of returned method type.
+     * @return MethodType generated randomly.
+     */
+    public static MethodType randomMethodTypeGenerator(int arity) {
+        final Class<?>[] CLASSES = {
+            Object.class,
+            int.class,
+            boolean.class,
+            byte.class,
+            short.class,
+            char.class,
+            long.class,
+            float.class,
+            double.class
+        };
+        if (arity > MAX_ARITY) {
+            throw new IllegalArgumentException(
+                    String.format("Arity should not exceed %d!", MAX_ARITY));
+        }
+        List<Class<?>> list = randomClasses(CLASSES, arity);
+        list = getParams(list, false, arity);
+        int i = RNG.nextInt(CLASSES.length + 1);
+        Class<?> rtype = i == CLASSES.length ? void.class : CLASSES[i];
+        return MethodType.methodType(rtype, list);
+    }
 }
--- a/test/sun/util/calendar/zi/tzdata/VERSION	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/sun/util/calendar/zi/tzdata/VERSION	Mon Aug 17 10:12:16 2015 -0700
@@ -21,4 +21,4 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
-tzdata2015e
+tzdata2015f
--- a/test/sun/util/calendar/zi/tzdata/africa	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/sun/util/calendar/zi/tzdata/africa	Mon Aug 17 10:12:16 2015 -0700
@@ -561,7 +561,7 @@
 
 # From Alex Krivenyshev (2008-07-11):
 # Seems that English language article "The revival of daylight saving
-# time: Energy conservation?"-# No. 16578 (07/11/2008) was originally
+# time: Energy conservation?"- No. 16578 (07/11/2008) was originally
 # published on Monday, June 30, 2008...
 #
 # I guess that article in French "Le gouvernement avance l'introduction
@@ -693,7 +693,7 @@
 # Here is a link to official document from Royaume du Maroc Premier Ministre,
 # Ministère de la Modernisation des Secteurs Publics
 #
-# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 june 1967)
+# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 June 1967)
 # concerning the amendment of the legal time, the Ministry of Modernization of
 # Public Sectors announced that the official time in the Kingdom will be
 # advanced 60 minutes from Sunday 31 May 2009 at midnight.
--- a/test/sun/util/calendar/zi/tzdata/asia	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/sun/util/calendar/zi/tzdata/asia	Mon Aug 17 10:12:16 2015 -0700
@@ -29,7 +29,7 @@
 # tz@iana.org for general use in the future).  For more, please see
 # the file CONTRIBUTING in the tz distribution.
 
-# From Paul Eggert (2014-10-31):
+# From Paul Eggert (2015-08-08):
 #
 # Unless otherwise specified, the source for data through 1990 is:
 # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
@@ -66,7 +66,7 @@
 #	2:00 EET  EEST	Eastern European Time
 #	2:00 IST  IDT	Israel
 #	3:00 AST  ADT	Arabia*
-#	3:30 IRST IRDT	Iran
+#	3:30 IRST IRDT	Iran*
 #	4:00 GST	Gulf*
 #	5:30 IST	India
 #	7:00 ICT	Indochina, most times and locations*
@@ -75,10 +75,11 @@
 #	8:00 CST	China
 #	8:00 IDT	Indochina, 1943-45, 1947-55, 1960-75 (some locations)*
 #	8:00 JWST	Western Standard Time (Japan, 1896/1937)*
+#	8:30 KST  KDT	Korea when at +0830*
 #	9:00 JCST	Central Standard Time (Japan, 1896/1937)
 #	9:00 WIT	east Indonesia (Waktu Indonesia Timur)
 #	9:00 JST  JDT	Japan
-#	9:00 KST  KDT	Korea
+#	9:00 KST  KDT	Korea when at +09
 #	9:30 ACST	Australian Central Standard Time
 #
 # See the 'europe' file for Russia and Turkey in Asia.
@@ -1050,7 +1051,7 @@
 #
 # From Roozbeh Pournader (2007-11-05):
 # This is quoted from Official Gazette of the Islamic Republic of
-# Iran, Volume 63, Number 18242, dated Tuesday 1386/6/24
+# Iran, Volume 63, No. 18242, dated Tuesday 1386/6/24
 # [2007-10-16]. I am doing the best translation I can:...
 # The official time of the country will be moved forward for one hour
 # on the 24 hours of the first day of the month of Farvardin and will
@@ -1580,7 +1581,7 @@
 # - Qyzylorda switched from +5:00 to +6:00 on 1992-01-19 02:00.
 # - Oral switched from +5:00 to +4:00 in spring 1989.
 
-# From Kazakhstan Embassy's News Bulletin #11
+# From Kazakhstan Embassy's News Bulletin No. 11
 # <http://www.kazsociety.org.uk/news/2005/03/30.htm> (2005-03-21):
 # The Government of Kazakhstan passed a resolution March 15 abolishing
 # daylight saving time citing lack of economic benefits and health
@@ -1734,6 +1735,17 @@
 #
 # For Pyongyang we have no information; guess no changes since World War II.
 
+# From Steffen Thorsen (2015-08-07):
+# According to many news sources, North Korea is going to change to
+# the 8:30 time zone on August 15, one example:
+# http://www.bbc.com/news/world-asia-33815049
+#
+# From Paul Eggert (2015-08-07):
+# No transition time is specified; assume 00:00.
+# There is no common English-language abbreviation for this time zone.
+# Use %z rather than invent one.  We can't assume %z works everywhere yet,
+# so for now substitute its output manually.
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Seoul	8:27:52	-	LMT	1908 Apr  1
 			8:30	-	KST	1912 Jan  1
@@ -1746,7 +1758,8 @@
 			8:30	-	KST	1912 Jan  1
 			9:00	-	JCST	1937 Oct  1
 			9:00	-	JST	1945 Aug 24
-			9:00	-	KST
+			9:00	-	KST	2015 Aug 15
+			8:30	-	KST
 
 ###############################################################################
 
--- a/test/sun/util/calendar/zi/tzdata/europe	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/sun/util/calendar/zi/tzdata/europe	Mon Aug 17 10:12:16 2015 -0700
@@ -216,11 +216,14 @@
 #	republished in Finest Hour (Spring 2002) 1(114):26
 #	http://www.winstonchurchill.org/images/finesthour/Vol.01%20No.114.pdf
 
-# From Paul Eggert (1996-09-03):
+# From Paul Eggert (2015-08-08):
 # The OED Supplement says that the English originally said "Daylight Saving"
 # when they were debating the adoption of DST in 1908; but by 1916 this
 # term appears only in quotes taken from DST's opponents, whereas the
 # proponents (who eventually won the argument) are quoted as using "Summer".
+# The term "Summer Time" was introduced by Herbert Samuel, Home Secretary; see:
+# Viscount Samuel. Leisure in a Democracy. Cambridge University Press
+# ISBN 978-1-107-49471-8 (1949, reissued 2015), p 8.
 
 # From Arthur David Olson (1989-01-19):
 # A source at the British Information Office in New York avers that it's
@@ -366,7 +369,7 @@
 
 # From an anonymous contributor (1996-06-02):
 # The law governing time in Ireland is under Statutory Instrument SI 395/94,
-# which gives force to European Union 7th Council Directive # 94/21/EC.
+# which gives force to European Union 7th Council Directive No. 94/21/EC.
 # Under this directive, the Minister for Justice in Ireland makes appropriate
 # regulations. I spoke this morning with the Secretary of the Department of
 # Justice (tel +353 1 678 9711) who confirmed to me that the correct name is
@@ -615,11 +618,11 @@
 Rule	Russia	1921	only	-	Mar	20	23:00	2:00	MSM  # Midsummer
 Rule	Russia	1921	only	-	Sep	 1	 0:00	1:00	MSD
 Rule	Russia	1921	only	-	Oct	 1	 0:00	0	-
-# Act No.925 of the Council of Ministers of the USSR (1980-10-24):
+# Act No. 925 of the Council of Ministers of the USSR (1980-10-24):
 Rule	Russia	1981	1984	-	Apr	 1	 0:00	1:00	S
 Rule	Russia	1981	1983	-	Oct	 1	 0:00	0	-
-# Act No.967 of the Council of Ministers of the USSR (1984-09-13), repeated in
-# Act No.227 of the Council of Ministers of the USSR (1989-03-14):
+# Act No. 967 of the Council of Ministers of the USSR (1984-09-13), repeated in
+# Act No. 227 of the Council of Ministers of the USSR (1989-03-14):
 Rule	Russia	1984	1991	-	Sep	lastSun	 2:00s	0	-
 Rule	Russia	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
 #
@@ -851,7 +854,7 @@
 # Bulgaria
 #
 # From Plamen Simenov via Steffen Thorsen (1999-09-09):
-# A document of Government of Bulgaria (No.94/1997) says:
+# A document of Government of Bulgaria (No. 94/1997) says:
 # EET -> EETDST is in 03:00 Local time in last Sunday of March ...
 # EETDST -> EET is in 04:00 Local time in last Sunday of October
 #
@@ -868,7 +871,7 @@
 			1:00	C-Eur	CE%sT	1945
 			1:00	-	CET	1945 Apr  2  3:00
 			2:00	-	EET	1979 Mar 31 23:00
-			2:00	Bulg	EE%sT	1982 Sep 26  2:00
+			2:00	Bulg	EE%sT	1982 Sep 26  3:00
 			2:00	C-Eur	EE%sT	1991
 			2:00	E-Eur	EE%sT	1997
 			2:00	EU	EE%sT
@@ -1085,8 +1088,8 @@
 # after that.
 
 # From Mart Oruaas (2000-01-29):
-# Regulation no. 301 (1999-10-12) obsoletes previous regulation
-# no. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all
+# Regulation No. 301 (1999-10-12) obsoletes previous regulation
+# No. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all
 # the year round.  The regulation is effective 1999-11-01.
 
 # From Toomas Soome (2002-02-21):
@@ -1107,7 +1110,7 @@
 			3:00	Russia	MSK/MSD	1989 Mar 26  2:00s
 			2:00	1:00	EEST	1989 Sep 24  2:00s
 			2:00	C-Eur	EE%sT	1998 Sep 22
-			2:00	EU	EE%sT	1999 Nov  1
+			2:00	EU	EE%sT	1999 Oct 31  4:00
 			2:00	-	EET	2002 Feb 21
 			2:00	EU	EE%sT
 
@@ -1550,21 +1553,21 @@
 # correct data in juridical acts and I found some juridical documents about
 # changes in the counting of time in Latvia from 1981....
 #
-# Act No.35 of the Council of Ministers of Latvian SSR of 1981-01-22 ...
-# according to the Act No.925 of the Council of Ministers of USSR of 1980-10-24
+# Act No. 35 of the Council of Ministers of Latvian SSR of 1981-01-22 ...
+# according to the Act No. 925 of the Council of Ministers of USSR of 1980-10-24
 # ...: all year round the time of 2nd time zone + 1 hour, in addition turning
 # the hands of the clock 1 hour forward on 1 April at 00:00 (GMT 31 March 21:00)
 # and 1 hour backward on the 1 October at 00:00 (GMT 30 September 20:00).
 #
-# Act No.592 of the Council of Ministers of Latvian SSR of 1984-09-24 ...
-# according to the Act No.967 of the Council of Ministers of USSR of 1984-09-13
+# Act No. 592 of the Council of Ministers of Latvian SSR of 1984-09-24 ...
+# according to the Act No. 967 of the Council of Ministers of USSR of 1984-09-13
 # ...: all year round the time of 2nd time zone + 1 hour, in addition turning
 # the hands of the clock 1 hour forward on the last Sunday of March at 02:00
 # (GMT 23:00 on the previous day) and 1 hour backward on the last Sunday of
 # September at 03:00 (GMT 23:00 on the previous day).
 #
-# Act No.81 of the Council of Ministers of Latvian SSR of 1989-03-22 ...
-# according to the Act No.227 of the Council of Ministers of USSR of 1989-03-14
+# Act No. 81 of the Council of Ministers of Latvian SSR of 1989-03-22 ...
+# according to the Act No. 227 of the Council of Ministers of USSR of 1989-03-14
 # ...: since the last Sunday of March 1989 in Lithuanian SSR, Latvian SSR,
 # Estonian SSR and Kaliningrad region of Russian Federation all year round the
 # time of 2nd time zone (Moscow time minus one hour). On the territory of Latvia
@@ -1581,7 +1584,7 @@
 # From Andrei Ivanov (2000-03-06):
 # This year Latvia will not switch to Daylight Savings Time (as specified in
 # The Regulations of the Cabinet of Ministers of the Rep. of Latvia of
-# 29-Feb-2000 (#79) <http://www.lv-laiks.lv/wwwraksti/2000/071072/vd4.htm>,
+# 29-Feb-2000 (No. 79) <http://www.lv-laiks.lv/wwwraksti/2000/071072/vd4.htm>,
 # in Latvian for subscribers only).
 
 # From RFE/RL Newsline
@@ -1786,6 +1789,18 @@
 # News from Moldova (in russian):
 # http://ru.publika.md/link_317061.html
 
+# From Roman Tudos (2015-07-02):
+# http://lex.justice.md/index.php?action=view&view=doc&lang=1&id=355077
+# From Paul Eggert (2015-07-01):
+# The abovementioned official link to IGO1445-868/2014 states that
+# 2014-10-26's fallback transition occurred at 03:00 local time.  Also,
+# http://www.trm.md/en/social/la-30-martie-vom-trece-la-ora-de-vara
+# says the 2014-03-30 spring-forward transition was at 02:00 local time.
+# Guess that since 1997 Moldova has switched one hour before the EU.
+
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Moldova	1997	max	-	Mar	lastSun	 2:00	1:00	S
+Rule	Moldova	1997	max	-	Oct	lastSun	 3:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Chisinau	1:55:20 -	LMT	1880
@@ -1800,7 +1815,7 @@
 			2:00	Russia	EE%sT	1992
 			2:00	E-Eur	EE%sT	1997
 # See Romania commentary for the guessed 1997 transition to EU rules.
-			2:00	EU	EE%sT
+			2:00	Moldova	EE%sT
 
 # Monaco
 # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
@@ -2146,7 +2161,7 @@
 # Russia
 
 # From Alexander Krivenyshev (2011-09-15):
-# Based on last Russian Government Decree # 725 on August 31, 2011
+# Based on last Russian Government Decree No. 725 on August 31, 2011
 # (Government document
 # http://www.government.ru/gov/results/16355/print/
 # in Russian)
@@ -2156,7 +2171,7 @@
 # http://www.worldtimezone.com/dst_news/dst_news_russia36.htm
 
 # From Sanjeev Gupta (2011-09-27):
-# Scans of [Decree #23 of January 8, 1992] are available at:
+# Scans of [Decree No. 23 of January 8, 1992] are available at:
 # http://government.consultant.ru/page.aspx?1223966
 # They are in Cyrillic letters (presumably Russian).
 
@@ -2167,19 +2182,19 @@
 # One source is
 # http://government.ru/gov/results/16355/
 # which, according to translate.google.com, begins "Decree of August 31,
-# 2011 No 725" and contains no other dates or "effective date" information.
+# 2011 No. 725" and contains no other dates or "effective date" information.
 #
 # Another source is
 # http://www.rg.ru/2011/09/06/chas-zona-dok.html
 # which, according to translate.google.com, begins "Resolution of the
 # Government of the Russian Federation on August 31, 2011 N 725" and also
 # contains "Date first official publication: September 6, 2011 Posted on:
-# in the 'RG' - Federal Issue number 5573 September 6, 2011" but which
+# in the 'RG' - Federal Issue No. 5573 September 6, 2011" but which
 # does not contain any "effective date" information.
 #
 # Another source is
 # http://en.wikipedia.org/wiki/Oymyakonsky_District#cite_note-RuTime-7
-# which, in note 8, contains "Resolution #725 of August 31, 2011...
+# which, in note 8, contains "Resolution No. 725 of August 31, 2011...
 # Effective as of after 7 days following the day of the official publication"
 # but which does not contain any reference to September 6, 2011.
 #
@@ -2387,7 +2402,7 @@
 # changed in May.
 			 2:00	E-Eur	EE%sT	1994 May
 # From IATA SSIM (1994/1997), which also says that Kerch is still like Kiev.
-			 3:00	E-Eur	MSK/MSD	1996 Mar 31  3:00s
+			 3:00	E-Eur	MSK/MSD	1996 Mar 31  0:00s
 			 3:00	1:00	MSD	1996 Oct 27  3:00s
 # IATA SSIM (1997-09) says Crimea switched to EET/EEST.
 # Assume it happened in March by not changing the clocks.
@@ -2522,7 +2537,7 @@
 # from current Russia Zone 6 - Krasnoyarsk Time Zone (KRA) UTC +0700
 # to Russia Zone 5 - Novosibirsk Time Zone (NOV) UTC +0600
 #
-# This is according to Government of Russia decree # 740, on September
+# This is according to Government of Russia decree No. 740, on September
 # 14, 2009 "Application in the territory of the Kemerovo region the Fifth
 # time zone." ("Russia Zone 5" or old "USSR Zone 5" is GMT +0600)
 #
@@ -2945,7 +2960,7 @@
 Zone	Atlantic/Canary	-1:01:36 -	LMT	1922 Mar # Las Palmas de Gran C.
 			-1:00	-	CANT	1946 Sep 30  1:00 # Canaries T
 			 0:00	-	WET	1980 Apr  6  0:00s
-			 0:00	1:00	WEST	1980 Sep 28  0:00s
+			 0:00	1:00	WEST	1980 Sep 28  1:00u
 			 0:00	EU	WE%sT
 # IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u.
 # Ignore this for now, as the Canaries are part of the EU.
@@ -3235,7 +3250,7 @@
 # From Igor Karpov, who works for the Ukrainian Ministry of Justice,
 # via Garrett Wollman (2003-01-27):
 # BTW, I've found the official document on this matter. It's government
-# regulations number 509, May 13, 1996. In my poor translation it says:
+# regulations No. 509, May 13, 1996. In my poor translation it says:
 # "Time in Ukraine is set to second timezone (Kiev time). Each last Sunday
 # of March at 3am the time is changing to 4am and each last Sunday of
 # October the time at 4am is changing to 3am"
@@ -3244,7 +3259,7 @@
 # On September 20, 2011 the deputies of the Verkhovna Rada agreed to
 # abolish the transfer clock to winter time.
 #
-# Bill number 8330 of MP from the Party of Regions Oleg Nadoshi got
+# Bill No. 8330 of MP from the Party of Regions Oleg Nadoshi got
 # approval from 266 deputies.
 #
 # Ukraine abolishes transfer back to the winter time (in Russian)
--- a/test/sun/util/calendar/zi/tzdata/leapseconds	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/sun/util/calendar/zi/tzdata/leapseconds	Mon Aug 17 10:12:16 2015 -0700
@@ -79,5 +79,5 @@
 Leap	2012	Jun	30	23:59:60	+	S
 Leap	2015	Jun	30	23:59:60	+	S
 
-#	Updated through IERS Bulletin C49
-#	File expires on:  28 December 2015
+#	Updated through IERS Bulletin C50
+#	File expires on:  28 June 2016
--- a/test/sun/util/calendar/zi/tzdata/northamerica	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/sun/util/calendar/zi/tzdata/northamerica	Mon Aug 17 10:12:16 2015 -0700
@@ -1258,10 +1258,19 @@
 
 # west Labrador, Nova Scotia, Prince Edward I
 
-# From Paul Eggert (2006-03-22):
+# From Brian Inglis (2015-07-20):
+# From the historical weather station records available at:
+# https://weatherspark.com/history/28351/1971/Sydney-Nova-Scotia-Canada
+# Sydney shares the same time history as Glace Bay, so was
+# likely to be the same across the island....
+# Sydney, as the capital and most populous location, or Cape Breton, would
+# have been better names for the zone had we known this in 1996.
+
+# From Paul Eggert (2015-07-20):
 # Shanks & Pottenger write that since 1970 most of this region has been like
 # Halifax.  Many locales did not observe peacetime DST until 1972;
-# Glace Bay, NS is the largest that we know of.
+# the Cape Breton area, represented by Glace Bay, is the largest we know of
+# (Glace Bay was perhaps not the best name choice but no point changing now).
 # Shanks & Pottenger also write that Liverpool, NS was the only town
 # in Canada to observe DST in 1971 but not 1970; for now we'll assume
 # this is a typo.
@@ -1819,13 +1828,13 @@
 # Exact date in October unknown; Sunday October 1 is a reasonable guess.
 # 3. June 1918: switch to Pacific Daylight Time (GMT-7)
 # Exact date in June unknown; Sunday June 2 is a reasonable guess.
-# note#1:
+# note 1:
 # On Oct 27/1918 when daylight saving ended in the rest of Canada,
 # Creston did not change its clocks.
-# note#2:
+# note 2:
 # During WWII when the Federal Government legislated a mandatory clock change,
 # Creston did not oblige.
-# note#3:
+# note 3:
 # There is no guarantee that Creston will remain on Mountain Standard Time
 # (UTC-7) forever.
 # The subject was debated at least once this year by the town Council.
--- a/test/sun/util/calendar/zi/tzdata/southamerica	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/sun/util/calendar/zi/tzdata/southamerica	Mon Aug 17 10:12:16 2015 -0700
@@ -154,7 +154,7 @@
 # Timezone Law (which never was effectively applied) will (would?) be
 # in effect.... The article is at
 # http://ar.clarin.com/diario/2001-06-06/e-01701.htm
-# ... The Law itself is "Ley No 25155", sanctioned on 1999-08-25, enacted
+# ... The Law itself is "Ley No. 25155", sanctioned on 1999-08-25, enacted
 # 1999-09-17, and published 1999-09-21.  The official publication is at:
 # http://www.boletin.jus.gov.ar/BON/Primera/1999/09-Septiembre/21/PDF/BO21-09-99LEG.PDF
 # Regretfully, you have to subscribe (and pay) for the on-line version....
@@ -198,15 +198,11 @@
 # http://www.worldtimezone.com/dst_news/dst_news_argentina03.html
 # http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish)
 
-# From Rodrigo Severo (2008-10-06):
-# Here is some info available at a Gentoo bug related to TZ on Argentina's DST:
-# ...
-# ------- Comment #1 from [jmdocile]  2008-10-06 16:28 0000 -------
-# Hi, there is a problem with timezone-data-2008e and maybe with
-# timezone-data-2008f
-# Argentinian law [Number] 25.155 is no longer valid.
+# From Juan Manuel Docile in https://bugs.gentoo.org/240339 (2008-10-07)
+# via Rodrigo Severo:
+# Argentinian law No. 25.155 is no longer valid.
 # http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm
-# The new one is law [Number] 26.350
+# The new one is law No. 26.350
 # http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm
 # So there is no summer time in Argentina for now.
 
@@ -794,7 +790,7 @@
 #	 [ and in a second message (same day): ]
 # I found the decree.
 #
-# DECRETO No- 7.584, DE 13 DE OUTUBRO DE 2011
+# DECRETO No. 7.584, DE 13 DE OUTUBRO DE 2011
 # Link :
 # http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6
 
@@ -1148,7 +1144,7 @@
 # Conflicts between [1] and [2] were resolved as follows:
 #
 #  - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites
-#    Boletín Nº 1, Aviso Nº 1 (1910).  Go with [2].
+#    Boletín No. 1, Aviso No. 1 (1910).  Go with [2].
 #
 #  - [1] says SMT was -4:42:45, [2] says Chile's official time from
 #    1916 to 1919 was -4:42:46.3, the meridian of Chile's National
@@ -1156,7 +1152,7 @@
 #    Quinta Normal in Santiago.  Go with [2], rounding it to -4:42:46.
 #
 #  - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites
-#    Boletín Nº 22, Aviso Nº 129/1918 (1918-08-23).  Go with [2].
+#    Boletín No. 22, Aviso No. 129/1918 (1918-08-23).  Go with [2].
 #
 #  - [1] does not give times for transitions; assume they occur
 #    at midnight mainland time, the current common practice.  However,
@@ -1556,7 +1552,7 @@
 # (1999-09) reports no date; go with above sources and Gerd Knops (2001-02-27).
 Rule	Para	1998	2001	-	Mar	Sun>=1	0:00	0	-
 # From Rives McDow (2002-02-28):
-# A decree was issued in Paraguay (no. 16350) on 2002-02-26 that changed the
+# A decree was issued in Paraguay (No. 16350) on 2002-02-26 that changed the
 # dst method to be from the first Sunday in September to the first Sunday in
 # April.
 Rule	Para	2002	2004	-	Apr	Sun>=1	0:00	0	-
@@ -1736,8 +1732,19 @@
 Rule	Uruguay	2006	only	-	Mar	12	 2:00	0	-
 # From Jesper Nørgaard Welen (2006-09-06):
 # http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006_00001.PDF
-Rule	Uruguay	2006	max	-	Oct	Sun>=1	 2:00	1:00	S
-Rule	Uruguay	2007	max	-	Mar	Sun>=8	 2:00	0	-
+#
+# From Steffen Thorsen (2015-06-30):
+# ... it looks like they will not be using DST the coming summer:
+# http://www.elobservador.com.uy/gobierno-resolvio-que-no-habra-cambio-horario-verano-n656787
+# http://www.republica.com.uy/este-ano-no-se-modificara-el-huso-horario-en-uruguay/523760/
+# From Paul Eggert (2015-06-30):
+# Apparently restaurateurs complained that DST caused people to go to the beach
+# instead of out to dinner.
+# From Pablo Camargo (2015-07-13):
+# http://archivo.presidencia.gub.uy/sci/decretos/2015/06/cons_min_201.pdf
+# [dated 2015-06-29; repeals Decree 311/006 dated 2006-09-04]
+Rule	Uruguay	2006	2014	-	Oct	Sun>=1	 2:00	1:00	S
+Rule	Uruguay	2007	2015	-	Mar	Sun>=8	 2:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Montevideo	-3:44:44 -	LMT	1898 Jun 28
 			-3:44:44 -	MMT	1920 May  1 # Montevideo MT
@@ -1746,6 +1753,10 @@
 
 # Venezuela
 #
+# From Paul Eggert (2015-07-28):
+# For the 1965 transition see Gaceta Oficial No. 27.619 (1964-12-15), p 205.533
+# http://www.pgr.gob.ve/dmdocuments/1964/27619.pdf
+#
 # From John Stainforth (2007-11-28):
 # ... the change for Venezuela originally expected for 2007-12-31 has
 # been brought forward to 2007-12-09.  The official announcement was
@@ -1757,6 +1768,6 @@
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Caracas	-4:27:44 -	LMT	1890
 			-4:27:40 -	CMT	1912 Feb 12 # Caracas Mean Time?
-			-4:30	-	VET	1965        # Venezuela Time
+			-4:30	-	VET	1965 Jan  1  0:00 # Venezuela T.
 			-4:00	-	VET	2007 Dec  9  3:00
 			-4:30	-	VET
--- a/test/sun/util/calendar/zi/tzdata/zone.tab	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/sun/util/calendar/zi/tzdata/zone.tab	Mon Aug 17 10:12:16 2015 -0700
@@ -129,8 +129,8 @@
 BY	+5354+02734	Europe/Minsk
 BZ	+1730-08812	America/Belize
 CA	+4734-05243	America/St_Johns	Newfoundland Time, including SE Labrador
-CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (most places), PEI
-CA	+4612-05957	America/Glace_Bay	Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971
+CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (peninsula), PEI
+CA	+4612-05957	America/Glace_Bay	Atlantic Time - Nova Scotia (Cape Breton)
 CA	+4606-06447	America/Moncton	Atlantic Time - New Brunswick
 CA	+5320-06025	America/Goose_Bay	Atlantic Time - Labrador - most locations
 CA	+5125-05707	America/Blanc-Sablon	Atlantic Standard Time - Quebec - Lower North Shore
--- a/test/tools/pack200/PackTestZip64.java	Mon Aug 17 16:56:22 2015 +0300
+++ b/test/tools/pack200/PackTestZip64.java	Mon Aug 17 10:12:16 2015 -0700
@@ -37,10 +37,13 @@
  * @compile -XDignore.symbol.file Utils.java PackTestZip64.java
  * @run main PackTestZip64
  * @author kizune
- * @key intermittent
  */
 
 public class PackTestZip64 {
+
+    private static final boolean bigJarEnabled
+            = Boolean.getBoolean("PackTestZip64.enableBigJar");
+
     public static void main(String... args) throws Exception {
         testPacking();
         Utils.cleanup();
@@ -50,10 +53,14 @@
     private static final byte[] BUFFER = new byte[1024];
 
     static void testPacking() throws IOException {
-        // make a copy of the test specimen to local directory
         File testFile = new File("tools_java.jar");
-        // Add a large number of small files to the golden jar
-        generateLargeJar(testFile, Utils.getGoldenJar());
+        if (bigJarEnabled) {
+            // Add a large number of small files to the golden jar
+            generateLargeJar(testFile, Utils.getGoldenJar());
+        } else {
+            // make a copy of the test specimen to local directory
+            Utils.copyFile(Utils.getGoldenJar(), testFile);
+        }
 
         List<String> cmdsList = new ArrayList<>();
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/pack200/PackTestZip64Manual.java	Mon Aug 17 10:12:16 2015 -0700
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8029646
+ * @summary tests that native unpacker produces the same result as Java one
+ * @compile -XDignore.symbol.file Utils.java PackTestZip64.java
+ * @run main/manual/othervm -DPackTestZip64.enableBigJar=true PackTestZip64
+ */
+
+public class PackTestZip64Manual {
+}