--- a/.hgtags-top-repo Thu Apr 22 16:54:28 2010 -0700
+++ b/.hgtags-top-repo Wed Jul 05 17:10:40 2017 +0200
@@ -64,3 +64,4 @@
6b1069f53fbc30663ccef49d78c31bb7d6967bde jdk7-b87
82135c848d5fcddb065e98ae77b81077c858f593 jdk7-b88
7f1ba4459972bf84b8201dc1cc4f62b1fe1c74f4 jdk7-b89
+425ba3efabbfe0b188105c10aaf7c3c8fa8d1a38 jdk7-b90
--- a/corba/.hgtags Thu Apr 22 16:54:28 2010 -0700
+++ b/corba/.hgtags Wed Jul 05 17:10:40 2017 +0200
@@ -64,3 +64,4 @@
09a41111a401d327f65e453384d976a10154d9ea jdk7-b87
39e14d2da687c7e592142137517aaf689544820f jdk7-b88
bb4424c5e778b842c064a8b1aa902b35f4397654 jdk7-b89
+56ce07b0eb47b93a98a72adef0f21e602c460623 jdk7-b90
--- a/hotspot/.hgtags Thu Apr 22 16:54:28 2010 -0700
+++ b/hotspot/.hgtags Wed Jul 05 17:10:40 2017 +0200
@@ -89,3 +89,4 @@
4b60f23c42231f7ecd62ad1fcb6a9ca26fa57d1b jdk7-b88
15836273ac2494f36ef62088bc1cb6f3f011f565 jdk7-b89
4b60f23c42231f7ecd62ad1fcb6a9ca26fa57d1b hs18-b02
+605c9707a766ff518cd841fc04f9bb4b36a3a30b jdk7-b90
--- a/jaxp/.hgtags Thu Apr 22 16:54:28 2010 -0700
+++ b/jaxp/.hgtags Wed Jul 05 17:10:40 2017 +0200
@@ -64,3 +64,4 @@
8b493f1aa136d86de0885fcba15262c4fa2b1412 jdk7-b87
d8ebd15910034f2ba50b2f129f959f86cca01419 jdk7-b88
d2818fd2b036f3b3154a9a7de41afcf4ac679c1b jdk7-b89
+c5d932ee326d6f7fd4634b11c7185ea82d184df2 jdk7-b90
--- a/jdk/.hgtags Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/.hgtags Wed Jul 05 17:10:40 2017 +0200
@@ -64,3 +64,4 @@
2cafbbe9825e911a6ca6c17d9a18eb1f0bf0873c jdk7-b87
b3c69282f6d3c90ec21056cd1ab70dc0c895b069 jdk7-b88
4a6abb7e224cc8d9a583c23c5782e4668739a119 jdk7-b89
+7f90d0b9dbb7ab4c60d0b0233e4e77fb4fac597c jdk7-b90
--- a/jdk/make/sun/javazic/tzdata/VERSION Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/VERSION Wed Jul 05 17:10:40 2017 +0200
@@ -21,4 +21,4 @@
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
-tzdata2010g
+tzdata2010i
--- a/jdk/make/sun/javazic/tzdata/africa Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/africa Wed Jul 05 17:10:40 2017 +0200
@@ -702,6 +702,21 @@
# http://www.worldtimezone.com/dst_news/dst_news_morocco03.html
# </a>
+# From Steffen Thorsen (2010-04-13):
+# Several news media in Morocco report that the Ministry of Modernization
+# of Public Sectors has announced that Morocco will have DST from
+# 2010-05-02 to 2010-08-08.
+#
+# Example:
+# <a href="http://www.lavieeco.com/actualites/4099-le-maroc-passera-a-l-heure-d-ete-gmt1-le-2-mai.html">
+# http://www.lavieeco.com/actualites/4099-le-maroc-passera-a-l-heure-d-ete-gmt1-le-2-mai.html
+# </a>
+# (French)
+# Our page:
+# <a href="http://www.timeanddate.com/news/time/morocco-starts-dst-2010.html">
+# http://www.timeanddate.com/news/time/morocco-starts-dst-2010.html
+# </a>
+
# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Morocco 1939 only - Sep 12 0:00 1:00 S
@@ -723,6 +738,8 @@
Rule Morocco 2008 only - Sep 1 0:00 0 -
Rule Morocco 2009 only - Jun 1 0:00 1:00 S
Rule Morocco 2009 only - Aug 21 0:00 0 -
+Rule Morocco 2010 only - May 2 0:00 1:00 S
+Rule Morocco 2010 only - Aug 8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26
0:00 Morocco WE%sT 1984 Mar 16
@@ -964,6 +981,24 @@
# Therefore, the standard time will be kept unchanged the whole year long."
# So foregoing DST seems to be an exception (albeit one that may be repeated in the future).
+# From Alexander Krivenyshev (2010-03-27):
+# According to some news reports Tunis confirmed not to use DST in 2010
+#
+# (translation):
+# "The Tunisian government has decided to abandon DST, which was scheduled on
+# Sunday...
+# Tunisian authorities had suspended the DST for the first time last year also
+# coincided with the month of Ramadan..."
+#
+# (in Arabic)
+# <a href="http://www.moheet.com/show_news.aspx?nid=358861&pg=1">
+# http://www.moheet.com/show_news.aspx?nid=358861&pg=1
+# <a href="http://www.almadenahnews.com/newss/news.php?c=118&id=38036">
+# http://www.almadenahnews.com/newss/news.php?c=118&id=38036
+# or
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_tunis02.html">
+# http://www.worldtimezone.com/dst_news/dst_news_tunis02.html
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
Rule Tunisia 1939 only - Nov 18 23:00s 0 -
@@ -990,8 +1025,7 @@
Rule Tunisia 2005 only - Sep 30 1:00s 0 -
Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
-Rule Tunisia 2010 max - Mar lastSun 2:00s 1:00 S
-Rule Tunisia 2010 max - Oct lastSun 2:00s 0 -
+
# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
# more precise 0:09:21.
# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
--- a/jdk/make/sun/javazic/tzdata/asia Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/asia Wed Jul 05 17:10:40 2017 +0200
@@ -588,6 +588,28 @@
# was still controlled by Japan. This is hard to believe, but we don't
# have any other information.
+# From smallufo (2010-04-03):
+# According to Taiwan's CWB,
+# <a href="http://www.cwb.gov.tw/V6/astronomy/cdata/summert.htm">
+# http://www.cwb.gov.tw/V6/astronomy/cdata/summert.htm
+# </a>
+# Taipei has DST in 1979 between July 1st and Sep 30.
+
+# From Arthur David Olson (2010-04-07):
+# Here's Google's translation of the table at the bottom of the "summert.htm" page:
+# Decade Name Start and end date
+# Republic of China 34 years to 40 years (AD 1945-1951 years) Summer Time May 1 to September 30
+# 41 years of the Republic of China (AD 1952) Daylight Saving Time March 1 to October 31
+# Republic of China 42 years to 43 years (AD 1953-1954 years) Daylight Saving Time April 1 to October 31
+# In the 44 years to 45 years (AD 1955-1956 years) Daylight Saving Time April 1 to September 30
+# Republic of China 46 years to 48 years (AD 1957-1959) Summer Time April 1 to September 30
+# Republic of China 49 years to 50 years (AD 1960-1961) Summer Time June 1 to September 30
+# Republic of China 51 years to 62 years (AD 1962-1973 years) Stop Summer Time
+# Republic of China 63 years to 64 years (1974-1975 AD) Daylight Saving Time April 1 to September 30
+# Republic of China 65 years to 67 years (1976-1978 AD) Stop Daylight Saving Time
+# Republic of China 68 years (AD 1979) Daylight Saving Time July 1 to September 30
+# Republic of China since 69 years (AD 1980) Stop Daylight Saving Time
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Taiwan 1945 1951 - May 1 0:00 1:00 D
Rule Taiwan 1945 1951 - Oct 1 0:00 0 S
@@ -598,8 +620,9 @@
Rule Taiwan 1960 1961 - Jun 1 0:00 1:00 D
Rule Taiwan 1974 1975 - Apr 1 0:00 1:00 D
Rule Taiwan 1974 1975 - Oct 1 0:00 0 S
-Rule Taiwan 1980 only - Jun 30 0:00 1:00 D
-Rule Taiwan 1980 only - Sep 30 0:00 0 S
+Rule Taiwan 1979 only - Jun 30 0:00 1:00 D
+Rule Taiwan 1979 only - Sep 30 0:00 0 S
+
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Taipei 8:06:00 - LMT 1896 # or Taibei or T'ai-pei
8:00 Taiwan C%sT
@@ -1934,13 +1957,35 @@
# [T]he German Consulate General in Karachi reported me today that Pakistan
# will go back to standard time on 1st of November.
+# From Steffen Thorsen (2010-03-26):
+# Steffen Thorsen wrote:
+# > On Thursday (2010-03-25) it was announced that DST would start in
+# > Pakistan on 2010-04-01.
+# >
+# > Then today, the president said that they might have to revert the
+# > decision if it is not supported by the parliament. So at the time
+# > being, it seems unclear if DST will be actually observed or not - but
+# > April 1 could be a more likely date than April 15.
+# Now, it seems that the decision to not observe DST in final:
+#
+# "Govt Withdraws Plan To Advance Clocks"
+# <a href="http://www.apakistannews.com/govt-withdraws-plan-to-advance-clocks-172041">
+# http://www.apakistannews.com/govt-withdraws-plan-to-advance-clocks-172041
+# </a>
+#
+# "People laud PM's announcement to end DST"
+# <a href="http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=99374&Itemid=2">
+# http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=99374&Itemid=2
+# </a>
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Pakistan 2002 only - Apr Sun>=2 0:01 1:00 S
Rule Pakistan 2002 only - Oct Sun>=2 0:01 0 -
Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
Rule Pakistan 2008 only - Nov 1 0:00 0 -
-Rule Pakistan 2009 max - Apr 15 0:00 1:00 S
-Rule Pakistan 2009 max - Nov 1 0:00 0 -
+Rule Pakistan 2009 only - Apr 15 0:00 1:00 S
+Rule Pakistan 2009 only - Nov 1 0:00 0 -
+
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Karachi 4:28:12 - LMT 1907
5:30 - IST 1942 Sep
--- a/jdk/make/sun/javazic/tzdata/southamerica Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/southamerica Wed Jul 05 17:10:40 2017 +0200
@@ -459,6 +459,27 @@
# of the country calls it "ART".
# ...
+# From Alexander Krivenyshev (2010-04-09):
+# According to news reports from El Diario de la Republica Province San
+# Luis, Argentina (standard time UTC-04) will keep Daylight Saving Time
+# after April 11, 2010--will continue to have same time as rest of
+# Argentina (UTC-3) (no DST).
+#
+# Confirmaron la prórroga del huso horario de verano (Spanish)
+# <a href="http://www.eldiariodelarepublica.com/index.php?option=com_content&task=view&id=29383&Itemid=9">
+# http://www.eldiariodelarepublica.com/index.php?option=com_content&task=view&id=29383&Itemid=9
+# </a>
+# or (some English translation):
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_argentina08.html">
+# http://www.worldtimezone.com/dst_news/dst_news_argentina08.html
+# </a>
+
+# From Mariano Absatz (2010-04-12):
+# yes...I can confirm this...and given that San Luis keeps calling
+# UTC-03:00 "summer time", we should't just let San Luis go back to "Arg"
+# rules...San Luis is still using "Western ARgentina Time" and it got
+# stuck on Summer daylight savings time even though the summer is over.
+
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#
# Buenos Aires (BA), Capital Federal (CF),
@@ -592,8 +613,8 @@
#
# San Luis (SL)
-Rule SanLuis 2008 max - Mar Sun>=8 0:00 0 -
-Rule SanLuis 2007 max - Oct Sun>=8 0:00 1:00 S
+Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
+Rule SanLuis 2007 2009 - Oct Sun>=8 0:00 1:00 S
Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
--- a/jdk/make/sun/launcher/Makefile Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/make/sun/launcher/Makefile Wed Jul 05 17:10:40 2017 +0200
@@ -38,7 +38,7 @@
# Resources
#
LOCALE_SET_DEFINITION = jre
-NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES = $(PKGDIR)/resources/launcher.properties
+RESOURCE_BUNDLES_COMPILED_PROPERTIES = $(PKGDIR)/resources/launcher.properties
#
# Rules
--- a/jdk/make/tools/CharsetMapping/Big5.c2b Thu Apr 22 16:54:28 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-#Add the following 5 characters which are duplicated
-#or have conflicts with other characters.
-0xA1C4 0xFF3F #REGWARN Fallback 0xA1C4 SPACING UNDERSCORE
-0xA2AC 0x2571 #REGWARN Fallback 0xA2AC LT DIAG UP RIGHT TO LOW LEFT
-0xA2AD 0x2572 #REGWARN Fallback 0xA2AD LT DIAG UP LEFT TO LOW RIGHT
-0xA451 0x5341 #REGWARN Fallback 0xA451 HANGZHOU NUMERAL TEN
-0xA4CA 0x5345 #REGWARN Fallback 0xA4CA HANGZHOU NUMERAL THIRTY
-#
--- a/jdk/make/tools/CharsetMapping/Big5.map Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/make/tools/CharsetMapping/Big5.map Wed Jul 05 17:10:40 2017 +0200
@@ -13830,8 +13830,21 @@
0xF9D4 0x9F49 # <CJK>
0xF9D5 0x9F98 # <CJK>
#
+# from Big5.b2c-irreversible
+#
0xA15A 0xFF3F #SPACING UNDERSCORE
0xA1FE 0x2571 #LT DIAG UP RIGHT TO LOW LEFT
0xA240 0x2572 #LT DIAG UP LEFT TO LOW RIGHTG
0xA2CC 0x5341 #HANGHZOU NUMERAL TEN
0xA2CE 0x5345 #HANGZHOU NUMERAL THIRTY
+#
+# Add the following 5 characters from Big5.c2b-irreversible
+# It appears these 5 should be here to be the round-trip
+# for these 5 characters. Above 5 are the b->c only nrt.
+#
+0xA1C4 0xFF3F
+0xA2AC 0x2571
+0xA2AD 0x2572
+0xA451 0x5341
+0xA4CA 0x5345
+#
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@
cachedrowsetimpl.longfail = getLong bei Wert ( {0} ) in Spalte {1} fehlgeschlagen
cachedrowsetimpl.floatfail = getFloat bei Wert ( {0} ) in Spalte {1} fehlgeschlagen
cachedrowsetimpl.doublefail = getDouble bei Wert ( {0} ) in Spalte {1} fehlgeschlagen
-cachedrowsetimpl.dtypemismt = Keine Datentyp\u00fcbereinstimmung
+cachedrowsetimpl.dtypemismt = Keine Datentyp\u00fcbereinstimmung
cachedrowsetimpl.datefail = getDate bei Wert ( {0} ) in Spalte {1} fehlgeschlagen; keine Konvertierung m\u00f6glich
cachedrowsetimpl.timefail = getTime bei Wert ( {0} ) in Spalte {1} fehlgeschlagen; keine Konvertierung m\u00f6glich
cachedrowsetimpl.posupdate = Positionierte Aktualisierungen werden nicht unterst\u00fctzt
@@ -71,11 +71,13 @@
cachedrowsetimpl.unsetmatch2 = Spalten-ID als Argument f\u00fcr unsetMatchColumn verwenden
cachedrowsetimpl.numrows = Zeilenanzahl ist kleiner als Null oder kleiner als Abrufgr\u00f6\u00dfe
cachedrowsetimpl.startpos = Startposition darf keinen Negativwert aufweisen
-cachedrowsetimpl.nextpage = Daten m\u00fcssen vor dem Abrufen ausgef\u00fcllt werden
+cachedrowsetimpl.nextpage = Daten m\u00fcssen vor dem Abrufen ausgef\u00fcllt werden
cachedrowsetimpl.pagesize = Seitengr\u00f6\u00dfe darf nicht kleiner als Null sein
cachedrowsetimpl.pagesize1 = Seitengr\u00f6\u00dfe darf nicht gr\u00f6\u00dfer als maxRows sein
cachedrowsetimpl.fwdonly = ResultSet kann nur vorw\u00e4rts gerichtet sein
cachedrowsetimpl.type = Typ : {0}
+cachedrowsetimpl.opnotysupp = Vorgang noch nicht unterst\u00fctzt
+cachedrowsetimpl.featnotsupp = Funktion nicht unterst\u00fctzt
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = Instanz WebRowSetImpl konnte nicht instanziiert werden. Hash-Tabelle mit Nullwert f\u00fcr Konstruktor angegeben
@@ -83,7 +85,7 @@
webrowsetimpl.invalidrd = Ung\u00fcltiger Leser
#FilteredRowSetImpl exceptions
-filteredrowsetimpl.relative = relative: Ung\u00fcltiger Cursorvorgang
+filteredrowsetimpl.relative = relative: Ung\u00fcltiger Cursorvorgang
filteredrowsetimpl.absolute = absolute: Ung\u00fcltiger Cursorvorgang
filteredrowsetimpl.notallowed = Kein zul\u00e4ssiger Wert im Filter
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = Verkn\u00fcpfungstyp wird nicht unterst\u00fctzt
joinrowsetimpl.initerror = Initialisierungsfehler bei JoinRowSet
joinrowsetimpl.genericerr = Generischer Anfangsfehler bei joinrowset
+joinrowsetimpl.emptyrowset = Leeres Rowset kann nicht zu JoinRowSet hinzugef\u00fcgt werden
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = Ung\u00fcltiger Status
@@ -108,22 +111,28 @@
jdbcrowsetimpl.usecolname = Spaltenname als Argument f\u00fcr unsetMatchColumn verwenden
jdbcrowsetimpl.usecolid = Spalten-ID als Argument f\u00fcr unsetMatchColumn verwenden
jdbcrowsetimpl.resnotupd = ResultSet kann nicht aktualisiert werden
+jdbcrowsetimpl.opnotysupp = Vorgang noch nicht unterst\u00fctzt
+jdbcrowsetimpl.featnotsupp = Funktion nicht unterst\u00fctzt
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) Verbindung nicht m\u00f6glich
crsreader.paramtype = Parametertyp konnte nicht abgeleitet werden
+crsreader.connecterr = Interner Fehler im RowSetReader: keine Verbindung oder kein Befehl
+crsreader.datedetected = Datum gefunden
+crsreader.caldetected = Kalender gefunden
#CachedRowSetWriter exceptions
crswriter.connect = Verbindung konnte nicht hergestellt werden
crswriter.tname = writeData kann Tabellennamen nicht feststellen
crswriter.params1 = Wert f\u00fcr params1: {0}
crswriter.params2 = Wert f\u00fcr params2: {0}
+crswriter.conflictsno = Konflikte w\u00e4hrend der Synchronisation
#InsertRow exceptions
insertrow.novalue = Es wurde kein Wert eingef\u00fcgt
#SyncResolverImpl exceptions
-syncrsimpl.indexval = Indexwert liegt au\u00dferhalb des Bereichs
+syncrsimpl.indexval = Indexwert liegt au\u00dferhalb des Bereichs
syncrsimpl.noconflict = Kein Konflikt bei dieser Spalte
syncrsimpl.syncnotpos = Keine Synchronisation m\u00f6glich
syncrsimpl.valtores = Aufzul\u00f6sender Wert befindet sich entweder in der Datenbank oder in cachedrowset
@@ -132,31 +141,27 @@
wrsxmlreader.invalidcp = Ende von RowSet wurde erreicht. Ung\u00fcltige Cursorposition
wrsxmlreader.readxml = readXML: {0}
wrsxmlreader.parseerr = ** Parsing-Fehler
-wrsxmlreader.line = , Zeile
-wrsxmlreader.uri = , uri
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException: {0}
-wrsxmlwriter.sqlex = SQLException: {0}
+wrsxmlwriter.sqlex = SQLException: {0}
wrsxmlwriter.failedwrite = Schreiben des Werts fehlgeschlagen
wsrxmlwriter.notproper = Kein zul\u00e4ssiger Typ
-#XmlReaderContentHandle exceptions
-xmlrch.errmap = Fehler beim Definieren der Zuordnung: {0}
-xmlrch.errmetadata = Fehler beim Definieren der Metadaten: {0}
+#XmlReaderContentHandler exceptions
+xmlrch.errmap = Fehler beim Definieren der Zuordnung: {0}
+xmlrch.errmetadata = Fehler beim Definieren der Metadaten: {0}
xmlrch.errinsert = Fehler beim Einf\u00fcgen der Werte: {0}
xmlrch.errconstr = Fehler beim Erstellen der Zeile: {0}
xmlrch.errdel = Fehler beim L\u00f6schen der Zeile: {0}
xmlrch.errinsert = Fehler beim Erstellen der Einf\u00fcgezeile: {0}
xmlrch.errinsdel = Fehler beim Erstellen der Einf\u00fcge- oder L\u00f6schzeile: {0}
xmlrch.errupdate = Fehler beim Erstellen der Aktualisierungszeile: {0}
-xmlrch errupdrow = Fehler beim Aktualisieren der Zeile: {0}
+xmlrch.errupdrow = Fehler beim Aktualisieren der Zeile : {0}
xmlrch.chars = Zeichen:
xmlrch.badvalue = Fehlerhafter Wert; Eigenschaft darf nicht Null sein.
xmlrch.badvalue1 = Fehlerhafter Wert; Metadaten d\u00fcrfen nicht Null sein.
-xmlrch.warning = ** Warnung
-xmlrch.line = , Zeile
-xmlrch.uri = , uri
+xmlrch.warning = ** Warnung
#RIOptimisticProvider Exceptions
riop.locking = Sperren der Klassifizierung wird nicht unterst\u00fctzt
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_es.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_es.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,7 @@
cachedrowsetimpl.invalidcp = Posici\u00f3n de cursor no v\u00e1lida
cachedrowsetimpl.illegalop = Operaci\u00f3n no permitida en fila no insertada
cachedrowsetimpl.clonefail = Fallo en la clonaci\u00f3n: {0}
-cachedrowsetimpl.invalidcol = \u00cdndice de columna no v\u00e1lido
+cachedrowsetimpl.invalidcol = \u00cdndice de columnas no v\u00e1lido
cachedrowsetimpl.invalcolnm = Nombre de columna no v\u00e1lido
cachedrowsetimpl.boolfail = Fallo de getBoolen en valor ( {0} ) de columna {1}
cachedrowsetimpl.bytefail = Fallo de getByte en valor ( {0} ) de columna {1}
@@ -41,7 +41,7 @@
cachedrowsetimpl.longfail = Fallo de getLong en valor ( {0} ) de columna {1}
cachedrowsetimpl.floatfail = Fallo de getFloat en valor ( {0} ) de columna {1}
cachedrowsetimpl.doublefail = Fallo de getDouble en valor ( {0} ) de columna {1}
-cachedrowsetimpl.dtypemismt = Discordancia entre tipos de datos
+cachedrowsetimpl.dtypemismt = Discordancia entre tipos de datos
cachedrowsetimpl.datefail = Fallo de getDate en valor ( {0} ) de columna {1} no es posible convertir
cachedrowsetimpl.timefail = Fallo de getTime en valor ( {0} ) de columna {1} no es posible convertir
cachedrowsetimpl.posupdate = Actualizaciones posicionadas incompatibles
@@ -71,11 +71,13 @@
cachedrowsetimpl.unsetmatch2 = Usar ID de columna como argumento en unsetMatchColumn
cachedrowsetimpl.numrows = El n\u00famero de filas es menor que cero o menor que el tama\u00f1o obtenido
cachedrowsetimpl.startpos = La posici\u00f3n de inicio no puede ser negativa
-cachedrowsetimpl.nextpage = Rellenar datos antes de realizar llamada
+cachedrowsetimpl.nextpage = Rellenar datos antes de realizar llamada
cachedrowsetimpl.pagesize = El tama\u00f1o de p\u00e1gina no puede ser menor que cero
cachedrowsetimpl.pagesize1 = El tama\u00f1o de p\u00e1gina no puede ser mayor que maxRows
cachedrowsetimpl.fwdonly = ResultSet s\u00f3lo se reenv\u00eda
cachedrowsetimpl.type = El tipo es: {0}
+cachedrowsetimpl.opnotysupp = Operaci\u00f3n a\u00fan no admitida
+cachedrowsetimpl.featnotsupp = Funci\u00f3n no admitida
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = La instancia WebRowSetImpl no se puede crear. Hashtable nula proporcionada al constructor
@@ -83,7 +85,7 @@
webrowsetimpl.invalidrd = Lector no v\u00e1lido
#FilteredRowSetImpl exceptions
-filteredrowsetimpl.relative = relative: Operaci\u00f3n de cursor no v\u00e1lida
+filteredrowsetimpl.relative = relative: Operaci\u00f3n de cursor no v\u00e1lida
filteredrowsetimpl.absolute = absolute: Operaci\u00f3n de cursor no v\u00e1lida
filteredrowsetimpl.notallowed = El filtro no admite este valor
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = Este tipo de uni\u00f3n no es compatible
joinrowsetimpl.initerror = Error de inicio de JoinRowSet
joinrowsetimpl.genericerr = Error de Genric joinrowset intial
+joinrowsetimpl.emptyrowset = No se puede a\u00f1adir un rowset vac\u00edo a este JoinRowSet
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = Estado no v\u00e1lido
@@ -108,22 +111,28 @@
jdbcrowsetimpl.usecolname = Usar nombre de columna como argumento en unsetMatchColumn
jdbcrowsetimpl.usecolid = Usar ID de columna como argumento en unsetMatchColumn
jdbcrowsetimpl.resnotupd = ResultSet no se puede actualizar
+jdbcrowsetimpl.opnotysupp = Operaci\u00f3n a\u00fan no admitida
+jdbcrowsetimpl.featnotsupp = Funci\u00f3n no admitida
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) No se puede conectar
crsreader.paramtype = No se puede deducir tipo de par\u00e1metro
+crsreader.connecterr = Error interno en RowSetReader: no hay conexi\u00f3n ni comando
+crsreader.datedetected = Fecha detectada
+crsreader.caldetected = Calendario detectado
#CachedRowSetWriter exceptions
crswriter.connect = No se puede obtener una conexi\u00f3n
crswriter.tname = writeData no puede determinar el nombre de tabla
crswriter.params1 = Valor de params1: {0}
crswriter.params2 = Valor de params2: {0}
+crswriter.conflictsno = conflictos en la sincronizaci\u00f3n
#InsertRow exceptions
insertrow.novalue = No se ha insertado ning\u00fan valor
#SyncResolverImpl exceptions
-syncrsimpl.indexval = El valor de \u00edndice est\u00e1 fuera del intervalo
+syncrsimpl.indexval = El valor de \u00edndice est\u00e1 fuera del intervalo
syncrsimpl.noconflict = Esta columna no est\u00e1 en conflicto
syncrsimpl.syncnotpos = No se puede sincronizar
syncrsimpl.valtores = El valor que se debe definir puede estar en la base de datos o en cachedrowset
@@ -132,31 +141,27 @@
wrsxmlreader.invalidcp = Se ha llegado al final de RowSet. Posici\u00f3n de cursor no v\u00e1lida
wrsxmlreader.readxml = readXML: {0}
wrsxmlreader.parseerr = ** Error de an\u00e1lisis
-wrsxmlreader.line = , l\u00ednea
-wrsxmlreader.uri = , uri
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException: {0}
-wrsxmlwriter.sqlex = SQLException: {0}
+wrsxmlwriter.sqlex = SQLException: {0}
wrsxmlwriter.failedwrite = No se pudo escribir valor
wsrxmlwriter.notproper = Tipo incorrecto
-#XmlReaderContentHandle exceptions
-xmlrch.errmap = Error al configurar la asignaci\u00f3n: {0}
-xmlrch.errmetadata = Error al configurar metadatos: {0}
-xmlrch.errinsert = Error al insertar valores: {0}
+#XmlReaderContentHandler exceptions
+xmlrch.errmap = Error al configurar la asignaci\u00f3n: {0}
+xmlrch.errmetadata = Error al configurar metadatos: {0}
+xmlrch.errinsert = Error al insertar los valores: {0}
xmlrch.errconstr = Error al construir fila: {0}
xmlrch.errdel = Error al borrar fila: {0}
xmlrch.errinsert = Error al construir insertar fila: {0}
xmlrch.errinsdel = Error al construir insertar o suprimir fila: {0}
xmlrch.errupdate = Error al construir actualizar fila: {0}
-xmlrch errupdrow = Error al actualizar fila: {0}
+xmlrch.errupdrow = Error al actualizar la fila: {0}
xmlrch.chars = caracteres:
xmlrch.badvalue = Valor incorrecto; la propiedad no puede ser nula
xmlrch.badvalue1 = Valor incorrecto; los metadatos no pueden ser nulos
-xmlrch.warning = ** Advertencia
-xmlrch.line = , l\u00ednea
-xmlrch.uri = , uri
+xmlrch.warning = ** Advertencia
#RIOptimisticProvider Exceptions
riop.locking = No se permite bloquear la clasificaci\u00f3n
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_fr.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_fr.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
cachedrowsetimpl.accfailed = \u00c9chec de acceptChanges
cachedrowsetimpl.invalidcp = Position du curseur non valide
cachedrowsetimpl.illegalop = Op\u00e9ration non autoris\u00e9e sur ligne non ins\u00e9r\u00e9e
-cachedrowsetimpl.clonefail = \u00c9chec du clonage :
+cachedrowsetimpl.clonefail = \u00c9chec du clonage : {0}
cachedrowsetimpl.invalidcol = Index de colonne non valide
cachedrowsetimpl.invalcolnm = Nom de colonne non valide
cachedrowsetimpl.boolfail = \u00c9chec de getBoolen pour la valeur ({0}) de la colonne {1}
@@ -41,11 +41,11 @@
cachedrowsetimpl.longfail = \u00c9chec de getLong pour la valeur ({0}) de la colonne {1}
cachedrowsetimpl.floatfail = \u00c9chec de getFloat pour la valeur ({0}) de la colonne {1}
cachedrowsetimpl.doublefail = \u00c9chec de getDouble pour la valeur ({0}) de la colonne {1}
-cachedrowsetimpl.dtypemismt = Le type de donn\u00e9es ne correspond pas
+cachedrowsetimpl.dtypemismt = Le type de donn\u00e9es ne correspond pas
cachedrowsetimpl.datefail = \u00c9chec de getDate pour la valeur ({0}) de la colonne {1} - Aucune conversion possible
cachedrowsetimpl.timefail = \u00c9chec de getDate pour la valeur ({0}) de la colonne {1} - Aucune conversion possible
cachedrowsetimpl.posupdate = Mises \u00e0 jour choisies non prises en charge
-cachedrowsetimpl.unableins = Instanciation impossible :
+cachedrowsetimpl.unableins = Instanciation impossible : {0}
cachedrowsetimpl.beforefirst = beforeFirst : op\u00e9ration de curseur non valide
cachedrowsetimpl.first = First : op\u00e9ration de curseur non valide
cachedrowsetimpl.last = last : TYPE_FORWARD_ONLY
@@ -75,7 +75,9 @@
cachedrowsetimpl.pagesize = La taille de la page ne peut pas \u00eatre n\u00e9gative
cachedrowsetimpl.pagesize1 = La taille de la page ne peut pas \u00eatre sup\u00e9rieure \u00e0 maxRows
cachedrowsetimpl.fwdonly = ResultSet est en avant seulement
-cachedrowsetimpl.type = Le type est :
+cachedrowsetimpl.type = Le type est : {0}
+cachedrowsetimpl.opnotysupp = Op\u00e9ration encore non prise en charge
+cachedrowsetimpl.featnotsupp = Fonction non prise en charge
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = Impossible de cr\u00e9er une instance de WebRowSetImpl. Table de hachage null fournie au constructeur
@@ -83,7 +85,7 @@
webrowsetimpl.invalidrd = Lecteur non valide
#FilteredRowSetImpl exceptions
-filteredrowsetimpl.relative = relative : op\u00e9ration de curseur non valide
+filteredrowsetimpl.relative = relative : op\u00e9ration de curseur non valide
filteredrowsetimpl.absolute = absolute : op\u00e9ration de curseur non valide
filteredrowsetimpl.notallowed = Cette valeur n'est pas autoris\u00e9e via le filtre
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = Ce type de jointure n'est pas pris en charge
joinrowsetimpl.initerror = Erreur d'initialisation de JoinRowSet
joinrowsetimpl.genericerr = Erreur initiale g\u00e9n\u00e9rique de JoinRowSet
+joinrowsetimpl.emptyrowset = Impossible d'ajouter un ensemble de lignes vide \u00e0 ce JoinRowSet
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = \u00c9tat non valide
@@ -108,55 +111,57 @@
jdbcrowsetimpl.usecolname = Utilisez le nom de la colonne en argument de unsetMatchColumn
jdbcrowsetimpl.usecolid = Utilisez l'ID de la colonne en argument de unsetMatchColumn
jdbcrowsetimpl.resnotupd = La mise \u00e0 jour de ResultSet est interdite
+jdbcrowsetimpl.opnotysupp = Op\u00e9ration encore non prise en charge
+jdbcrowsetimpl.featnotsupp = Fonction non prise en charge
#CachedRowSetReader exceptions
crsreader.connect = Impossible de connecter (JNDI)
crsreader.paramtype = Impossible de d\u00e9duire le type de param\u00e8tre
+crsreader.connecterr = Erreur interne dans RowSetReader\u00a0: aucune connexion ou commande
+crsreader.datedetected = Date d\u00e9tect\u00e9e
+crsreader.caldetected = Calendrier d\u00e9tect\u00e9
#CachedRowSetWriter exceptions
crswriter.connect = Impossible d'obtenir la connexion
crswriter.tname = writeData ne peut pas d\u00e9terminer le nom du tableau
-crswriter.params1 = Valeur de params1 :
-crswriter.params2 = Valeur de params2 :
+crswriter.params1 = Valeur de params1 : {0}
+crswriter.params2 = Valeur de params2 : {0}
+crswriter.conflictsno = Conflits au cours de la synchronisation
#InsertRow exceptions
insertrow.novalue = Aucune valeur n'a \u00e9t\u00e9 ins\u00e9r\u00e9e
#SyncResolverImpl exceptions
-syncrsimpl.indexval = Valeur d'index hors plage
+syncrsimpl.indexval = Valeur d'index hors plage
syncrsimpl.noconflict = Cette colonne n'est pas en conflit
syncrsimpl.syncnotpos = La synchronisation est impossible
syncrsimpl.valtores = La valeur \u00e0 r\u00e9soudre peut \u00eatre soit dans la base de donn\u00e9es soit dans CachedrowSet
#WebRowSetXmlReader exception
wrsxmlreader.invalidcp = Fin de RowSet atteinte. Position de curseur non valide
-wrsxmlreader.readxml = readXML :
+wrsxmlreader.readxml = readXML : {0}
wrsxmlreader.parseerr = ** Erreur d'analyse
-wrsxmlreader.line = , ligne
-wrsxmlreader.uri = , uri
#WebRowSetXmlWriter exceptions
-wrsxmlwriter.ioex = IOException :
-wrsxmlwriter.sqlex = SQLException :
+wrsxmlwriter.ioex = IOException : {0}
+wrsxmlwriter.sqlex = SQLException : {0}
wrsxmlwriter.failedwrite = \u00c9chec d'\u00e9criture de la valeur
wsrxmlwriter.notproper = N'est pas un type correct
-#XmlReaderContentHandle exceptions
-xmlrch.errmap = Erreur lors de la d\u00e9finition de Map :
-xmlrch.errmetadata = Erreur lors de la d\u00e9finition des m\u00e9tadonn\u00e9es :
-xmlrch.errinsert = Erreur lors de l'insertion des valeurs :
-xmlrch.errconstr = Erreur lors de la construction de la ligne :
-xmlrch.errdel = Erreur lors de la suppression de la ligne :
-xmlrch.errinsert = Erreur lors de la construction de la ligne \u00e0 ins\u00e9rer :
-xmlrch.errinsdel = Erreur lors de la construction de la ligne insdel :
-xmlrch.errupdate = Erreur lors de la construction de la ligne \u00e0 mettre \u00e0 jour :
-xmlrch errupdrow = Erreur lors de la mise \u00e0 jour de la ligne :
+#XmlReaderContentHandler exceptions
+xmlrch.errmap = Erreur lors de la d\u00e9finition de Map : {0}
+xmlrch.errmetadata = Erreur lors de la d\u00e9finition des m\u00e9tadonn\u00e9es : {0}
+xmlrch.errinsert = Erreur lors de l''insertion des valeurs : {0}
+xmlrch.errconstr = Erreur lors de la construction de la ligne : {0}
+xmlrch.errdel = Erreur lors de la suppression de la ligne : {0}
+xmlrch.errinsert = Erreur lors de la construction de la ligne \u00e0 ins\u00e9rer : {0}
+xmlrch.errinsdel = Erreur lors de la construction de la ligne insdel : {0}
+xmlrch.errupdate = Erreur lors de la construction de la ligne \u00e0 mettre \u00e0 jour : {0}
+xmlrch.errupdrow = Erreur lors de la mise \u00e0 jour de la ligne\u00a0: {0}
xmlrch.chars = caract\u00e8res :
xmlrch.badvalue = Valeur incorrecte ; null impossible pour cette propri\u00e9t\u00e9
xmlrch.badvalue1 = Valeur incorrecte ; null impossible pour ces m\u00e9tadonn\u00e9es
-xmlrch.warning = ** Avertissement
-xmlrch.line = , ligne
-xmlrch.uri = , uri
+xmlrch.warning = ** Avertissement
#RIOptimisticProvider Exceptions
riop.locking = Le verrouillage de la classification n'est pas pris en charge
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_it.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_it.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@
cachedrowsetimpl.longfail = getLong non riuscito per il valore ( {0} ) nella colonna {1}
cachedrowsetimpl.floatfail = getFloat non riuscito per il valore ( {0} ) nella colonna {1}
cachedrowsetimpl.doublefail = getDouble non riuscito per il valore ( {0} ) nella colonna {1}
-cachedrowsetimpl.dtypemismt = Mancata corrispondenza dei tipi di dati
+cachedrowsetimpl.dtypemismt = Mancata corrispondenza dei tipi di dati
cachedrowsetimpl.datefail = getDate non riuscito per il valore ( {0} ) nella colonna {1}. Nessuna conversione disponibile.
cachedrowsetimpl.timefail = getTime non riuscito per il valore ( {0} ) nella colonna {1}. Nessuna conversione disponibile.
cachedrowsetimpl.posupdate = Aggiornamenti posizionati non supportati
@@ -76,6 +76,8 @@
cachedrowsetimpl.pagesize1 = La dimensione della pagina non pu\u00f2 essere superiore a maxRows
cachedrowsetimpl.fwdonly = ResultSet \u00e8 a solo inoltro
cachedrowsetimpl.type = Il tipo \u00e8: {0}
+cachedrowsetimpl.opnotysupp = Operazione non ancora supportata
+cachedrowsetimpl.featnotsupp = Funzionalit\u00e0 non supportata
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = Impossibile istanziare l'istanza WebRowSetImpl. Tabella hash nulla fornita al costruttore
@@ -83,7 +85,7 @@
webrowsetimpl.invalidrd = Lettore non valido
#FilteredRowSetImpl exceptions
-filteredrowsetimpl.relative = relative: operazione cursore non valida
+filteredrowsetimpl.relative = relative: operazione cursore non valida
filteredrowsetimpl.absolute = absolute: operazione cursore non valida
filteredrowsetimpl.notallowed = Questo valore non \u00e8 consentito nel filtro
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = Questo tipo di unione non \u00e8 supportato
joinrowsetimpl.initerror = Errore di inizializzazione di JoinRowSet
joinrowsetimpl.genericerr = Errore iniziale di joinrowset generico
+joinrowsetimpl.emptyrowset = Impossibile aggiungere un rowset al JoinRowSet corrente
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = Stato non valido
@@ -108,22 +111,28 @@
jdbcrowsetimpl.usecolname = Utilizzare il nome di colonna come argomento per unsetMatchColumn
jdbcrowsetimpl.usecolid = Utilizzare l'ID di colonna come argomento per unsetMatchColumn
jdbcrowsetimpl.resnotupd = ResultSet non \u00e8 aggiornabile
+jdbcrowsetimpl.opnotysupp = Operazione non ancora supportata
+jdbcrowsetimpl.featnotsupp = Funzionalit\u00e0 non supportata
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) Impossibile stabilire una connessione
crsreader.paramtype = Impossibile dedurre il tipo di parametro
+crsreader.connecterr = Errore interno in RowSetReader: nessuna connessione o comando disponibile
+crsreader.datedetected = Data rilevata
+crsreader.caldetected = Calendario rilevato
#CachedRowSetWriter exceptions
crswriter.connect = Impossibile stabilire una connessione
crswriter.tname = writeData non riesce a determinare il nome di tabella
crswriter.params1 = Valore dei parametri 1: {0}
crswriter.params2 = Valore dei parametri 2: {0}
+crswriter.conflictsno = conflitti durante la sincronizzazione
#InsertRow exceptions
insertrow.novalue = Non \u00e8 stato inserito alcun valore
#SyncResolverImpl exceptions
-syncrsimpl.indexval = Il valore di indice non rientra nell'intervallo
+syncrsimpl.indexval = Il valore di indice non rientra nell'intervallo
syncrsimpl.noconflict = Questa colonna non \u00e8 in conflitto
syncrsimpl.syncnotpos = Impossibile eseguire la sincronizzazione
syncrsimpl.valtores = Il valore da risolvere pu\u00f2 essere nel database o in cachedrowset
@@ -132,31 +141,27 @@
wrsxmlreader.invalidcp = Raggiunta la fine di RowSet. Posizione cursore non valida
wrsxmlreader.readxml = readXML: {0}
wrsxmlreader.parseerr = ** Errore di analisi
-wrsxmlreader.line = , linea
-wrsxmlreader.uri = , uri
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException: {0}
-wrsxmlwriter.sqlex = SQLException: {0}
+wrsxmlwriter.sqlex = SQLException: {0}
wrsxmlwriter.failedwrite = Impossibile scrivere il valore
wsrxmlwriter.notproper = Non un tipo corretto
-#XmlReaderContentHandle exceptions
-xmlrch.errmap = Errore durante l'impostazione della mappa: {0}
-xmlrch.errmetadata = Errore durante l'impostazione dei metadati: {0}
-xmlrch.errinsert = Errore durante l'inserimento dei valori: {0}
+#XmlReaderContentHandler exceptions
+xmlrch.errmap = Errore durante l''impostazione della mappa: {0}
+xmlrch.errmetadata = Errore durante l'impostazione dei metadati: {0}
+xmlrch.errinsert = Errore durante l''inserimento dei valori: {0}
xmlrch.errconstr = Errore durante la costruzione della riga: {0}
-xmlrch.errdel = Errore durante l'eliminazione della riga: {0}
+xmlrch.errdel = Errore durante l''eliminazione della riga: {0}
xmlrch.errinsert = Errore durante la costruzione della riga di inserimento: {0}
xmlrch.errinsdel = Errore durante la costruzione della riga insdel: {0}
xmlrch.errupdate = Errore durante la costruzione della riga di aggiornamento: {0}
-xmlrch errupdrow = Errore durante l'aggiornamento della riga: {0}
+xmlrch.errupdrow = Errore durante l''aggiornamento della riga: {0}
xmlrch.chars = caratteri:
xmlrch.badvalue = valore non valido; propriet\u00e0 non annullabile
xmlrch.badvalue1 = valore non valido; metadati non annullabili
-xmlrch.warning = ** Avviso
-xmlrch.line = , linea
-xmlrch.uri = , uri
+xmlrch.warning = ** Avviso
#RIOptimisticProvider Exceptions
riop.locking = La classificazione di blocco non \u00e8 supportata
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties Wed Jul 05 17:10:40 2017 +0200
@@ -41,7 +41,7 @@
cachedrowsetimpl.longfail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getLong \u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002
cachedrowsetimpl.floatfail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getFloat \u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002
cachedrowsetimpl.doublefail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getDouble \u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002
-cachedrowsetimpl.dtypemismt = \u30c7\u30fc\u30bf\u578b\u306e\u30df\u30b9\u30de\u30c3\u30c1
+cachedrowsetimpl.dtypemismt = \u30c7\u30fc\u30bf\u578b\u306e\u30df\u30b9\u30de\u30c3\u30c1
cachedrowsetimpl.datefail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getDate \u304c\u5931\u6557\u3002\u5909\u63db\u3067\u304d\u307e\u305b\u3093\u3002
cachedrowsetimpl.timefail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getTime \u304c\u5931\u6557\u3002\u5909\u63db\u3067\u304d\u307e\u305b\u3093\u3002
cachedrowsetimpl.posupdate = \u4f4d\u7f6e\u6c7a\u3081\u3055\u308c\u305f\u66f4\u65b0\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
@@ -71,11 +71,13 @@
cachedrowsetimpl.unsetmatch2 = unsetMatchColumn \u3078\u306e\u5f15\u6570\u3068\u3057\u3066\u5217 ID \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
cachedrowsetimpl.numrows = \u884c\u6570\u304c\u30bc\u30ed\u307e\u305f\u306f\u30d5\u30a7\u30c3\u30c1\u30b5\u30a4\u30ba\u3088\u308a\u5c0f\u3055\u3044\u3067\u3059\u3002
cachedrowsetimpl.startpos = \u958b\u59cb\u4f4d\u7f6e\u306f\u8ca0\u3067\u306f\u306a\u308a\u307e\u305b\u3093\u3002
-cachedrowsetimpl.nextpage = \u547c\u3073\u51fa\u3057\u524d\u306b\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+cachedrowsetimpl.nextpage = \u547c\u3073\u51fa\u3057\u524d\u306b\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
cachedrowsetimpl.pagesize = \u30da\u30fc\u30b8\u30b5\u30a4\u30ba\u306f\u30bc\u30ed\u3088\u308a\u5c0f\u3055\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002
cachedrowsetimpl.pagesize1 = \u30da\u30fc\u30b8\u30b5\u30a4\u30ba\u306f maxRows \u3088\u308a\u5927\u304d\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002
cachedrowsetimpl.fwdonly = ResultSet \u306f\u9806\u65b9\u5411\u306e\u307f\u3067\u3059\u3002
cachedrowsetimpl.type = \u578b : {0}
+cachedrowsetimpl.opnotysupp = \u3053\u306e\u64cd\u4f5c\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+cachedrowsetimpl.featnotsupp = \u3053\u306e\u6a5f\u80fd\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = WebRowSetImpl \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3067\u304d\u307e\u305b\u3093\u3002\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b null \u306e Hashtable \u304c\u4f7f\u7528\u3055\u308c\u307e\u3057\u305f\u3002
@@ -83,7 +85,7 @@
webrowsetimpl.invalidrd = \u7121\u52b9\u306a\u30ea\u30fc\u30c0\u30fc
#FilteredRowSetImpl exceptions
-filteredrowsetimpl.relative = relative : \u7121\u52b9\u306a\u30ab\u30fc\u30bd\u30eb\u64cd\u4f5c
+filteredrowsetimpl.relative = relative : \u7121\u52b9\u306a\u30ab\u30fc\u30bd\u30eb\u64cd\u4f5c
filteredrowsetimpl.absolute = absolute : \u7121\u52b9\u306a\u30ab\u30fc\u30bd\u30eb\u64cd\u4f5c
filteredrowsetimpl.notallowed = \u3053\u306e\u5024\u306f\u30d5\u30a3\u30eb\u30bf\u3067\u8a31\u5bb9\u3055\u308c\u307e\u305b\u3093\u3002
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = \u3053\u306e\u578b\u306e\u7d50\u5408\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
joinrowsetimpl.initerror = JoinRowSet \u521d\u671f\u5316\u30a8\u30e9\u30fc
joinrowsetimpl.genericerr = \u6c4e\u7528 joinrowset \u306e\u521d\u671f\u30a8\u30e9\u30fc
+joinrowsetimpl.emptyrowset = \u3053\u306e JoinRowSet \u306b\u306f\u7a7a\u306e\u884c\u30bb\u30c3\u30c8\u3092\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3002
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = \u7121\u52b9\u306a\u72b6\u614b
@@ -108,22 +111,28 @@
jdbcrowsetimpl.usecolname = unsetMatchColumn \u3078\u306e\u5f15\u6570\u3068\u3057\u3066\u5217\u540d\u3092\u4f7f\u7528\u3066\u304f\u3060\u3055\u3044\u3002
jdbcrowsetimpl.usecolid = unsetMatchColumn \u3078\u306e\u5f15\u6570\u3068\u3057\u3066\u5217 ID \u3092\u4f7f\u7528\u3066\u304f\u3060\u3055\u3044\u3002
jdbcrowsetimpl.resnotupd = ResultSet \u306f\u66f4\u65b0\u3067\u304d\u307e\u305b\u3093\u3002
+jdbcrowsetimpl.opnotysupp = \u3053\u306e\u64cd\u4f5c\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+jdbcrowsetimpl.featnotsupp = \u3053\u306e\u6a5f\u80fd\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) \u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3002
crsreader.paramtype = \u30d1\u30e9\u30e1\u30fc\u30bf\u578b\u3092\u63a8\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002
+crsreader.connecterr = RowSetReader \u306e\u5185\u90e8\u30a8\u30e9\u30fc: \u5207\u65ad\u3055\u308c\u3066\u3044\u308b\u304b\u307e\u305f\u306f\u30b3\u30de\u30f3\u30c9\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
+crsreader.datedetected = \u65e5\u4ed8\u3092\u691c\u51fa\u3057\u307e\u3057\u305f\u3002
+crsreader.caldetected = \u30ab\u30ec\u30f3\u30c0\u3092\u691c\u51fa\u3057\u307e\u3057\u305f\u3002
#CachedRowSetWriter exceptions
crswriter.connect = \u63a5\u7d9a\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3002
crswriter.tname = writeData \u304c\u8868\u540d\u3092\u5224\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002
crswriter.params1 = params1 \u306e\u5024 : {0}
crswriter.params2 = params2 \u306e\u5024 : {0}
+crswriter.conflictsno = \u540c\u671f\u4e2d\u306b\u885d\u7a81\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
#InsertRow exceptions
insertrow.novalue = \u5024\u306f\u633f\u5165\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
#SyncResolverImpl exceptions
-syncrsimpl.indexval = \u7bc4\u56f2\u5916\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5024
+syncrsimpl.indexval = \u7bc4\u56f2\u5916\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5024
syncrsimpl.noconflict = \u3053\u306e\u5217\u306f\u7af6\u5408\u3057\u3066\u3044\u307e\u305b\u3093\u3002
syncrsimpl.syncnotpos = \u540c\u671f\u3067\u304d\u307e\u305b\u3093\u3002
syncrsimpl.valtores = \u89e3\u6c7a\u3055\u308c\u308b\u5024\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b cachedrowset \u306b\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
@@ -132,31 +141,27 @@
wrsxmlreader.invalidcp = RowSet \u306e\u6700\u5f8c\u306b\u5230\u9054\u3057\u307e\u3057\u305f\u3002\u7121\u52b9\u306a\u30ab\u30fc\u30bd\u30eb\u4f4d\u7f6e
wrsxmlreader.readxml = readXML : {0}
wrsxmlreader.parseerr = ** \u69cb\u6587\u89e3\u6790\u30a8\u30e9\u30fc
-wrsxmlreader.line = , \u884c
-wrsxmlreader.uri = , uri
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException : {0}
-wrsxmlwriter.sqlex = SQLException : {0}
+wrsxmlwriter.sqlex = SQLException : {0}
wrsxmlwriter.failedwrite = \u5024\u306e\u66f8\u304d\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
wsrxmlwriter.notproper = \u9069\u5207\u306a\u578b\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
-#XmlReaderContentHandle exceptions
-xmlrch.errmap = Map \u8a2d\u5b9a\u30a8\u30e9\u30fc : {0}
-xmlrch.errmetadata = \u30e1\u30bf\u30c7\u30fc\u30bf\u8a2d\u5b9a\u30a8\u30e9\u30fc : {0}
+#XmlReaderContentHandler exceptions
+xmlrch.errmap = Map \u8a2d\u5b9a\u30a8\u30e9\u30fc : {0}
+xmlrch.errmetadata = \u30e1\u30bf\u30c7\u30fc\u30bf\u8a2d\u5b9a\u30a8\u30e9\u30fc : {0}
xmlrch.errinsert = \u5024\u306e\u633f\u5165\u30a8\u30e9\u30fc : {0}
xmlrch.errconstr = \u884c\u306e\u751f\u6210\u30a8\u30e9\u30fc : {0}
xmlrch.errdel = \u884c\u306e\u524a\u9664\u30a8\u30e9\u30fc : {0}
xmlrch.errinsert = \u633f\u5165\u884c\u306e\u751f\u6210\u30a8\u30e9\u30fc : {0}
xmlrch.errinsdel = insdel \u884c\u306e\u751f\u6210\u30a8\u30e9\u30fc : {0}
xmlrch.errupdate = \u66f4\u65b0\u884c\u306e\u751f\u6210\u30a8\u30e9\u30fc : {0}
-xmlrch errupdrow = \u884c\u306e\u66f4\u65b0\u30a8\u30e9\u30fc : {0}
+xmlrch.errupdrow = \u884c\u306e\u66f4\u65b0\u30a8\u30e9\u30fc: {0}
xmlrch.chars = \u6587\u5b57 :
-xmlrch.badvalue = \u4e0d\u6b63\u306a\u5024 ; null \u306b\u3067\u304d\u306a\u3044\u30d7\u30ed\u30d1\u30c6\u30a3
+xmlrch.badvalue = \u4e0d\u6b63\u306a\u5024 ; null \u306b\u3067\u304d\u306a\u3044\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc
xmlrch.badvalue1 = \u4e0d\u6b63\u306a\u5024 ; null \u306b\u3067\u304d\u306a\u3044\u30e1\u30bf\u30c7\u30fc\u30bf
-xmlrch.warning = ** \u8b66\u544a
-xmlrch.line = , \u884c
-xmlrch.uri = , uri
+xmlrch.warning = ** \u8b66\u544a
#RIOptimisticProvider Exceptions
riop.locking = \u30ed\u30c3\u30af\u306e\u5206\u985e\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@
cachedrowsetimpl.longfail = \uc5f4 {1}\uc758 \uac12({0})\uc5d0\uc11c getLong\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
cachedrowsetimpl.floatfail = \uc5f4 {1}\uc758 \uac12({0})\uc5d0\uc11c getFloat\uac00 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
cachedrowsetimpl.doublefail = \uc5f4 {1}\uc758 \uac12({0})\uc5d0\uc11c getDouble\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
-cachedrowsetimpl.dtypemismt = \ub370\uc774\ud130 \uc720\ud615\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+cachedrowsetimpl.dtypemismt = \ub370\uc774\ud130 \uc720\ud615\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
cachedrowsetimpl.datefail = \uc5f4 {1}\uc758 \uac12({0})\uc5d0\uc11c getDate\uac00 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ubcc0\ud658\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
cachedrowsetimpl.timefail = \uc5f4 {1}\uc758 \uac12({0})\uc5d0\uc11c getLong\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ubcc0\ud658\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
cachedrowsetimpl.posupdate = \uc704\uce58 \uc9c0\uc815 \uc5c5\ub370\uc774\ud2b8\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
@@ -71,11 +71,13 @@
cachedrowsetimpl.unsetmatch2 = \uc5f4 ID\ub97c unsetMatchColumn\uc758 \uc778\uc218\ub85c \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.
cachedrowsetimpl.numrows = \ud589 \uac1c\uc218\uac00 0\ubcf4\ub2e4 \uc791\uac70\ub098 \ubc18\uc785 \ud06c\uae30\ubcf4\ub2e4 \uc791\uc2b5\ub2c8\ub2e4.
cachedrowsetimpl.startpos = \uc2dc\uc791 \uc704\uce58\ub294 \uc74c\uc218\uc77c \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-cachedrowsetimpl.nextpage = \ud638\ucd9c\ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\ub97c \ucc44\uc6b0\uc2ed\uc2dc\uc624.
+cachedrowsetimpl.nextpage = \ud638\ucd9c\ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\ub97c \ucc44\uc6b0\uc2ed\uc2dc\uc624.
cachedrowsetimpl.pagesize = \ud398\uc774\uc9c0 \ud06c\uae30\ub294 0\ubcf4\ub2e4 \uc791\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
cachedrowsetimpl.pagesize1 = \ud398\uc774\uc9c0 \ud06c\uae30\ub294 maxRows\ubcf4\ub2e4 \ud074 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
cachedrowsetimpl.fwdonly = ResultSet\ub294 \uc804\ub2ec \uc804\uc6a9\uc785\ub2c8\ub2e4.
cachedrowsetimpl.type = \uc720\ud615: {0}
+cachedrowsetimpl.opnotysupp = \uc791\uc5c5\uc774 \uc544\uc9c1 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+cachedrowsetimpl.featnotsupp = \uae30\ub2a5\uc774 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = WebRowSetImpl \uc778\uc2a4\ud134\uc2a4\ub97c \uc778\uc2a4\ud134\uc2a4\ud654\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uad6c\uc131\uc790\uc5d0 \ub110 Hashtable\uc774 \uc81c\uacf5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
@@ -83,7 +85,7 @@
webrowsetimpl.invalidrd = \uc798\ubabb\ub41c \ud310\ub3c5\uae30\uc785\ub2c8\ub2e4.
#FilteredRowSetImpl exceptions
-filteredrowsetimpl.relative = \uc0c1\ub300: \uc798\ubabb\ub41c \ucee4\uc11c \uc791\uc5c5\uc785\ub2c8\ub2e4.
+filteredrowsetimpl.relative = \uc0c1\ub300: \uc798\ubabb\ub41c \ucee4\uc11c \uc791\uc5c5\uc785\ub2c8\ub2e4.
filteredrowsetimpl.absolute = \uc808\ub300: \uc798\ubabb\ub41c \ucee4\uc11c \uc791\uc5c5\uc785\ub2c8\ub2e4.
filteredrowsetimpl.notallowed = \uc774 \uac12\uc740 \ud544\ud130\ub97c \ud1b5\uacfc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = \uc774 \uacb0\ud569 \uc720\ud615\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
joinrowsetimpl.initerror = JoinRowSet \ucd08\uae30\ud654 \uc624\ub958
joinrowsetimpl.genericerr = \uc77c\ubc18 joinrowset \ucd08\uae30 \uc624\ub958
+joinrowsetimpl.emptyrowset = \uc774 JoinRowSet\uc5d0 \ube48 rowset\uc744 \ucd94\uac00\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = \uc798\ubabb\ub41c \uc0c1\ud0dc\uc785\ub2c8\ub2e4.
@@ -108,22 +111,28 @@
jdbcrowsetimpl.usecolname = \uc5f4 \uc774\ub984\uc744 unsetMatchColumn\uc758 \uc778\uc218\ub85c \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.
jdbcrowsetimpl.usecolid = \uc5f4 ID\ub97c unsetMatchColumn\uc758 \uc778\uc218\ub85c \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.
jdbcrowsetimpl.resnotupd = ResultSet\uc740 \uc5c5\ub370\uc774\ud2b8\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+jdbcrowsetimpl.opnotysupp = \uc791\uc5c5\uc774 \uc544\uc9c1 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+jdbcrowsetimpl.featnotsupp = \uae30\ub2a5\uc774 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
crsreader.paramtype = \ub9e4\uac1c \ubcc0\uc218 \uc720\ud615\uc744 \ucd94\ub860\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+crsreader.connecterr = RowSetReader \ub0b4\ubd80 \uc624\ub958: \uc5f0\uacb0 \ub610\ub294 \uba85\ub839\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+crsreader.datedetected = \ub0a0\uc9dc\uac00 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+crsreader.caldetected = \ub2ec\ub825\uc774 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
#CachedRowSetWriter exceptions
crswriter.connect = \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
crswriter.tname = writeData\uc5d0\uc11c \ud14c\uc774\ube14 \uc774\ub984\uc744 \ud655\uc778\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-crswriter.params1 = params1\uc758 \uac12: {0}
-crswriter.params2 = params2\uc758 \uac12: {0}
+crswriter.params1 = params1\uc758 \uac12: {0}
+crswriter.params2 = params2\uc758 \uac12: {0}
+crswriter.conflictsno = \ub3d9\uae30\ud654\ud558\ub294 \ub3d9\uc548 \ucda9\ub3cc\ud569\ub2c8\ub2e4.
#InsertRow exceptions
insertrow.novalue = \uac12\uc774 \uc0bd\uc785\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
#SyncResolverImpl exceptions
-syncrsimpl.indexval = \uc0c9\uc778 \uac12\uc774 \ubc94\uc704\ub97c \ubc97\uc5b4\ub0ac\uc2b5\ub2c8\ub2e4.
+syncrsimpl.indexval = \uc0c9\uc778 \uac12\uc774 \ubc94\uc704\ub97c \ubc97\uc5b4\ub0ac\uc2b5\ub2c8\ub2e4.
syncrsimpl.noconflict = \uc774 \uc5f4\uc740 \ucda9\ub3cc\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
syncrsimpl.syncnotpos = \ub3d9\uae30\ud654\ub97c \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
syncrsimpl.valtores = \ud655\uc778\ud560 \uac12\uc774 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub098 cachedrowset\uc5d0 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
@@ -132,31 +141,27 @@
wrsxmlreader.invalidcp = RowSet\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uc2b5\ub2c8\ub2e4. \uc798\ubabb\ub41c \ucee4\uc11c \uc704\uce58\uc785\ub2c8\ub2e4.
wrsxmlreader.readxml = readXML: {0}
wrsxmlreader.parseerr = ** \uad6c\ubb38 \ubd84\uc11d \uc624\ub958
-wrsxmlreader.line = , \uc904
-wrsxmlreader.uri = , uri
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException: {0}
-wrsxmlwriter.sqlex = SQLException: {0}
+wrsxmlwriter.sqlex = SQLException: {0}
wrsxmlwriter.failedwrite = \uac12\uc744 \uc4f0\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
wsrxmlwriter.notproper = \uc62c\ubc14\ub978 \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4.
-#XmlReaderContentHandle exceptions
-xmlrch.errmap = \ub9e4\ud551\uc744 \uc124\uc815\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
-xmlrch.errmetadata = \uba54\ud0c0\ub370\uc774\ud130\ub97c \uc124\uc815\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
-xmlrch.errinsert = \uac12\uc744 \uc0bd\uc785\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
+#XmlReaderContentHandler exceptions
+xmlrch.errmap = \ub9e4\ud551\uc744 \uc124\uc815\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
+xmlrch.errmetadata = \uba54\ud0c0\ub370\uc774\ud130\ub97c \uc124\uc815\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
+xmlrch.errinsert = \ub2e4\uc74c \uac12\uc744 \uc0bd\uc785\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd : {0}
xmlrch.errconstr = \ud589\uc744 \ub9cc\ub4dc\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
xmlrch.errdel = \ud589\uc744 \uc81c\uac70\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
xmlrch.errinsert = insert \ud589\uc744 \ub9cc\ub4dc\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
xmlrch.errinsdel = insdel \ud589\uc744 \ub9cc\ub4dc\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
xmlrch.errupdate = update \ud589\uc744 \ub9cc\ub4dc\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
-xmlrch errupdrow = \ud589\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
+xmlrch.errupdrow = \ud589 \uc5c5\ub370\uc774\ud2b8 \uc624\ub958: {0}
xmlrch.chars = \ubb38\uc790:
xmlrch.badvalue = \uc798\ubabb\ub41c \uac12; \ub110\uc77c \uc218 \uc5c6\ub294 \ub4f1\ub85d \uc815\ubcf4
xmlrch.badvalue1 = \uc798\ubabb\ub41c \uac12; \ub110\uc77c \uc218 \uc5c6\ub294 \uba54\ud0c0\ub370\uc774\ud130
-xmlrch.warning = ** \uacbd\uace0
-xmlrch.line = , \uc904
-xmlrch.uri = , uri
+xmlrch.warning = ** \uacbd\uace0
#RIOptimisticProvider Exceptions
riop.locking = \ub4f1\uae09 \uc7a0\uae08\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@
cachedrowsetimpl.longfail = getLong misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}
cachedrowsetimpl.floatfail = getFloat misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}
cachedrowsetimpl.doublefail = getDouble misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}
-cachedrowsetimpl.dtypemismt = Inkompatibel datatyp
+cachedrowsetimpl.dtypemismt = Inkompatibel datatyp
cachedrowsetimpl.datefail = getDate misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}, ingen konvertering tillg\u00e4nglig
cachedrowsetimpl.timefail = getTime misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}, ingen konvertering tillg\u00e4nglig
cachedrowsetimpl.posupdate = Det finns inte st\u00f6d f\u00f6r positionerad uppdatering
@@ -71,11 +71,13 @@
cachedrowsetimpl.unsetmatch2 = Anv\u00e4nd kolumnn-id som argument f\u00f6r unsetMatchColumn
cachedrowsetimpl.numrows = Antalet rader understiger noll eller \u00e4r mindre \u00e4n h\u00e4mtningsstorleken
cachedrowsetimpl.startpos = Startpositionen f\u00e5r inte vara negativ
-cachedrowsetimpl.nextpage = Fyll i data innan anrop
+cachedrowsetimpl.nextpage = Fyll i data innan anrop
cachedrowsetimpl.pagesize = Sidstorleken f\u00e5r inte understiga noll
cachedrowsetimpl.pagesize1 = Sidstorleken f\u00e5r inte \u00f6verstiga maxRows
cachedrowsetimpl.fwdonly = ResultSet kan endast g\u00e5 fram\u00e5t
cachedrowsetimpl.type = Typ: {0}
+cachedrowsetimpl.opnotysupp = Det finns \u00e4nnu inte st\u00f6d f\u00f6r \u00e5tg\u00e4rden
+cachedrowsetimpl.featnotsupp = Funktionen st\u00f6ds inte
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = Det g\u00e5r inte att skapa instansen WebRowSetImpl. Tom hashtabell skickades till konstrukt\u00f6r.
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = Det finns inget st\u00f6d f\u00f6r denna kopplingstyp
joinrowsetimpl.initerror = Initieringsfel f\u00f6r JoinRowSet
joinrowsetimpl.genericerr = Allm\u00e4nt initieringsfel f\u00f6r JoinRowSet
+joinrowsetimpl.emptyrowset = Det g\u00e5r inte att l\u00e4gga till tom rowset i denna JoinRowSet
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = Ogiltig status
@@ -108,22 +111,28 @@
jdbcrowsetimpl.usecolname = Anv\u00e4nd kolumnnamn som argument f\u00f6r unsetMatchColumn
jdbcrowsetimpl.usecolid = Anv\u00e4nd kolumnn-id som argument f\u00f6r unsetMatchColumn
jdbcrowsetimpl.resnotupd = ResultSet \u00e4r inte uppdateringsbart
+jdbcrowsetimpl.opnotysupp = Det finns \u00e4nnu inte st\u00f6d f\u00f6r \u00e5tg\u00e4rden
+jdbcrowsetimpl.featnotsupp = Funktionen st\u00f6ds inte
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) kan inte anslutas
crsreader.paramtype = Det g\u00e5r inte att fastst\u00e4lla parametertypen
+crsreader.connecterr = Internfel i RowSetReader: ingen anslutning eller inget kommando
+crsreader.datedetected = Ett datum uppt\u00e4cktes
+crsreader.caldetected = En kalender uppt\u00e4cktes
#CachedRowSetWriter exceptions
crswriter.connect = Det g\u00e5r inte att uppr\u00e4tta n\u00e5gon anslutning
crswriter.tname = writeData kan inte fastst\u00e4lla tabellnamnet
crswriter.params1 = Parameterv\u00e4rde1: {0}
crswriter.params2 = Parameterv\u00e4rde2: {0}
+crswriter.conflictsno = konflikter uppstod vid synkronisering
#InsertRow exceptions
insertrow.novalue = Inget v\u00e4rde har infogats
#SyncResolverImpl exceptions
-syncrsimpl.indexval = Indexv\u00e4rdet ligger utanf\u00f6r intervallet
+syncrsimpl.indexval = Indexv\u00e4rdet ligger utanf\u00f6r intervallet
syncrsimpl.noconflict = Denna kolumn st\u00e5r inte i konflikt
syncrsimpl.syncnotpos = Synkronisering \u00e4r inte m\u00f6jlig
syncrsimpl.valtores = V\u00e4rdet som ska analyseras kan antingen finnas i databasen eller i cachedrowset
@@ -132,31 +141,27 @@
wrsxmlreader.invalidcp = Slutet p\u00e5 RowSet har n\u00e5tts. Mark\u00f6rpositionen \u00e4r ogiltig.
wrsxmlreader.readxml = readXML: {0}
wrsxmlreader.parseerr = ** Tolkningsfel
-wrsxmlreader.line = , rad
-wrsxmlreader.uri = , URI
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException: {0}
-wrsxmlwriter.sqlex = SQLException: {0}
+wrsxmlwriter.sqlex = SQLException: {0}
wrsxmlwriter.failedwrite = Det gick inte att skriva v\u00e4rdet
wsrxmlwriter.notproper = Ingen riktig typ
-#XmlReaderContentHandle exceptions
-xmlrch.errmap = Ett fel uppstod vid inst\u00e4llningen av f\u00f6ljande bild: {0}
-xmlrch.errmetadata = Ett fel uppstod vid inst\u00e4llningen av f\u00f6ljande metadata: {0}
+#XmlReaderContentHandler exceptions
+xmlrch.errmap = Ett fel uppstod vid inst\u00e4llningen av f\u00f6ljande bild: {0}
+xmlrch.errmetadata = Ett fel uppstod vid inst\u00e4llningen av f\u00f6ljande metadata: {0}
xmlrch.errinsert = Ett fel uppstod n\u00e4r f\u00f6ljande v\u00e4rden skulle infogas: {0}
xmlrch.errconstr = Ett fel uppstod n\u00e4r f\u00f6ljande rad skulle skapas: {0}
xmlrch.errdel = Ett fel uppstod n\u00e4r f\u00f6ljande rad skulle raderas: {0}
xmlrch.errinsert = Ett fel uppstod n\u00e4r f\u00f6ljande infogningsrad skulle skapas: {0}
xmlrch.errinsdel = Ett fel uppstod n\u00e4r raden insdel skulle skapas: {0}
xmlrch.errupdate = Ett fel uppstod n\u00e4r f\u00f6ljande uppdateringsrad skulle skapas: {0}
-xmlrch errupdrow = Ett fel uppstod n\u00e4r f\u00f6ljande rad skulle uppdateras: {0}
+xmlrch.errupdrow = Det gick inte att uppdatera raden: {0}
xmlrch.chars = tecken:
xmlrch.badvalue = Felaktigt v\u00e4rde; egenskapen kan inte ha ett tomt v\u00e4rde
xmlrch.badvalue1 = Felaktigt v\u00e4rde; metadatan kan inte ha ett tomt v\u00e4rde
-xmlrch.warning = ** Varning!
-xmlrch.line = , rad
-xmlrch.uri = , URI
+xmlrch.warning = ** Varning!
#RIOptimisticProvider Exceptions
riop.locking = Det finns inte st\u00f6d f\u00f6r denna l\u00e5sningsklassifikation
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_CN.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_CN.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@
cachedrowsetimpl.longfail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getLong \u5931\u8d25
cachedrowsetimpl.floatfail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getFloat \u5931\u8d25
cachedrowsetimpl.doublefail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getDouble \u5931\u8d25
-cachedrowsetimpl.dtypemismt = \u6570\u636e\u7c7b\u578b\u4e0d\u5339\u914d
+cachedrowsetimpl.dtypemismt = \u6570\u636e\u7c7b\u578b\u4e0d\u5339\u914d
cachedrowsetimpl.datefail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getDate \u5931\u8d25\uff0c\u65e0\u53ef\u7528\u8f6c\u6362
cachedrowsetimpl.timefail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getTime \u5931\u8d25\uff0c\u65e0\u53ef\u7528\u8f6c\u6362
cachedrowsetimpl.posupdate = \u4e0d\u652f\u6301\u5b9a\u4f4d\u66f4\u65b0
@@ -71,11 +71,13 @@
cachedrowsetimpl.unsetmatch2 = \u4f7f\u7528\u5217 ID \u4f5c\u4e3a unsetMatchColumn \u7684\u53c2\u6570
cachedrowsetimpl.numrows = \u884c\u6570\u5c0f\u4e8e\u96f6\u6216\u5c0f\u4e8e\u8981\u63d0\u53d6\u7684\u884c\u6570
cachedrowsetimpl.startpos = \u8d77\u59cb\u4f4d\u7f6e\u4e0d\u80fd\u4e3a\u8d1f\u6570
-cachedrowsetimpl.nextpage = \u5728\u8c03\u7528\u4e4b\u524d\u5148\u586b\u5145\u6570\u636e
+cachedrowsetimpl.nextpage = \u5728\u8c03\u7528\u4e4b\u524d\u5148\u586b\u5145\u6570\u636e
cachedrowsetimpl.pagesize = \u9875\u9762\u5927\u5c0f\u4e0d\u80fd\u5c0f\u4e8e\u96f6
cachedrowsetimpl.pagesize1 = \u9875\u9762\u5927\u5c0f\u4e0d\u80fd\u5927\u4e8e maxRows
cachedrowsetimpl.fwdonly = ResultSet \u7684\u7c7b\u578b\u4e3a\u4ec5\u5411\u524d\u7c7b\u578b
cachedrowsetimpl.type = \u7c7b\u578b\u4e3a: {0}
+cachedrowsetimpl.opnotysupp = \u5c1a\u4e0d\u652f\u6301\u64cd\u4f5c
+cachedrowsetimpl.featnotsupp = \u4e0d\u652f\u6301\u529f\u80fd
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = \u65e0\u6cd5\u5b9e\u4f8b\u5316 WebRowSetImpl \u5b9e\u4f8b\u3002\u63d0\u4f9b\u7ed9\u6784\u9020\u51fd\u6570\u7684 Hashtable \u4e3a Null
@@ -83,7 +85,7 @@
webrowsetimpl.invalidrd = \u8bfb\u53d6\u5668\u65e0\u6548
#FilteredRowSetImpl exceptions
-filteredrowsetimpl.relative = relative: \u5149\u6807\u64cd\u4f5c\u65e0\u6548
+filteredrowsetimpl.relative = relative: \u5149\u6807\u64cd\u4f5c\u65e0\u6548
filteredrowsetimpl.absolute = absolute: \u5149\u6807\u64cd\u4f5c\u65e0\u6548
filteredrowsetimpl.notallowed = \u4e0d\u5141\u8bb8\u6b64\u503c\u901a\u8fc7\u8fc7\u6ee4\u5668
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = \u4e0d\u652f\u6301\u6b64\u8fde\u63a5\u7c7b\u578b
joinrowsetimpl.initerror = JoinRowSet \u521d\u59cb\u5316\u9519\u8bef
joinrowsetimpl.genericerr = \u4e00\u822c JoinRowSet \u521d\u59cb\u5316\u9519\u8bef
+joinrowsetimpl.emptyrowset = \u65e0\u6cd5\u5c06\u7a7a\u7684 rowset \u6dfb\u52a0\u5230\u6b64 JoinRowSet
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = \u72b6\u6001\u65e0\u6548
@@ -108,22 +111,28 @@
jdbcrowsetimpl.usecolname = \u4f7f\u7528\u5217\u540d\u4f5c\u4e3a unsetMatchColumn \u7684\u53c2\u6570
jdbcrowsetimpl.usecolid = \u4f7f\u7528\u5217 ID \u4f5c\u4e3a unsetMatchColumn \u7684\u53c2\u6570
jdbcrowsetimpl.resnotupd = ResultSet \u4e0d\u53ef\u66f4\u65b0
+jdbcrowsetimpl.opnotysupp = \u5c1a\u4e0d\u652f\u6301\u64cd\u4f5c
+jdbcrowsetimpl.featnotsupp = \u4e0d\u652f\u6301\u529f\u80fd
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) \u65e0\u6cd5\u8fde\u63a5
crsreader.paramtype = \u65e0\u6cd5\u63a8\u65ad\u53c2\u6570\u7c7b\u578b
+crsreader.connecterr = RowSetReader \u53d1\u751f\u5185\u90e8\u9519\u8bef\uff1a\u6ca1\u6709\u8fde\u63a5\u6216\u547d\u4ee4
+crsreader.datedetected = \u68c0\u6d4b\u5230\u65e5\u671f
+crsreader.caldetected = \u68c0\u6d4b\u5230\u65e5\u5386
#CachedRowSetWriter exceptions
crswriter.connect = \u65e0\u6cd5\u8fdb\u884c\u8fde\u63a5
crswriter.tname = writeData \u65e0\u6cd5\u786e\u5b9a\u8868\u540d
crswriter.params1 = params1 \u7684\u503c: {0}
crswriter.params2 = params2 \u7684\u503c: {0}
+crswriter.conflictsno = \u540c\u6b65\u65f6\u53d1\u751f\u51b2\u7a81
#InsertRow exceptions
insertrow.novalue = \u5c1a\u672a\u63d2\u5165\u4efb\u4f55\u503c
#SyncResolverImpl exceptions
-syncrsimpl.indexval = \u7d22\u5f15\u503c\u8d85\u51fa\u8303\u56f4
+syncrsimpl.indexval = \u7d22\u5f15\u503c\u8d85\u51fa\u8303\u56f4
syncrsimpl.noconflict = \u6b64\u5217\u4e0d\u51b2\u7a81
syncrsimpl.syncnotpos = \u4e0d\u80fd\u540c\u6b65
syncrsimpl.valtores = \u8981\u89e3\u6790\u7684\u503c\u53ef\u4ee5\u5728\u6570\u636e\u5e93\u4e2d\uff0c\u4e5f\u53ef\u4ee5\u5728 CachedRowSet \u4e2d
@@ -132,37 +141,30 @@
wrsxmlreader.invalidcp = \u5df2\u5230\u8fbe RowSet \u7684\u7ed3\u5c3e\u3002\u5149\u6807\u4f4d\u7f6e\u65e0\u6548
wrsxmlreader.readxml = readXML: {0}
wrsxmlreader.parseerr = ** \u8bed\u6cd5\u89e3\u6790\u9519\u8bef
-wrsxmlreader.line = \uff0c\u884c
-wrsxmlreader.uri = \uff0curi
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException: {0}
-wrsxmlwriter.sqlex = SQLException: {0}
+wrsxmlwriter.sqlex = SQLException: {0}
wrsxmlwriter.failedwrite = \u65e0\u6cd5\u5199\u5165\u503c
wsrxmlwriter.notproper = \u7c7b\u578b\u4e0d\u6b63\u786e
-#XmlReaderContentHandle exceptions
-xmlrch.errmap = \u8bbe\u7f6e\u6620\u5c04\u65f6\u51fa\u9519: {0}
-xmlrch.errmetadata = \u8bbe\u7f6e\u5143\u6570\u636e\u65f6\u51fa\u9519: {0}
+#XmlReaderContentHandler exceptions
+xmlrch.errmap = \u8bbe\u7f6e\u6620\u5c04\u65f6\u51fa\u9519: {0}
+xmlrch.errmetadata = \u8bbe\u7f6e\u5143\u6570\u636e\u65f6\u51fa\u9519: {0}
xmlrch.errinsert = \u63d2\u5165\u503c\u65f6\u51fa\u9519: {0}
xmlrch.errconstr = \u6784\u9020\u884c\u65f6\u51fa\u9519: {0}
xmlrch.errdel = \u5220\u9664\u884c\u65f6\u51fa\u9519: {0}
xmlrch.errinsert = \u6784\u9020\u63d2\u5165\u884c\u65f6\u51fa\u9519: {0}
xmlrch.errinsdel = \u6784\u9020 insdel \u884c\u65f6\u51fa\u9519: {0}
xmlrch.errupdate = \u6784\u9020\u66f4\u65b0\u884c\u65f6\u51fa\u9519: {0}
-xmlrch errupdrow = \u66f4\u65b0\u884c\u65f6\u51fa\u9519: {0}
+xmlrch.errupdrow = \u66f4\u65b0\u884c\u65f6\u51fa\u9519\uff1a{0}
xmlrch.chars = \u5b57\u7b26:
xmlrch.badvalue = \u503c\u9519\u8bef\uff1b\u5c5e\u6027\u4e0d\u53ef\u4e3a Null
xmlrch.badvalue1 = \u503c\u9519\u8bef\uff1b\u5143\u6570\u636e\u4e0d\u53ef\u4e3a Null
-xmlrch.warning = ** \u8b66\u544a
-xmlrch.line = \uff0c\u884c
-xmlrch.uri = \uff0curi
+xmlrch.warning = ** \u8b66\u544a
#RIOptimisticProvider Exceptions
riop.locking = \u4e0d\u652f\u6301\u9501\u5b9a\u5206\u7c7b
#RIXMLProvider exceptions
rixml.unsupp = \u4e0d\u652f\u6301 RIXMLProvider
-
-
-
--- a/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_TW.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_TW.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@
cachedrowsetimpl.longfail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getLong \u5931\u6557
cachedrowsetimpl.floatfail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getFloat \u5931\u6557
cachedrowsetimpl.doublefail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getDouble \u5931\u6557
-cachedrowsetimpl.dtypemismt = \u8cc7\u6599\u985e\u578b\u4e0d\u5339\u914d
+cachedrowsetimpl.dtypemismt = \u8cc7\u6599\u985e\u578b\u4e0d\u5339\u914d
cachedrowsetimpl.datefail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getDate \u5931\u6557\uff0c\u672a\u9032\u884c\u8f49\u63db
cachedrowsetimpl.timefail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getTime \u5931\u6557\uff0c\u672a\u9032\u884c\u8f49\u63db
cachedrowsetimpl.posupdate = \u4e0d\u652f\u63f4\u5b9a\u4f4d\u7684\u66f4\u65b0
@@ -71,11 +71,13 @@
cachedrowsetimpl.unsetmatch2 = \u4f7f\u7528\u6b04 ID \u505a\u70ba unsetMatchColumn \u7684\u5f15\u6578
cachedrowsetimpl.numrows = \u5217\u6578\u5c0f\u65bc\u96f6\u6216\u5c0f\u65bc\u64f7\u53d6\u5927\u5c0f
cachedrowsetimpl.startpos = \u8d77\u59cb\u4f4d\u7f6e\u4e0d\u80fd\u70ba\u8ca0
-cachedrowsetimpl.nextpage = \u5728\u547c\u53eb\u4e4b\u524d\u690d\u5165\u8cc7\u6599
+cachedrowsetimpl.nextpage = \u5728\u547c\u53eb\u4e4b\u524d\u690d\u5165\u8cc7\u6599
cachedrowsetimpl.pagesize = \u9801\u9762\u5927\u5c0f\u4e0d\u80fd\u5c0f\u65bc\u96f6
cachedrowsetimpl.pagesize1 = \u9801\u9762\u5927\u5c0f\u4e0d\u80fd\u5927\u65bc maxRows
cachedrowsetimpl.fwdonly = ResultSet \u53ea\u80fd\u5411\u524d\u9032\u884c
cachedrowsetimpl.type = \u985e\u578b\u662f\uff1a{0}
+cachedrowsetimpl.opnotysupp = \u5c1a\u672a\u652f\u63f4\u6b64\u4f5c\u696d
+cachedrowsetimpl.featnotsupp = \u4e0d\u652f\u63f4\u6b64\u529f\u80fd
# WebRowSetImpl exceptions
webrowsetimpl.nullhash = \u7121\u6cd5\u5275\u8a2d WebRowSetImpl \u5be6\u4f8b\u3002\u70ba\u5efa\u69cb\u5b50\u63d0\u4f9b\u7684 Hashtable \u70ba\u7a7a
@@ -83,7 +85,7 @@
webrowsetimpl.invalidrd = \u8b80\u53d6\u5668\u7121\u6548
#FilteredRowSetImpl exceptions
-filteredrowsetimpl.relative = relative\uff1a\u6e38\u6a19\u4f5c\u696d\u7121\u6548
+filteredrowsetimpl.relative = relative\uff1a\u6e38\u6a19\u4f5c\u696d\u7121\u6548
filteredrowsetimpl.absolute = absolute\uff1a\u6e38\u6a19\u4f5c\u696d\u7121\u6548
filteredrowsetimpl.notallowed = \u4e0d\u5141\u8a31\u6b64\u503c\u901a\u904e\u904e\u6ffe\u5668
@@ -95,6 +97,7 @@
joinrowsetimpl.notsupported = \u4e0d\u652f\u63f4\u6b64\u985e\u9023\u7d50
joinrowsetimpl.initerror = JoinRowSet \u521d\u59cb\u5316\u932f\u8aa4
joinrowsetimpl.genericerr = \u5e38\u898f\u7684 joinrowset \u521d\u59cb\u5316\u932f\u8aa4
+joinrowsetimpl.emptyrowset = \u4e0d\u53ef\u5c07\u7a7a\u767d\u7684 rowset \u589e\u52a0\u81f3\u6b64 JoinRowSet
#JdbcRowSetImpl exceptions
jdbcrowsetimpl.invalstate = \u72c0\u614b\u7121\u6548
@@ -108,22 +111,28 @@
jdbcrowsetimpl.usecolname = \u4f7f\u7528\u6b04\u540d\u505a\u70ba unsetMatchColumn \u7684\u5f15\u6578
jdbcrowsetimpl.usecolid = \u4f7f\u7528\u6b04 ID \u505a\u70ba unsetMatchColumn \u7684\u5f15\u6578
jdbcrowsetimpl.resnotupd = ResultSet \u4e0d\u53ef\u66f4\u65b0
+jdbcrowsetimpl.opnotysupp = \u5c1a\u672a\u652f\u63f4\u6b64\u4f5c\u696d
+jdbcrowsetimpl.featnotsupp = \u4e0d\u652f\u63f4\u6b64\u529f\u80fd
#CachedRowSetReader exceptions
crsreader.connect = (JNDI) \u7121\u6cd5\u9023\u7dda
crsreader.paramtype = \u7121\u6cd5\u63a8\u65b7\u53c3\u6578\u985e\u578b
+crsreader.connecterr = RowSetReader \u767c\u751f\u5167\u90e8\u932f\u8aa4\uff1a\u6c92\u6709\u9023\u7dda\u6216\u6307\u4ee4
+crsreader.datedetected = \u5075\u6e2c\u5230\u65e5\u671f
+crsreader.caldetected = \u5075\u6e2c\u5230\u884c\u4e8b\u66c6
#CachedRowSetWriter exceptions
crswriter.connect = \u7121\u6cd5\u5efa\u7acb\u9023\u7dda
crswriter.tname = writeData \u4e0d\u80fd\u6c7a\u5b9a\u8868\u540d\u7a31
-crswriter.params1 = params1 \u7684\u503c\uff1a{0}
-crswriter.params2 = params2 \u7684\u503c\uff1a{0}
+crswriter.params1 = params1 \u7684\u503c\uff1a{0}
+crswriter.params2 = params2 \u7684\u503c\uff1a{0}
+crswriter.conflictsno = \u540c\u6b65\u5316\u6642\u767c\u751f\u885d\u7a81
#InsertRow exceptions
insertrow.novalue = \u5c1a\u672a\u63d2\u5165\u503c
#SyncResolverImpl exceptions
-syncrsimpl.indexval = \u7d22\u5f15\u503c\u8d85\u51fa\u7bc4\u570d
+syncrsimpl.indexval = \u7d22\u5f15\u503c\u8d85\u51fa\u7bc4\u570d
syncrsimpl.noconflict = \u6b64\u6b04\u4e0d\u885d\u7a81
syncrsimpl.syncnotpos = \u4e0d\u53ef\u80fd\u540c\u6b65\u5316
syncrsimpl.valtores = \u8981\u89e3\u6790\u7684\u503c\u53ef\u4f4d\u65bc\u8cc7\u6599\u5eab\u6216 cachedrowset \u4e2d
@@ -132,8 +141,6 @@
wrsxmlreader.invalidcp = \u5df2\u5230\u9054 RowSet \u672b\u5c3e\u3002\u6e38\u6a19\u4f4d\u7f6e\u7121\u6548
wrsxmlreader.readxml = readXML\uff1a{0}
wrsxmlreader.parseerr = ** \u5256\u6790\u932f\u8aa4
-wrsxmlreader.line = , \u884c
-wrsxmlreader.uri = , uri
#WebRowSetXmlWriter exceptions
wrsxmlwriter.ioex = IOException\uff1a{0}
@@ -141,28 +148,23 @@
wrsxmlwriter.failedwrite = \u5beb\u5165\u503c\u5931\u6557
wsrxmlwriter.notproper = \u4e0d\u662f\u6b63\u78ba\u985e\u578b
-#XmlReaderContentHandle exceptions
+#XmlReaderContentHandler exceptions
xmlrch.errmap = \u8a2d\u5b9a\u5c0d\u6620\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
xmlrch.errmetadata = \u8a2d\u5b9a\u5143\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
-xmlrch.errinsert = \u63d2\u5165\u503c\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
+xmlrch.errinsert = \u63d2\u5165\u503c\u6642\u767c\u751f\u932f\u8aa4: {0}
xmlrch.errconstr = \u5efa\u69cb\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
xmlrch.errdel = \u522a\u9664\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
xmlrch.errinsert = \u5efa\u69cb\u63d2\u5165\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
xmlrch.errinsdel = \u5efa\u69cb insdel \u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
xmlrch.errupdate = \u5efa\u69cb\u66f4\u65b0\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
-xmlrch errupdrow = \u66f4\u65b0\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
+xmlrch.errupdrow = \u66f4\u65b0\u5217\u6642\u767c\u751f\u932f\u8aa4: {0}
xmlrch.chars = \u5b57\u5143\uff1a
xmlrch.badvalue = \u932f\u8aa4\u7684\u503c\uff1b\u7279\u6027\u4e0d\u80fd\u70ba\u7a7a
xmlrch.badvalue1 = \u932f\u8aa4\u7684\u503c\uff1b\u5143\u8cc7\u6599\u4e0d\u80fd\u70ba\u7a7a
-xmlrch.warning = ** \u8b66\u544a
-xmlrch.line = , \u884c
-xmlrch.uri = , uri
+xmlrch.warning = ** \u8b66\u544a
#RIOptimisticProvider Exceptions
riop.locking = \u4e0d\u652f\u63f4\u9396\u5b9a\u5206\u985e
#RIXMLProvider exceptions
rixml.unsupp = RIXMLProvider \u4e0d\u652f\u63f4
-
-
-
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=Verzeichnis
FileChooser.newFolderErrorText=Fehler beim Erstellen eines neuen Ordners
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=Ordner kann nicht erstellt werden
+FileChooser.newFolderParentDoesntExistText=Der Ordner kann nicht erstellt werden.\n\nDas System kann den angegebenen Pfad nicht finden.
+FileChooser.renameErrorTitleText=Fehler beim Umbenennen der Datei oder des Ordners
+FileChooser.renameErrorText={0} kann nicht umbenannt werden
+FileChooser.renameErrorFileExistsText={0} kann nicht umbenannt werden: Es ist bereits eine Datei mit diesem Namen vorhanden. Geben Sie einen anderen Dateinamen an.
FileChooser.acceptAllFileFilterText=Alle Dateien
FileChooser.cancelButtonText=Abbrechen
FileChooser.cancelButtonMnemonic=65
@@ -108,16 +107,16 @@
# xxxDisplayedMnemonicIndex.
ColorChooser.hsvNameText=HSV
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvHueText=Farbton
+ColorChooser.hsvSaturationText=S\u00e4ttigung
+ColorChooser.hsvValueText=Wert
+ColorChooser.hsvTransparencyText=Transparenz
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslHueText=Farbton
+ColorChooser.hslSaturationText=S\u00e4ttigung
+ColorChooser.hslLightnessText=Helligkeit
+ColorChooser.hslTransparencyText=Transparenz
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbRedText=Rot
@@ -127,14 +126,14 @@
ColorChooser.rgbBlueText=Blau
ColorChooser.rgbBlueMnemonic=66
ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbHexCodeText=Farbcode
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
ColorChooser.cmykCyanText=Cyan
ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
+ColorChooser.cmykYellowText=Gelb
+ColorChooser.cmykBlackText=Schwarz
ColorChooser.cmykAlphaText=Alpha
############ OPTION PANE STRINGS #############
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=Directorio
FileChooser.newFolderErrorText=Error al crear una nueva carpeta
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=No se ha podido crear la carpeta
+FileChooser.newFolderParentDoesntExistText=No se ha podido crear la carpeta.\n\nEl sistema no puede encontrar la ruta especificada.
+FileChooser.renameErrorTitleText=Error al cambiar de nombre el archivo o la carpeta
+FileChooser.renameErrorText=No se puede cambiar de nombre {0}
+FileChooser.renameErrorFileExistsText=No se puede cambiar de nombre {0}: Ya existe un archivo con el nombre que ha especificado. Especifique otro nombre de archivo.
FileChooser.acceptAllFileFilterText=Todos los archivos
FileChooser.cancelButtonText=Cancelar
FileChooser.cancelButtonMnemonic=67
@@ -108,16 +107,16 @@
# xxxDisplayedMnemonicIndex.
ColorChooser.hsvNameText=HSV
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvHueText=Matriz
+ColorChooser.hsvSaturationText=Saturaci\u00f3n
+ColorChooser.hsvValueText=Valor
+ColorChooser.hsvTransparencyText=Transparencia
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslHueText=Matriz
+ColorChooser.hslSaturationText=Saturaci\u00f3n
+ColorChooser.hslLightnessText=Brillo
+ColorChooser.hslTransparencyText=Transparencia
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbRedText=Rojo
@@ -127,14 +126,14 @@
ColorChooser.rgbBlueText=Azul
ColorChooser.rgbBlueMnemonic=76
ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbHexCodeText=C\u00f3digo de color
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
+ColorChooser.cmykCyanText=Cian
ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
+ColorChooser.cmykYellowText=Amarillo
+ColorChooser.cmykBlackText=Negro
ColorChooser.cmykAlphaText=Alpha
############ OPTION PANE STRINGS #############
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=R\u00e9pertoire
FileChooser.newFolderErrorText=Erreur lors de la cr\u00e9ation du nouveau dossier
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=Impossible de cr\u00e9er le dossier
+FileChooser.newFolderParentDoesntExistText=Impossible de cr\u00e9er le dossier.\n\nLe syst\u00e8me ne trouve pas le chemin sp\u00e9cifi\u00e9.
+FileChooser.renameErrorTitleText=Erreur lors de la modification du nom du fichier ou du dossier
+FileChooser.renameErrorText=Impossible de renommer {0}
+FileChooser.renameErrorFileExistsText=Impossible de renommer {0}\u00a0: un fichier portant ce nom existe d\u00e9j\u00e0. Choisissez un nom diff\u00e9rent.
FileChooser.acceptAllFileFilterText=Tous les fichiers
FileChooser.cancelButtonText=Annuler
FileChooser.cancelButtonMnemonic=65
@@ -108,16 +107,16 @@
# xxxDisplayedMnemonicIndex.
ColorChooser.hsvNameText=HSV
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
+ColorChooser.hsvHueText=Teinte
ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvValueText=Valeur
+ColorChooser.hsvTransparencyText=Transparence
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
+ColorChooser.hslHueText=Teinte
ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslLightnessText=Clart\u00e9
+ColorChooser.hslTransparencyText=Transparence
ColorChooser.rgbNameText=RVB
ColorChooser.rgbMnemonic=86
ColorChooser.rgbRedText=Rouge
@@ -127,14 +126,14 @@
ColorChooser.rgbBlueText=Bleu
ColorChooser.rgbBlueMnemonic=66
ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbHexCodeText=Code couleur
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
ColorChooser.cmykCyanText=Cyan
ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
+ColorChooser.cmykYellowText=Jaune
+ColorChooser.cmykBlackText=Noir
ColorChooser.cmykAlphaText=Alpha
############ OPTION PANE STRINGS #############
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=Directory
FileChooser.newFolderErrorText=Errore durante la creazione della nuova cartella
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=Impossibile creare la cartella
+FileChooser.newFolderParentDoesntExistText=Impossibile creare la cartella.\n\nPercorso specificato non trovato nel sistema.
+FileChooser.renameErrorTitleText=Errore di ridenominazione del file o della cartella
+FileChooser.renameErrorText=Impossibile rinominare {0}
+FileChooser.renameErrorFileExistsText=Impossibile rinominare {0}: esiste gi\u00e0 un file con il nome specificato. Specificare un nome file alternativo.
FileChooser.acceptAllFileFilterText=Tutti i file
FileChooser.cancelButtonText=Annulla
FileChooser.cancelButtonMnemonic=65
@@ -108,16 +107,16 @@
# xxxDisplayedMnemonicIndex.
ColorChooser.hsvNameText=HSV
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvHueText=Tonalit\u00e0
+ColorChooser.hsvSaturationText=Saturazione
+ColorChooser.hsvValueText=Valore
+ColorChooser.hsvTransparencyText=Trasparenza
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslHueText=Tonalit\u00e0
+ColorChooser.hslSaturationText=Saturazione
+ColorChooser.hslLightnessText=Luminosit\u00e0
+ColorChooser.hslTransparencyText=Trasparenza
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbRedText=Rosso
@@ -126,16 +125,16 @@
ColorChooser.rgbGreenMnemonic=69
ColorChooser.rgbBlueText=Blu
ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbAlphaText=Alfa
+ColorChooser.rgbHexCodeText=Codice colore
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
+ColorChooser.cmykCyanText=Ciano
ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
-ColorChooser.cmykAlphaText=Alpha
+ColorChooser.cmykYellowText=Giallo
+ColorChooser.cmykBlackText=Nero
+ColorChooser.cmykAlphaText=Alfa
############ OPTION PANE STRINGS #############
# Mnemonic keys correspond to KeyEvent.VK_XXX constant
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea
FileChooser.newFolderErrorText=\u65b0\u898f\u30d5\u30a9\u30eb\u30c0\u306e\u4f5c\u6210\u306b\u5931\u6557
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093
+FileChooser.newFolderParentDoesntExistText=\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002\n\n\u6307\u5b9a\u3055\u308c\u305f\u30d1\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
+FileChooser.renameErrorTitleText=\u30d5\u30a1\u30a4\u30eb\u307e\u305f\u306f\u30d5\u30a9\u30eb\u30c0\u306e\u540d\u524d\u5909\u66f4\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
+FileChooser.renameErrorText={0} \u306e\u540d\u524d\u3092\u5909\u66f4\u3067\u304d\u307e\u305b\u3093\u3002
+FileChooser.renameErrorFileExistsText={0} \u306e\u540d\u524d\u3092\u5909\u66f4\u3067\u304d\u307e\u305b\u3093: \u6307\u5b9a\u3055\u308c\u305f\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u3059\u3067\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002\u5225\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
FileChooser.acceptAllFileFilterText=\u3059\u3079\u3066\u306e\u30d5\u30a1\u30a4\u30eb
FileChooser.cancelButtonText=\u53d6\u6d88\u3057
FileChooser.cancelButtonMnemonic=67
@@ -108,16 +107,16 @@
# xxxDisplayedMnemonicIndex.
ColorChooser.hsvNameText=HSV
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvHueText=\u8272\u5408\u3044
+ColorChooser.hsvSaturationText=\u5f69\u5ea6
+ColorChooser.hsvValueText=\u5024
+ColorChooser.hsvTransparencyText=\u900f\u660e\u5ea6
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslHueText=\u8272\u5408\u3044
+ColorChooser.hslSaturationText=\u5f69\u5ea6
+ColorChooser.hslLightnessText=\u660e\u5ea6
+ColorChooser.hslTransparencyText=\u900f\u660e\u5ea6
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbRedText=\u8d64(D)
@@ -126,16 +125,16 @@
ColorChooser.rgbGreenMnemonic=78
ColorChooser.rgbBlueText=\u9752(B)
ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbAlphaText=\u30a2\u30eb\u30d5\u30a1
+ColorChooser.rgbHexCodeText=\u8272\u30b3\u30fc\u30c9
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
-ColorChooser.cmykAlphaText=Alpha
+ColorChooser.cmykCyanText=\u30b7\u30a2\u30f3
+ColorChooser.cmykMagentaText=\u30de\u30bc\u30f3\u30c0
+ColorChooser.cmykYellowText=\u9ec4
+ColorChooser.cmykBlackText=\u9ed2
+ColorChooser.cmykAlphaText=\u30a2\u30eb\u30d5\u30a1
############ OPTION PANE STRINGS #############
# Mnemonic keys correspond to KeyEvent.VK_XXX constant
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=\ub514\ub809\ud1a0\ub9ac
FileChooser.newFolderErrorText=\uc0c8 \ud3f4\ub354 \uc791\uc131 \uc624\ub958
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=\ud3f4\ub354\ub97c \ub9cc\ub4e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+FileChooser.newFolderParentDoesntExistText=\ud3f4\ub354\ub97c \ub9cc\ub4e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n\n\uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc9c0\uc815\ud55c \uacbd\ub85c\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+FileChooser.renameErrorTitleText=\ud30c\uc77c \ub610\ub294 \ud3f4\ub354 \uc774\ub984 \ubc14\uafb8\uae30 \uc624\ub958
+FileChooser.renameErrorText={0}\uc758 \uc774\ub984\uc744 \ubc14\uafc0 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+FileChooser.renameErrorFileExistsText={0}\uc758 \uc774\ub984\uc744 \ubc14\uafc0 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc9c0\uc815\ud55c \uc774\ub984\uc758 \ud30c\uc77c\uc774 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \ud30c\uc77c \uc774\ub984\uc744 \uc9c0\uc815\ud558\uc2ed\uc2dc\uc624.
FileChooser.acceptAllFileFilterText=\ubaa8\ub4e0 \ud30c\uc77c
FileChooser.cancelButtonText=\ucde8\uc18c
FileChooser.cancelButtonMnemonic=67
@@ -108,16 +107,16 @@
# xxxDisplayedMnemonicIndex.
ColorChooser.hsvNameText=HSV
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvHueText=\uc0c9\uc0c1
+ColorChooser.hsvSaturationText=\ucc44\ub3c4
+ColorChooser.hsvValueText=\uac12
+ColorChooser.hsvTransparencyText=\ud22c\uba85\ub3c4
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslHueText=\uc0c9\uc0c1
+ColorChooser.hslSaturationText=\ucc44\ub3c4
+ColorChooser.hslLightnessText=\ubc1d\uae30
+ColorChooser.hslTransparencyText=\ud22c\uba85\ub3c4
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbRedText=\ube68\uac04\uc0c9(D)
@@ -126,16 +125,16 @@
ColorChooser.rgbGreenMnemonic=78
ColorChooser.rgbBlueText=\ud30c\ub780\uc0c9(B)
ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbAlphaText=\uc54c\ud30c
+ColorChooser.rgbHexCodeText=\uceec\ub7ec \ucf54\ub4dc
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
-ColorChooser.cmykAlphaText=Alpha
+ColorChooser.cmykCyanText=\uccad\ub85d\uc0c9
+ColorChooser.cmykMagentaText=\uc790\ud64d\uc0c9
+ColorChooser.cmykYellowText=\ub178\ub780\uc0c9
+ColorChooser.cmykBlackText=\ud751\uc0c9
+ColorChooser.cmykAlphaText=\uc54c\ud30c
############ OPTION PANE STRINGS #############
# Mnemonic keys correspond to KeyEvent.VK_XXX constant
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=Katalog
FileChooser.newFolderErrorText=Fel d\u00e5 ny mapp skapades
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=Det gick inte att skapa mappen
+FileChooser.newFolderParentDoesntExistText=Det gick inte att skapa mappen.\n\nSystemet hittade inte den angivna s\u00f6kv\u00e4gen.
+FileChooser.renameErrorTitleText=Det gick inte att byta namn p\u00e5 filen eller mappen
+FileChooser.renameErrorText=Det gick inte byta namn p\u00e5 {0}
+FileChooser.renameErrorFileExistsText=Det gick inte byta namn p\u00e5 {0}: Det finns redan en fil med det namnet. Ge den ett annat namn.
FileChooser.acceptAllFileFilterText=Alla filer
FileChooser.cancelButtonText=Avbryt
FileChooser.cancelButtonMnemonic=65
@@ -106,18 +105,18 @@
# constant, and an index into the text to render the mnemonic as. The
# mnemonic is xxxMnemonic and the index of the character to underline is
# xxxDisplayedMnemonicIndex.
-ColorChooser.hsvNameText=HSV
+ColorChooser.hsvNameText=NMI
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvHueText=Nyans
+ColorChooser.hsvSaturationText=M\u00e4ttnad
+ColorChooser.hsvValueText=V\u00e4rde
+ColorChooser.hsvTransparencyText=Genomskinlighet
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslHueText=Nyans
+ColorChooser.hslSaturationText=M\u00e4ttnad
+ColorChooser.hslLightnessText=Ljusstyrka
+ColorChooser.hslTransparencyText=Genomskinlighet
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbRedText=R\u00f6d
@@ -126,16 +125,16 @@
ColorChooser.rgbGreenMnemonic=71
ColorChooser.rgbBlueText=Bl\u00e5
ColorChooser.rgbBlueMnemonic=66
-ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbAlphaText=Alfa
+ColorChooser.rgbHexCodeText=F\u00e4rgkod
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
+ColorChooser.cmykCyanText=Cyanbl\u00e5
ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
-ColorChooser.cmykAlphaText=Alpha
+ColorChooser.cmykYellowText=Gul
+ColorChooser.cmykBlackText=Svart
+ColorChooser.cmykAlphaText=Alfa
############ OPTION PANE STRINGS #############
# Mnemonic keys correspond to KeyEvent.VK_XXX constant
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=\u76ee\u5f55
FileChooser.newFolderErrorText=\u521b\u5efa\u65b0\u7684\u6587\u4ef6\u5939\u65f6\u53d1\u751f\u9519\u8bef
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=\u65e0\u6cd5\u521b\u5efa\u6587\u4ef6\u5939
+FileChooser.newFolderParentDoesntExistText=\u65e0\u6cd5\u521b\u5efa\u6587\u4ef6\u5939\u3002\n\n\u7cfb\u7edf\u65e0\u6cd5\u627e\u5230\u6307\u5b9a\u7684\u8def\u5f84\u3002
+FileChooser.renameErrorTitleText=\u91cd\u547d\u540d\u6587\u4ef6\u6216\u6587\u4ef6\u5939\u65f6\u51fa\u9519
+FileChooser.renameErrorText=\u65e0\u6cd5\u91cd\u547d\u540d {0}
+FileChooser.renameErrorFileExistsText=\u65e0\u6cd5\u91cd\u547d\u540d {0}\uff1a\u5df2\u5b58\u5728\u5177\u6709\u6307\u5b9a\u540d\u79f0\u7684\u6587\u4ef6\u3002\u8bf7\u6307\u5b9a\u53e6\u4e00\u6587\u4ef6\u540d\u3002
FileChooser.acceptAllFileFilterText=\u6240\u6709\u6587\u4ef6
FileChooser.cancelButtonText=\u53d6\u6d88
FileChooser.cancelButtonMnemonic=67
@@ -108,16 +107,16 @@
# xxxDisplayedMnemonicIndex.
ColorChooser.hsvNameText=HSV
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvHueText=\u8272\u8c03
+ColorChooser.hsvSaturationText=\u9971\u548c
+ColorChooser.hsvValueText=\u503c
+ColorChooser.hsvTransparencyText=\u900f\u660e
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslHueText=\u8272\u8c03
+ColorChooser.hslSaturationText=\u9971\u548c
+ColorChooser.hslLightnessText=\u4eae\u5ea6
+ColorChooser.hslTransparencyText=\u900f\u660e
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbRedText=\u7ea2
@@ -127,14 +126,14 @@
ColorChooser.rgbBlueText=\u84dd
ColorChooser.rgbBlueMnemonic=66
ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbHexCodeText=\u989c\u8272\u4ee3\u7801
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
+ColorChooser.cmykCyanText=\u9752\u8272
+ColorChooser.cmykMagentaText=\u54c1\u7ea2\u8272
+ColorChooser.cmykYellowText=\u9ec4\u8272
+ColorChooser.cmykBlackText=\u9ed1\u8272
ColorChooser.cmykAlphaText=Alpha
############ OPTION PANE STRINGS #############
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties Wed Jul 05 17:10:40 2017 +0200
@@ -49,12 +49,11 @@
FileChooser.directoryDescriptionText=\u76ee\u9304
FileChooser.newFolderErrorText=\u5efa\u7acb\u65b0\u6a94\u6848\u593e\u6642\u767c\u751f\u932f\u8aa4
FileChooser.newFolderErrorSeparator= :
-FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
-FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
-FileChooser.renameErrorTitleText=Error Renaming File or Folder
-FileChooser.renameErrorText=Cannot rename {0}
-FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
- Specify a different file name.
+FileChooser.newFolderParentDoesntExistTitleText=\u7121\u6cd5\u5efa\u7acb\u8cc7\u6599\u593e
+FileChooser.newFolderParentDoesntExistText=\u7121\u6cd5\u5efa\u7acb\u8cc7\u6599\u593e\u3002\n\n\u7cfb\u7d71\u627e\u4e0d\u5230\u6240\u6307\u5b9a\u7684\u8def\u5f91\u3002
+FileChooser.renameErrorTitleText=\u91cd\u65b0\u547d\u540d\u6a94\u6848\u6216\u8cc7\u6599\u593e\u6642\u767c\u751f\u932f\u8aa4
+FileChooser.renameErrorText=\u7121\u6cd5\u91cd\u65b0\u547d\u540d {0}
+FileChooser.renameErrorFileExistsText=\u7121\u6cd5\u91cd\u65b0\u547d\u540d {0}\uff1a\u60a8\u6307\u5b9a\u4e4b\u540d\u7a31\u7684\u6a94\u6848\u5df2\u5b58\u5728\u3002\u6307\u5b9a\u4e0d\u540c\u7684\u6a94\u6848\u540d\u7a31\u3002
FileChooser.acceptAllFileFilterText=\u6240\u6709\u6a94\u6848
FileChooser.cancelButtonText=\u53d6\u6d88
FileChooser.cancelButtonMnemonic=67
@@ -108,16 +107,16 @@
# xxxDisplayedMnemonicIndex.
ColorChooser.hsvNameText=HSV
ColorChooser.hsvMnemonic=72
-ColorChooser.hsvHueText=Hue
-ColorChooser.hsvSaturationText=Saturation
-ColorChooser.hsvValueText=Value
-ColorChooser.hsvTransparencyText=Transparency
+ColorChooser.hsvHueText=\u8272\u8abf
+ColorChooser.hsvSaturationText=\u98fd\u548c\u5ea6
+ColorChooser.hsvValueText=\u503c
+ColorChooser.hsvTransparencyText=\u900f\u660e\u5ea6
ColorChooser.hslNameText=HSL
ColorChooser.hslMnemonic=76
-ColorChooser.hslHueText=Hue
-ColorChooser.hslSaturationText=Saturation
-ColorChooser.hslLightnessText=Lightness
-ColorChooser.hslTransparencyText=Transparency
+ColorChooser.hslHueText=\u8272\u8abf
+ColorChooser.hslSaturationText=\u98fd\u548c\u5ea6
+ColorChooser.hslLightnessText=\u4eae\u5ea6
+ColorChooser.hslTransparencyText=\u900f\u660e\u5ea6
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbRedText=\u7d05\u8272(D)
@@ -127,14 +126,14 @@
ColorChooser.rgbBlueText=\u85cd\u8272(B)
ColorChooser.rgbBlueMnemonic=66
ColorChooser.rgbAlphaText=Alpha
-ColorChooser.rgbHexCodeText=Color Code
+ColorChooser.rgbHexCodeText=\u8272\u78bc
ColorChooser.rgbHexCodeMnemonic=67
ColorChooser.cmykNameText=CMYK
ColorChooser.cmykMnemonic=77
-ColorChooser.cmykCyanText=Cyan
-ColorChooser.cmykMagentaText=Magenta
-ColorChooser.cmykYellowText=Yellow
-ColorChooser.cmykBlackText=Black
+ColorChooser.cmykCyanText=\u85cd\u7da0\u8272
+ColorChooser.cmykMagentaText=\u7d2b\u7d05\u8272
+ColorChooser.cmykYellowText=\u9ec3\u8272
+ColorChooser.cmykBlackText=\u9ed1\u8272
ColorChooser.cmykAlphaText=Alpha
############ OPTION PANE STRINGS #############
--- a/jdk/src/share/classes/java/awt/Component.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/java/awt/Component.java Wed Jul 05 17:10:40 2017 +0200
@@ -4941,9 +4941,13 @@
// If we dispatch the event to toplevel ancestor,
// this could encolse the loop: 6480024.
anc.dispatchEventToSelf(newMWE);
- }
- }
- return true;
+ if (newMWE.isConsumed()) {
+ e.consume();
+ }
+ return true;
+ }
+ }
+ return false;
}
boolean checkWindowClosingException() {
--- a/jdk/src/share/classes/java/awt/Container.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/java/awt/Container.java Wed Jul 05 17:10:40 2017 +0200
@@ -4492,7 +4492,10 @@
retargetMouseEvent(mouseOver, id, e);
break;
}
- e.consume();
+ //Consuming of wheel events is implemented in "retargetMouseEvent".
+ if (id != MouseEvent.MOUSE_WHEEL) {
+ e.consume();
+ }
}
return e.isConsumed();
}
@@ -4800,6 +4803,12 @@
target.dispatchEvent(retargeted);
}
}
+ if (id == MouseEvent.MOUSE_WHEEL && retargeted.isConsumed()) {
+ //An exception for wheel bubbling to the native system.
+ //In "processMouseEvent" total event consuming for wheel events is skipped.
+ //Protection from bubbling of Java-accepted wheel events.
+ e.consume();
+ }
}
}
--- a/jdk/src/share/classes/java/awt/font/NumericShaper.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/java/awt/font/NumericShaper.java Wed Jul 05 17:10:40 2017 +0200
@@ -129,6 +129,8 @@
* @since 1.7
*/
public static enum Range {
+ // The order of EUROPEAN to MOGOLIAN must be consistent
+ // with the bitmask-based constants.
/**
* The Latin (European) range with the Latin (ASCII) digits.
*/
@@ -210,6 +212,9 @@
* The Mongolian range with the Mongolian digits.
*/
MONGOLIAN ('\u1810', '\u1800', '\u1900'),
+ // The order of EUROPEAN to MOGOLIAN must be consistent
+ // with the bitmask-based constants.
+
/**
* The N'Ko range with the N'Ko digits.
*/
@@ -259,17 +264,6 @@
*/
CHAM ('\uaa50', '\uaa00', '\uaa60');
- private static final Range[] ranges = Range.class.getEnumConstants();
- static {
- // sort ranges[] by base for binary search
- Arrays.sort(ranges,
- new Comparator<Range>() {
- public int compare(Range s1, Range s2) {
- return s1.base > s2.base ? 1 : s1.base == s2.base ? 0 : -1;
- }
- });
- }
-
private static int toRangeIndex(Range script) {
int index = script.ordinal();
return index < NUM_KEYS ? index : -1;
@@ -346,11 +340,20 @@
/**
* {@code Set<Range>} indicating which Unicode ranges to
* shape. {@code null} for the bit mask-based API.
- *
- * @since 1.7
*/
private transient Set<Range> rangeSet;
+ /**
+ * rangeSet.toArray() value. Sorted by Range.base when the number
+ * of elements is greater then BSEARCH_THRESHOLD.
+ */
+ private transient Range[] rangeArray;
+
+ /**
+ * If more than BSEARCH_THRESHOLD ranges are specified, binary search is used.
+ */
+ private static final int BSEARCH_THRESHOLD = 3;
+
private static final long serialVersionUID = -8022764705923730308L;
/** Identifies the Latin-1 (European) and extended range, and
@@ -513,25 +516,32 @@
// cache for the NumericShaper.Range version
private transient volatile Range currentRange = Range.EUROPEAN;
- private Range rangeForCodePoint(int codepoint) {
- Range range = currentRange;
- if (range.inRange(codepoint)) {
- return range;
+ private Range rangeForCodePoint(final int codepoint) {
+ if (currentRange.inRange(codepoint)) {
+ return currentRange;
}
- final Range[] ranges = Range.ranges;
- int lo = 0;
- int hi = ranges.length - 1;
- while (lo <= hi) {
- int mid = (lo + hi) / 2;
- range = ranges[mid];
- if (codepoint < range.start) {
- hi = mid - 1;
- } else if (codepoint >= range.end) {
- lo = mid + 1;
- } else {
- currentRange = range;
- return range;
+ final Range[] ranges = rangeArray;
+ if (ranges.length > BSEARCH_THRESHOLD) {
+ int lo = 0;
+ int hi = ranges.length - 1;
+ while (lo <= hi) {
+ int mid = (lo + hi) / 2;
+ Range range = ranges[mid];
+ if (codepoint < range.start) {
+ hi = mid - 1;
+ } else if (codepoint >= range.end) {
+ lo = mid + 1;
+ } else {
+ currentRange = range;
+ return range;
+ }
+ }
+ } else {
+ for (int i = 0; i < ranges.length; i++) {
+ if (ranges[i].inRange(codepoint)) {
+ return ranges[i];
+ }
}
}
return Range.EUROPEAN;
@@ -928,8 +938,25 @@
}
private NumericShaper(Range defaultContext, Set<Range> ranges) {
- this.shapingRange = defaultContext;
- this.rangeSet = EnumSet.copyOf(ranges); // throws NPE if ranges is null.
+ shapingRange = defaultContext;
+ rangeSet = EnumSet.copyOf(ranges); // throws NPE if ranges is null.
+
+ // Give precedance to EASTERN_ARABIC if both ARABIC and
+ // EASTERN_ARABIC are specified.
+ if (rangeSet.contains(Range.EASTERN_ARABIC)
+ && rangeSet.contains(Range.ARABIC)) {
+ rangeSet.remove(Range.ARABIC);
+ }
+ rangeArray = rangeSet.toArray(new Range[rangeSet.size()]);
+ if (rangeArray.length > BSEARCH_THRESHOLD) {
+ // sort rangeArray for binary search
+ Arrays.sort(rangeArray,
+ new Comparator<Range>() {
+ public int compare(Range s1, Range s2) {
+ return s1.base > s2.base ? 1 : s1.base == s2.base ? 0 : -1;
+ }
+ });
+ }
}
/**
@@ -1152,31 +1179,25 @@
}
private void shapeContextually(char[] text, int start, int count, Range ctxKey) {
- if (ctxKey == null) {
+ // if we don't support the specified context, then don't shape.
+ if (ctxKey == null || !rangeSet.contains(ctxKey)) {
ctxKey = Range.EUROPEAN;
}
Range lastKey = ctxKey;
int base = ctxKey.getDigitBase();
char minDigit = (char)('0' + ctxKey.getNumericBase());
- for (int i = start, end = start + count; i < end; ++i) {
+ final int end = start + count;
+ for (int i = start; i < end; ++i) {
char c = text[i];
if (c >= minDigit && c <= '9') {
text[i] = (char)(c + base);
continue;
}
if (isStrongDirectional(c)) {
- Range newKey = rangeForCodePoint(c);
- if (newKey != lastKey) {
- lastKey = newKey;
- ctxKey = newKey;
- if (rangeSet.contains(Range.EUROPEAN)
- && (ctxKey == Range.ARABIC || ctxKey == Range.EASTERN_ARABIC)) {
- ctxKey = Range.EASTERN_ARABIC;
- } else if (!rangeSet.contains(ctxKey)) {
- ctxKey = Range.EUROPEAN;
- }
-
+ ctxKey = rangeForCodePoint(c);
+ if (ctxKey != lastKey) {
+ lastKey = ctxKey;
base = ctxKey.getDigitBase();
minDigit = (char)('0' + ctxKey.getNumericBase());
}
--- a/jdk/src/share/classes/java/net/NetworkInterface.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/java/net/NetworkInterface.java Wed Jul 05 17:10:40 2017 +0200
@@ -221,11 +221,12 @@
* A display name is a human readable String describing the network
* device.
*
- * @return the display name of this network interface,
- * or null if no display name is available.
+ * @return a non-empty string representing the display name of this network
+ * interface, or null if no display name is available.
*/
public String getDisplayName() {
- return displayName;
+ /* strict TCK conformance */
+ return "".equals(displayName) ? null : displayName;
}
/**
--- a/jdk/src/share/classes/java/text/DateFormat.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/java/text/DateFormat.java Wed Jul 05 17:10:40 2017 +0200
@@ -53,20 +53,20 @@
import sun.util.LocaleServiceProviderPool;
/**
- * DateFormat is an abstract class for date/time formatting subclasses which
+ * {@code DateFormat} is an abstract class for date/time formatting subclasses which
* formats and parses dates or time in a language-independent manner.
- * The date/time formatting subclass, such as SimpleDateFormat, allows for
+ * The date/time formatting subclass, such as {@link SimpleDateFormat}, allows for
* formatting (i.e., date -> text), parsing (text -> date), and
* normalization. The date is represented as a <code>Date</code> object or
* as the milliseconds since January 1, 1970, 00:00:00 GMT.
*
- * <p>DateFormat provides many class methods for obtaining default date/time
+ * <p>{@code DateFormat} provides many class methods for obtaining default date/time
* formatters based on the default or a given locale and a number of formatting
- * styles. The formatting styles include FULL, LONG, MEDIUM, and SHORT. More
+ * styles. The formatting styles include {@link #FULL}, {@link #LONG}, {@link #MEDIUM}, and {@link #SHORT}. More
* detail and examples of using these styles are provided in the method
* descriptions.
*
- * <p>DateFormat helps you to format and parse dates for any locale.
+ * <p>{@code DateFormat} helps you to format and parse dates for any locale.
* Your code can be completely independent of the locale conventions for
* months, days of the week, or even the calendar format: lunar vs. solar.
*
@@ -86,7 +86,7 @@
* }
* </pre>
* <p>To format a date for a different Locale, specify it in the
- * call to getDateInstance().
+ * call to {@link #getDateInstance(int, Locale) getDateInstance()}.
* <pre>
* DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
* </pre>
@@ -94,30 +94,30 @@
* <pre>
* myDate = df.parse(myString);
* </pre>
- * <p>Use getDateInstance to get the normal date format for that country.
+ * <p>Use {@code getDateInstance} to get the normal date format for that country.
* There are other static factory methods available.
- * Use getTimeInstance to get the time format for that country.
- * Use getDateTimeInstance to get a date and time format. You can pass in
+ * Use {@code getTimeInstance} to get the time format for that country.
+ * Use {@code getDateTimeInstance} to get a date and time format. You can pass in
* different options to these factory methods to control the length of the
- * result; from SHORT to MEDIUM to LONG to FULL. The exact result depends
+ * result; from {@link #SHORT} to {@link #MEDIUM} to {@link #LONG} to {@link #FULL}. The exact result depends
* on the locale, but generally:
- * <ul><li>SHORT is completely numeric, such as 12.13.52 or 3:30pm
- * <li>MEDIUM is longer, such as Jan 12, 1952
- * <li>LONG is longer, such as January 12, 1952 or 3:30:32pm
- * <li>FULL is pretty completely specified, such as
- * Tuesday, April 12, 1952 AD or 3:30:42pm PST.
+ * <ul><li>{@link #SHORT} is completely numeric, such as {@code 12.13.52} or {@code 3:30pm}
+ * <li>{@link #MEDIUM} is longer, such as {@code Jan 12, 1952}
+ * <li>{@link #LONG} is longer, such as {@code January 12, 1952} or {@code 3:30:32pm}
+ * <li>{@link #FULL} is pretty completely specified, such as
+ * {@code Tuesday, April 12, 1952 AD or 3:30:42pm PST}.
* </ul>
*
* <p>You can also set the time zone on the format if you wish.
* If you want even more control over the format or parsing,
* (or want to give your users more control),
- * you can try casting the DateFormat you get from the factory methods
- * to a SimpleDateFormat. This will work for the majority
- * of countries; just remember to put it in a try block in case you
+ * you can try casting the {@code DateFormat} you get from the factory methods
+ * to a {@link SimpleDateFormat}. This will work for the majority
+ * of countries; just remember to put it in a {@code try} block in case you
* encounter an unusual one.
*
* <p>You can also use forms of the parse and format methods with
- * ParsePosition and FieldPosition to
+ * {@link ParsePosition} and {@link FieldPosition} to
* allow you to
* <ul><li>progressively parse through pieces of a string.
* <li>align any particular field, or find out where it is for selection
@@ -143,10 +143,13 @@
public abstract class DateFormat extends Format {
/**
- * The calendar that <code>DateFormat</code> uses to produce the time field
- * values needed to implement date and time formatting. Subclasses should
- * initialize this to a calendar appropriate for the locale associated with
- * this <code>DateFormat</code>.
+ * The {@link Calendar} instance used for calculating the date-time fields
+ * and the instant of time. This field is used for both formatting and
+ * parsing.
+ *
+ * <p>Subclasses should initialize this field to a {@link Calendar}
+ * appropriate for the {@link Locale} associated with this
+ * <code>DateFormat</code>.
* @serial
*/
protected Calendar calendar;
@@ -358,15 +361,21 @@
/**
* Parse a date/time string according to the given parse position. For
- * example, a time text "07/10/96 4:5 PM, PDT" will be parsed into a Date
- * that is equivalent to Date(837039928046).
+ * example, a time text {@code "07/10/96 4:5 PM, PDT"} will be parsed into a {@code Date}
+ * that is equivalent to {@code Date(837039900000L)}.
*
* <p> By default, parsing is lenient: If the input is not in the form used
* by this object's format method but can still be parsed as a date, then
* the parse succeeds. Clients may insist on strict adherence to the
- * format by calling setLenient(false).
+ * format by calling {@link #setLenient(boolean) setLenient(false)}.
*
- * @see java.text.DateFormat#setLenient(boolean)
+ * <p>This parsing operation uses the {@link #calendar} to produce
+ * a {@code Date}. As a result, the {@code calendar}'s date-time
+ * fields and the {@code TimeZone} value may have been
+ * overwritten, depending on subclass implementations. Any {@code
+ * TimeZone} value that has previously been set by a call to
+ * {@link #setTimeZone(java.util.TimeZone) setTimeZone} may need
+ * to be restored for further operations.
*
* @param source The date/time string to be parsed
*
@@ -374,7 +383,7 @@
* output, the position at which parsing terminated, or the
* start position if the parse failed.
*
- * @return A Date, or null if the input could not be parsed
+ * @return A {@code Date}, or {@code null} if the input could not be parsed
*/
public abstract Date parse(String source, ParsePosition pos);
@@ -569,7 +578,12 @@
/**
* Set the calendar to be used by this date format. Initially, the default
* calendar for the specified or default locale is used.
- * @param newCalendar the new Calendar to be used by the date format
+ *
+ * <p>Any {@link java.util.TimeZone TimeZone} and {@linkplain
+ * #isLenient() leniency} values that have previously been set are
+ * overwritten by {@code newCalendar}'s values.
+ *
+ * @param newCalendar the new {@code Calendar} to be used by the date format
*/
public void setCalendar(Calendar newCalendar)
{
@@ -578,6 +592,7 @@
/**
* Gets the calendar associated with this date/time formatter.
+ *
* @return the calendar associated with this date/time formatter.
*/
public Calendar getCalendar()
@@ -605,7 +620,18 @@
}
/**
- * Sets the time zone for the calendar of this DateFormat object.
+ * Sets the time zone for the calendar of this {@code DateFormat} object.
+ * This method is equivalent to the following call.
+ * <blockquote><pre>
+ * getCalendar().setTimeZone(zone)
+ * </pre></blockquote>
+ *
+ * <p>The {@code TimeZone} set by this method is overwritten by a
+ * {@link #setCalendar(java.util.Calendar) setCalendar} call.
+ *
+ * <p>The {@code TimeZone} set by this method may be overwritten as
+ * a result of a call to the parse method.
+ *
* @param zone the given new time zone.
*/
public void setTimeZone(TimeZone zone)
@@ -615,6 +641,11 @@
/**
* Gets the time zone.
+ * This method is equivalent to the following call.
+ * <blockquote><pre>
+ * getCalendar().getTimeZone()
+ * </pre></blockquote>
+ *
* @return the time zone associated with the calendar of DateFormat.
*/
public TimeZone getTimeZone()
@@ -627,8 +658,17 @@
* lenient parsing, the parser may use heuristics to interpret inputs that
* do not precisely match this object's format. With strict parsing,
* inputs must match this object's format.
- * @param lenient when true, parsing is lenient
- * @see java.util.Calendar#setLenient
+ *
+ * <p>This method is equivalent to the following call.
+ * <blockquote><pre>
+ * getCalendar().setLenient(lenient)
+ * </pre></blockquote>
+ *
+ * <p>This leniency value is overwritten by a call to {@link
+ * #setCalendar(java.util.Calendar) setCalendar()}.
+ *
+ * @param lenient when {@code true}, parsing is lenient
+ * @see java.util.Calendar#setLenient(boolean)
*/
public void setLenient(boolean lenient)
{
@@ -637,6 +677,14 @@
/**
* Tell whether date/time parsing is to be lenient.
+ * This method is equivalent to the following call.
+ * <blockquote><pre>
+ * getCalendar().isLenient()
+ * </pre></blockquote>
+ *
+ * @return {@code true} if the {@link #calendar} is lenient;
+ * {@code false} otherwise.
+ * @see java.util.Calendar#isLenient()
*/
public boolean isLenient()
{
--- a/jdk/src/share/classes/java/text/SimpleDateFormat.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/java/text/SimpleDateFormat.java Wed Jul 05 17:10:40 2017 +0200
@@ -1235,6 +1235,20 @@
* changed, the error index of <code>pos</code> is set to the index of
* the character where the error occurred, and null is returned.
*
+ * <p>This parsing operation uses the {@link DateFormat#calendar
+ * calendar} to produce a {@code Date}. All of the {@code
+ * calendar}'s date-time fields are {@linkplain Calendar#clear()
+ * cleared} before parsing, and the {@code calendar}'s default
+ * values of the date-time fields are used for any missing
+ * date-time information. For example, the year value of the
+ * parsed {@code Date} is 1970 with {@link GregorianCalendar} if
+ * no year value is given from the parsing operation. The {@code
+ * TimeZone} value may be overwritten, depending on the given
+ * pattern and the time zone value in {@code text}. Any {@code
+ * TimeZone} value that has previously been set by a call to
+ * {@link #setTimeZone(java.util.TimeZone) setTimeZone} may need
+ * to be restored for further operations.
+ *
* @param text A <code>String</code>, part of which should be parsed.
* @param pos A <code>ParsePosition</code> object with index and error
* index information as described above.
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java Wed Jul 05 17:10:40 2017 +0200
@@ -870,6 +870,8 @@
orientation = SwingConstants.HORIZONTAL;
}
+ e.consume();
+
if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
JViewport vp = scrollpane.getViewport();
if (vp == null) { return; }
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Wed Jul 05 17:10:40 2017 +0200
@@ -756,9 +756,8 @@
* things.
* <ol>
* <li>
- * Sets the associated component to opaque (can be changed
- * easily by a subclass or on JTextComponent directly),
- * which is the most common case. This will cause the
+ * Sets the associated component to opaque if the opaque property
+ * has not already been set by the client program. This will cause the
* component's background color to be painted.
* <li>
* Installs the default caret and highlighter into the
--- a/jdk/src/share/classes/sun/font/SunFontManager.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/font/SunFontManager.java Wed Jul 05 17:10:40 2017 +0200
@@ -2310,6 +2310,7 @@
tgn != null;
tg = tgn, tgn = tg.getParent());
fileCloser = new Thread(tg, fileCloserRunnable);
+ fileCloser.setContextClassLoader(null);
Runtime.getRuntime().addShutdownHook(fileCloser);
return null;
}
--- a/jdk/src/share/classes/sun/java2d/Disposer.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/java2d/Disposer.java Wed Jul 05 17:10:40 2017 +0200
@@ -84,6 +84,7 @@
tg = tgn, tgn = tg.getParent());
Thread t =
new Thread(tg, disposerInstance, "Java2D Disposer");
+ t.setContextClassLoader(null);
t.setDaemon(true);
t.setPriority(Thread.MAX_PRIORITY);
t.start();
--- a/jdk/src/share/classes/sun/java2d/loops/GraphicsPrimitive.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/java2d/loops/GraphicsPrimitive.java Wed Jul 05 17:10:40 2017 +0200
@@ -417,7 +417,9 @@
public static void setShutdownHook() {
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
- Runtime.getRuntime().addShutdownHook(new TraceReporter());
+ TraceReporter t = new TraceReporter();
+ t.setContextClassLoader(null);
+ Runtime.getRuntime().addShutdownHook(t);
return null;
}
});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_de.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = Verwendung: {0} [-options] class [args...]\n\ (um eine Klasse auszuf\u00fchren)\n oder {0} [-options] -jar jarfile [args...]\n\ (um eine Jar-Datei auszuf\u00fchren)\nwobei zu den Optionen folgende geh\u00f6ren:\n
+
+java.launcher.opt.datamodel =\ -d{0}\t zur Verwendung eines {0}-Bit-Datenmodells, falls verf\u00fcgbar\n
+java.launcher.opt.vmselect =\ {0}\t zur Auswahl von "{1}" VM\n
+java.launcher.opt.hotspot =\ {0}\t ist ein Synonym f\u00fcr "{1}" VM [deprecated]\n
+
+java.launcher.ergo.message1 =\ Standard-VM ist {0},
+java.launcher.ergo.message2 =\ da Sie auf einem Server-Class-Computer ausf\u00fchren.\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien>\n\ -classpath <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien >\n\ A {0} getrennte Liste von Verzeichnissen, JAR-Archiven,\n\ und ZIP-Archiven f\u00fcr die Suche nach Klassendateien .\n\ -D<Name>=<Wert>\n\ Systemeigenschaft festlegen\n\ -verbose[:class|gc|jni]\n\ ausf\u00fchrliche Ausgabe aktivieren\n\ -version Produktversion drucken und beenden\n\ -version:<Wert>\n\ angegebene Version zum Ausf\u00fchren erforderlich \n\ -showversion Produktversion drucken und fortfahren\n\ -jre-restrict-search | -jre-no-restrict-search\n\ private JREs der Benutzer in Versionssuche ein-/ausschlie\u00dfen\n\ -? -help diese Hilfemeldung drucken\n\ -X Hilfe zu nicht standardm\u00e4\u00dfigen Optionen drucken\n\ -ea[:<Paketname>...|:<Klassenname>]\n\ -enableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t aktivieren\n\ -da[:<Paketname>...|:<Klassenname>]\n\ -disableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t deaktivieren\n\ -esa | --enablesystemassertions\n\ System-Assertions aktivieren\n\ -dsa | --disablesystemassertions\n\ System-Assertions deaktivieren\n\ -agentlib:<Name der Bibliothek>[=<Optionen>]\n\ systemeigene Agent-Bibliothek laden <Name der Bibliothek>, z.B. -agentlib:hprof\n\ siehe auch, -agentlib:jdwp=help und -agentlib:hprof=help\n\ -agentpath:<Pfadname>[=<Optionen>]\n\ systemeigene Agent-Bibliothek \u00fcber vollst\u00e4ndigen Pfadnamen laden\n\ -javaagent:<Jar-Pfad>[=<Optionen>]\n\ Java Programmierungs-Sprachagenten laden, siehe java.lang.instrument\n\ -splash:<Bildpfad>\n\ Eingangsbildschirm mit spezifiziertem Bild anzeigen\nWeitere Informationen finden Sie unter http://java.sun.com/javase/reference.
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed gemischte Ausf\u00fchrung des Modus (Standard)\n\ -Xint nur interpretierte Ausf\u00fchrung des Modus\n\ -Xbootclasspath:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ Suchpfad f\u00fcr Bootstrap-Klassen und Ressourcen einrichten\n\ -Xbootclasspath/a:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ an das Ende des Bootstrap-Klassenpfads anh\u00e4ngen\n\ -Xbootclasspath/p:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ an den Beginn des Bootstrap-Klassenpfads anh\u00e4ngen\n\ -Xnoclassgc Klassen-Speicherbereinigung deaktivieren\n\ -Xincgc inkrementelle Speicherbereinigung aktivieren\n\ -Xloggc:<Datei> GC-Status f\u00fcr eine Datei mit Zeitstempeln einrichten\n\ -Xbatch Hintergrund-Kompilation deaktivieren\n\ -Xms<Gr\u00f6\u00dfe> anf\u00e4ngliche Java Heap-Gr\u00f6\u00dfe einstellen\n\ -Xmx<Gr\u00f6\u00dfe> maximale Java Heap-Gr\u00f6\u00dfe einstellen\n\ -Xss<Gr\u00f6\u00dfe> Gr\u00f6\u00dfe des Java Thread-Stack einstellen\n\ -Xprof CPU-Profildaten ausgeben\n\ -Xfuture genaueste Pr\u00fcfungen aktivieren und zuk\u00fcnftige Standards absehen\n\ -Xrs Verwendung von OS-Signalen durch Java/VM reduzieren (siehe Dokumentation)\n\ -Xcheck:jni zus\u00e4tzliche Pr\u00fcfungen f\u00fcr JNI- Funktionen ausf\u00fchren\n\ -Xshare:off Nicht versuchen, freigegebene Klassendaten zu verwenden\n\ -Xshare:auto Freigegebene Klassendaten verwenden, wenn m\u00f6glich (Standard)\n\ -Xshare:on Nutzung freigegebener Daten ist erforderlich, ansonsten schl\u00e4gt der Vorgang fehl.\n\nDie -X-Optionen sind kein Standard und k\u00f6nnen \u00c4nderungen unterliegen.\n
+
+java.launcher.cls.error1=Fehler: Hauptklasse {0} wurde nicht gefunden
+java.launcher.cls.error2=Fehler: Hauptmethode in Klasse {1} ist nicht {0}. Definieren Sie die folgende Hauptmethode:\n\ public static void main(String[] args)
+java.launcher.cls.error3=Fehler: Hauptmethode muss einen Wert des Typs void in Klasse {0} anzeigen.\nDefinieren Sie die folgende Hauptmethode:\n\ public static void main(String[] args)
+java.launcher.cls.error4=Fehler: Hauptmethode in Klasse {0} nicht gefunden. Definieren Sie die folgende Hauptmethode:\n\ public static void main(String[] args)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_es.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = Uso: {0} [-options] class [args...]\n\ (para ejecutar una clase)\n o {0} [-options] -jar jarfile [args...]\n\ (para ejecutar un archivo jar)\nlas opciones pueden ser:\n
+
+java.launcher.opt.datamodel =\ -d{0}\t usar un modelo de datos de {0}-bits si est\u00e1 disponible\n
+java.launcher.opt.vmselect =\ {0}\t para seleccionar "{1}" VM\n
+java.launcher.opt.hotspot =\ {0}\t es un sin\u00f3nimo para la m\u00e1quina virtual "{1}" [deprecated]\n
+
+java.launcher.ergo.message1 =\ La m\u00e1quina virtual predeterminada es {0}
+java.launcher.ergo.message2 =\ porque est\u00e1 trabajando en una m\u00e1quina de clase servidor.\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n\ -classpath <class search path of directories and zip/jar files>\n\ Una {0} lista de directorios, archivos JAR,\n\ y archivos ZIP en los que buscar los archivos de clase.\n\ -D<name>=<value>\n\ establecer una propiedad de sistema\n\ -verbose[:class|gc|jni]\n\ permitir la salida detallada\n\ -version imprimir versi\u00f3n del producto y salir\n\ -version:<value>\n\ solicitar la versi\u00f3n especificada para ejecutar\n\ -showversion imprimir versi\u00f3n del producto y continuar\n\ -jre-restrict-search | -jre-no-restrict-search\n\ incluir/excluir JRE privados del usuario en la b\u00fasqueda de la versi\u00f3n\n\ -? -help imprimir este mensaje de ayuda\n\ -X imprimir ayuda en las opciones no est\u00e1ndar\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ permitir afirmaciones con granularidad especificada\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ desactivar afirmaciones con granularidad especificada\n\ -esa | -enablesystemassertions\n\ permitir afirmaciones del sistema\n\ -dsa | -disablesystemassertions\n\ desactivar afirmaciones del sistema\n\ -agentlib:<libname>[=<options>]\n\ cargar biblioteca de agente nativo<libname>, por ejemplo -agentlib:hprof\n\ consulte tambi\u00e9n, -agentlib:jdwp=help y -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ cargar biblioteca de agente nativo por ruta completa\n\ -javaagent:<jarpath>[=<options>]\n\ cargar agente del lenguaje de programaci\u00f3n Java, consulte java.lang.instrument\n\ -splash:<imagepath>\n\ mostrar pantalla de bienvenida con imagen especificada\nConsulte http://java.sun.com/javase/reference para m\u00e1s informaci\u00f3n.
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed modo mixto de ejecuci\u00f3n (predeterminado)\n\ -Xint s\u00f3lo modo de ejecuci\u00f3n interpretado\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ definir ruta de b\u00fasqueda para clases y recursos de la rutina de carga\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ a\u00f1adir al final de la ruta de clase de la rutina de carga\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ a\u00f1adir al principio de la ruta de clase de la rutina de carga\n\ -Xnoclassgc desactivar recolecci\u00f3n de residuos de clase\n\ -Xincgc permitir recolecci\u00f3n de residuos incremental\n\ -Xloggc:<file> registrar estado de GC en un archivo con marcas de tiempo\n\ -Xbatch desactivar recopilaci\u00f3n de fondos\n\ -Xms<size> definir tama\u00f1o del mont\u00f3n de Java inicial\n\ -Xmx<size> definir tama\u00f1o m\u00e1ximo del mont\u00f3n de Java\n\ -Xss<size> definir tama\u00f1o de la pila del subproceso de java\n\ -Xprof salida de datos del perfil de la cpu\n\ -Xfuture permitir comprobaciones m\u00e1s estrictas para los procesos predeterminados futuros\n\ -Xrs reducir el uso de se\u00f1ales del SO por parte de Java o la m\u00e1quina virtual (consulte la documentaci\u00f3n)\n\ -Xcheck:jni realizar comprobaciones adicionales para las funciones de JNI\n\ -Xshare:off no intentar utilizar datos de clase compartidos\n\ -Xshare:auto utilizar datos de clase compartidos siempre que sea posible (predeterminado)\n\ -Xshare:on solicitar el uso obligatorio de datos de clase compartidos.\n\nLas opciones "-X" no son est\u00e1ndar y pueden sufrir modificaciones sin previo aviso.\n
+
+java.launcher.cls.error1=Error: no se pudo encontrar la clase principal {0}
+java.launcher.cls.error2=Error: el m\u00e9todo principal no es {0} en la clase {1}, defina el m\u00e9todo principal como:\n\ public static void main(String[] args)
+java.launcher.cls.error3=Error: el m\u00e9todo principal debe volver a ser un valor de tipo vac\u00edo en la clase {0}, defina \nel m\u00e9todo principal como:\n\ public static void main(String[] args)
+java.launcher.cls.error4=Error: m\u00e9todo principal no encontrado en la clase {0}, defina el m\u00e9todo principal como:\n\ public static void main(String[] args)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = Utilisation\u00a0: {0} [-options] class [args...]\n\ (pour ex\u00e9cuter une classe)\n ou {0} [-options] -jar jarfile [args...]\n\ (pour ex\u00e9cuter un fichier jar)\no\u00f9 les options sont\u00a0:\n
+
+java.launcher.opt.datamodel =\ -d{0}\t utiliser un mod\u00e8le de donn\u00e9es {0}\u00a0bits, le cas \u00e9ch\u00e9ant\n
+java.launcher.opt.vmselect =\ {0}\t s\u00e9lectionner la machine virtuelle "{1}"\n
+java.launcher.opt.hotspot =\ {0}\t est un synonyme de la machine virtuelle "{1}" [\u00e0 \u00e9viter]\n
+
+java.launcher.ergo.message1 =\ La machine virtuelle par d\u00e9faut est {0}
+java.launcher.ergo.message2 =\ car vous utilisez une machine de type serveur.\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ -classpath <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ Une liste s\u00e9par\u00e9e {0} de r\u00e9pertoires, archives JAR\n\ et archives ZIP dans laquelle rechercher des fichiers de classe.\n\ -D<nom>=<valeur>\n\ d\u00e9finir une propri\u00e9t\u00e9 syst\u00e8me\n\ -verbose[:class|gc|jni]\n\ activer une sortie d\u00e9taill\u00e9ee\n\ -version imprimer la version du produit et quitter\n\ -version:<valeur>\n\ utiliser la version sp\u00e9cifi\u00e9e pour l''ex\u00e9cution\n\ -showversion imprimer la version du produit et continuer\n\ -jre-restrict-search | -jre-no-restrict-search\n\ inclure/exclure les JRE priv\u00e9s d''utilisateur dans la recherche de version\n\ -? -help imprimer ce message d''aide\n\ -X imprimer l''aide relative aux options non standard\n\ -ea[:<nom du package>...|:<nom de la classe>]\n\ -enableassertions[:<nom du package>...|:<nom de la classe>]\n\ activer les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -da[:<nom du package>...|:<nom de la classe>]\n\ -disableassertions[:<nom du package>...|:<nom de la classe>]\n\ d\u00e9sactiver les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -esa | -enablesystemassertions\n\ activer les assertions syst\u00e8me\n\ -dsa | -disablesystemassertions\n\ d\u00e9sactiver les assertions syst\u00e8me\n\ -agentlib:<nom de la biblioth\u00e8que>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs<nom de la biblioth\u00e8que>, par exemple -agentlib:hprof\n\ voir \u00e9galement, -agentlib:jdwp=help et -agentlib:hprof=help\n\ -agentpath:<nom du chemin>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs en indiquant le chemin complet\n\ -javaagent:<chemin jar>[=<options>]\n\ charger l''agent de langage de programmation Java, voir java.lang.instrument\n\ -splash:<chemin de l''image>\n\ afficher l''\u00e9cran de bienvenue avec l''image sp\u00e9cifi\u00e9e\nPour plus de d\u00e9tails, reportez-vous \u00e0 la page http://java.sun.com/javase/reference.
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed ex\u00e9cution du mode compil\u00e9 (par d\u00e9faut)\n\ -Xint ex\u00e9cution du mode interpr\u00e9t\u00e9 uniquement\n\ -Xbootclasspath:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ d\u00e9finir le chemin de recherche pour les classes et ressources bootstrap\n\ -Xbootclasspath/a:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ ajouter \u00e0 la fin du chemin de la classe bootstrap\n\ -Xbootclasspath/p:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ ajouter au d\u00e9but du chemin de la classe bootstrap\n\ -Xnoclassgc d\u00e9sactiver la collection d''informations parasites sur la classe\n\ -Xincgc activer la collection incr\u00e9mentielle d''informations parasites\n\ -Xloggc:<fichier> enregistrer le statut GC dans un fichier horodat\u00e9\n\ -Xbatch d\u00e9sactiver la compilation d''arri\u00e8re-plans\n\ -Xms<taille> d\u00e9finir la taille initiale des tas Java\n\ -Xmx<taille> d\u00e9finir la taille maximale des tas Java\n\ -Xss<taille> d\u00e9finir la taille des piles de fil Java\n\ -Xprof \u00e9mettre des donn\u00e9es de profilage d''UC\n\ -Xfuture activer des contr\u00f4les plus stricts, en anticipant les erreurs futures\n\ -Xrs r\u00e9duire l''utilisation des signaux d''OS par Java/la machine virtuelle (reportez-vous \u00e0 la documentation)\n\ -Xcheck:jni effectuer des contr\u00f4les suppl\u00e9mentaires pour les fonctions JNI\n\ -Xshare:off ne pas tenter d''utiliser les donn\u00e9es de classe partag\u00e9es\n\ -Xshare:auto utiliser les donn\u00e9es de classe partag\u00e9es si possible (par d\u00e9faut)\n\ -Xshare:on forcer l''utilisation de donn\u00e9es de classe partag\u00e9es, sinon \u00e9chec.\n\nLes options\u00a0X ne sont pas standard et sont sujettes \u00e0 modification sans pr\u00e9avis.\n
+
+java.launcher.cls.error1=Erreur\u00a0: Impossible de trouver la classe {0} principale
+java.launcher.cls.error2=Erreur\u00a0: La m\u00e9thode principale n''est pas {0} dans la classe {1}. Veuillez d\u00e9finir la m\u00e9thode principale comme\u00a0:\n\ public static void main(String[] args)
+java.launcher.cls.error3=Erreur\u00a0: La m\u00e9thode principale doit renvoyer une valeur de type null dans la classe \{0\. Veuillez \nd\u00e9finir la m\u00e9thode principale comme\u00a0:\n\ public static void main(String[] args)
+java.launcher.cls.error4=Erreur\u00a0: M\u00e9thode principale introuvable dans la classe {0}. Veuillez d\u00e9finir la m\u00e9thode principale comme\u00a0:\n\ public static void main(String[] args)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_it.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = Utilizzo: {0} [-opzioni] class [argom...]\n\ (per eseguire una classe)\n o {0} [-opzioni] -jar jarfile [argom...]\n\ (per eseguire un file jar)\ndove le opzioni includono:\n
+
+java.launcher.opt.datamodel =\ -d{0}\t utilizzo di un modello di dati a {0} bit, se disponibile\n
+java.launcher.opt.vmselect =\ {0}\t per selezionare la macchina virtuale "{1}"\n
+java.launcher.opt.hotspot =\ {0}\t \u00e8 sinonimo della macchina virtuale "{1}" [obsoleta]\n
+
+java.launcher.ergo.message1 =\ La macchina virtuale predefinita \u00e8 {0}
+java.launcher.ergo.message2 =\ perch\u00e9 l'esecuzione avviene su una macchina di classe server.\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <percorso di ricerca classe di directory e file zip/jar>\n\ -classpath <percorso di ricerca classe di directory e file zip/jar>\n\ Elenco separato da {0} di directory, archivi JAR\n\ e archivi ZIP in cui cercare i file di classe.\n\ -D<nome>=<valore>\n\ imposta una propriet\u00e0 di sistema\n\ -verbose[:class|gc|jni]\n\ attiva l''output dettagliato\n\ -version stampa la versione del prodotto ed esce\n\ -version:<valore>\n\ richiede la versione specificata per l''esecuzione\n\ -showversion stampa la versione del prodotto e procede\n\ -jre-restrict-search | -jre-no-restrict-search\n\ consente di includere/escludere JRE privati dell''utente nella ricerca della versione\n\ -? -help stampa il presente messaggio della Guida\n\ -X stampa la Guida delle opzioni non standard\n\ -ea[:<nomepacchetto>...|:<nomeclasse>]\n\ -enableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ attiva le asserzioni con la granularit\u00e0 specificata\n\ -da[:<nomepacchetto>...|:<nomeclasse>]\n\ -disableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ disattiva le asserzioni con la granularit\u00e0 specificata\n\ -esa | -enablesystemassertions\n\ attiva le asserzioni di sistema\n\ -dsa | -disablesystemassertions\n\ disattiva le asserzioni di sistema\n\ -agentlib:<nomelibreria>[=<opzioni>]\n\ carica la libreria agente nativa <nomelibreria>, ad es. -agentlib:hprof\n\ vedere anche, -agentlib:jdwp=help e -agentlib:hprof=help\n\ -agentpath:<percorso>[=<opzioni>]\n\ carica la libreria agente nativa in base al percorso completo\n\ -javaagent:<percorsojar>[=<opzioni>]\n\ carica l''agente del linguaggio di programmazione Java, vedere java.lang.instrument\n\ -splash:<percorsoimmagine>\n\ mostra la schermata iniziale con l''immagine specificata\nPer ulteriori informazioni, visitare http://java.sun.com/javase/reference.
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed esecuzione in modalit\u00e0 mista (predefinita)\n\ -Xint solo esecuzione in modalit\u00e0 interpretata\n\ -Xbootclasspath:<directory e file zip/jar separati da {0}>\n\ imposta il percorso di ricerca per classi e risorse di bootstrap\n\ -Xbootclasspath/a:<directory e file zip/jar separati da {0}>\n\ accoda alla fine del percorso della classe di bootstrap\n\ -Xbootclasspath/p:<directory e file zip/jar separati da {0}>\n\ antepone al percorso della classe di bootsrap\n\ -Xnoclassgc disattiva Garbage Collection per la classe\n\ -Xincgc attiva Garbage Collection incrementale\n\ -Xloggc:<file> registra lo stato GC in un file con timestamp\n\ -Xbatch disattiva la compilazione in background\n\ -Xms<dimensione> imposta la dimensione heap Java iniziale\n\ -Xmx<dimensione> imposta la dimensione heap Java massima\n\ -Xss<dimensione> imposta la dimensione dello stack del thread Java\n\ -Xprof dati di profilo della CPU di output\n\ -Xfuture attiva verifiche pi\u00f9 dettagliate, anticipa le impostazioni predefinite future\n\ -Xrs riduce l''uso di segnali OS da parte di Java o della macchina virtuale (vedere la documentazione)\n\ -Xcheck:jni esegue verifiche aggiuntive per le funzioni JNI\n\ -Xshare:off esclude l''utilizzo di dati classe condivisi\n\ -Xshare:auto imposta l''utilizzo di dati classe condivisi ogni volta che \u00e8 possibile (impostazione predefinita)\n\ -Xshare:on richiede l''utilizzo di dati classe condivisi, in caso contrario origina un errore.\n\nLe opzioni -X sono non standard e soggette a modifiche senza preavviso.\n
+
+java.launcher.cls.error1=Errore: Classe principale {0} non trovata.
+java.launcher.cls.error2=Errore: Il metodo principale non \u00e8 {0} nella classe {1}. Definire il nuovo metodo come:\n\ public static void main(String[] args)
+java.launcher.cls.error3=Errore: Il metodo principale deve restituire un valore di tipo void nella classe {0}. \nDefinire il nuovo metodo come:\n\ public static void main(String[] args)
+java.launcher.cls.error4=Errore: Metodo principale non trovato nella classe {0}. Definire il metodo principale come:\n\ public static void main(String[] args)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = \u4f7f\u7528\u6cd5: {0} [-options] class [args...]\n\ (\u30af\u30e9\u30b9\u3092\u5b9f\u884c\u3059\u308b)\n \u307e\u305f\u306f {0} [-options] -jar jarfile [args...]\n\ (jar \u30d5\u30a1\u30a4\u30eb\u3092\u5b9f\u884c\u3059\u308b)\n\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u4ee5\u4e0b\u306e\u3082\u306e\u304c\u3042\u308a\u307e\u3059:\n
+
+java.launcher.opt.datamodel =\ -d{0}\t {0}-bit \u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u3092\u4f7f\u7528 (\u53ef\u80fd\u306a\u5834\u5408)\n
+java.launcher.opt.vmselect =\ {0}\t "{1}" VM \u3092\u9078\u629e\n
+java.launcher.opt.hotspot =\ {0}\t "{1}" VM \u306e\u540c\u7fa9\u8a9e\u3067\u3059 [\u975e\u63a8\u5968]\n
+
+java.launcher.ergo.message1 =\ \u30c7\u30d5\u30a9\u30eb\u30c8 VM \u306f {0} \u3067\u3059
+java.launcher.ergo.message2 =\ \u7406\u7531\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30af\u30e9\u30b9\u306e\u30de\u30b7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u3089\u3067\u3059\u3002\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ -classpath <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3001JAR \u30a2\u30fc\u30ab\u30a4\u30d6\u3001\n\ \u304a\u3088\u3073 ZIP \u30a2\u30fc\u30ab\u30a4\u30d6\u306e {0} \u3067\u5206\u5272\u3055\u308c\u305f\u30ea\u30b9\u30c8\u3002\n\ -D<name>=<value>\n\ \u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u8a2d\u5b9a\n\ -verbose[:class|gc|jni]\n\ \u8a73\u7d30\u51fa\u529b\u306e\u6709\u52b9\u5316\n\ -version \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d42\u4e86\n\ -version:<value>\n\ \u5b9f\u884c\u306b\u5fc5\u8981\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8981\u6c42\n\ -showversion \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d99\u7d9a\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u30d0\u30fc\u30b8\u30e7\u30f3\u691c\u7d22\u306b\u30e6\u30fc\u30b6\u30fc\u306e\u975e\u516c\u958b JRE \u3092\u542b\u3081\u308b\u304b\u9664\u5916\u3059\u308b\u304b\u3092\u5207\u308a\u66ff\u3048\u308b\n\ -? -help \u3053\u306e\u30d8\u30eb\u30d7\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5370\u5237\n\ -X \u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u30d8\u30eb\u30d7\u3092\u5370\u5237\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -esa | -enablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -dsa | -disablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -agentlib:<libname>[=<options>]\n\ \u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea <libname> (\u4f8b: -agentlib:hprof) \u3092\u30ed\u30fc\u30c9\n\ \u95a2\u9023\u9805\u76ee\u3001 -agentlib:jdwp=help and -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u5b8c\u5168\u306a\u30d1\u30b9\u540d\u3067\u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ed\u30fc\u30c9\n\ -javaagent:<jarpath>[=<options>]\n\ Java \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u30ed\u30fc\u30c9\u3002java.lang.instrument \u3092\u53c2\u7167\n\ -splash:<imagepath>\n\ \u6307\u5b9a\u3057\u305f\u753b\u50cf\u306e\u30b9\u30d7\u30e9\u30c3\u30b7\u30e5\u753b\u9762\u3092\u8868\u793a\n\u8a73\u7d30\u306f http://java.sun.com/javase/reference \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed \u6df7\u5408\u30e2\u30fc\u30c9\u3067\u306e\u5b9f\u884c (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ -Xint \u30a4\u30f3\u30bf\u30fc\u30d7\u30ea\u30bf\u30e2\u30fc\u30c9\u3067\u306e\u307f\u5b9f\u884c\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u304a\u3088\u3073\u30ea\u30bd\u30fc\u30b9\u306e\u691c\u7d22\u30d1\u30b9\u3092\u8a2d\u5b9a\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u30d1\u30b9\u306e\u672b\u5c3e\u306b\u8ffd\u52a0\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u30d1\u30b9\u306e\u5192\u982d\u306b\u8ffd\u52a0\n\ -Xnoclassgc \u30af\u30e9\u30b9\u30ac\u30fc\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -Xincgc \u5897\u5206\u30ac\u30fc\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -Xloggc:<file> \u30d5\u30a1\u30a4\u30eb\u306e GC \u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u4ed8\u304d\u3067\u8a18\u9332\n\ -Xbatch \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u7121\u52b9\u5316\n\ -Xms<size> \u521d\u671f Java \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xmx<size> \u6700\u5927 Java \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xss<size> Java \u30b9\u30ec\u30c3\u30c9\u30b9\u30bf\u30c3\u30af\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xprof CPU \u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30c7\u30fc\u30bf\u3092\u51fa\u529b\n\ -Xfuture \u4eca\u5f8c\u30c7\u30d5\u30a9\u30eb\u30c8\u3068\u3059\u308b\u6700\u3082\u53b3\u683c\u306a\u30c1\u30a7\u30c3\u30af\u3092\u6709\u52b9\u5316\n\ -Xrs Java/VM \u306e OS \u30b7\u30b0\u30ca\u30eb\u4f7f\u7528\u3092\u524a\u6e1b (\u30de\u30cb\u30e5\u30a2\u30eb\u3092\u53c2\u7167)\n\ -Xcheck:jni JNI \u95a2\u6570\u306e\u8ffd\u52a0\u30c1\u30a7\u30c3\u30af\u3092\u5b9f\u884c\n\ -Xshare:off \u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u306e\u4f7f\u7528\u3092\u8a66\u884c\u3057\u306a\u3044\n\ -Xshare:auto \u53ef\u80fd\u306a\u5834\u5408\u306f\u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u3092\u4f7f\u7528 (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ -Xshare:on \u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u306e\u4f7f\u7528\u3092\u8981\u6c42 (\u305d\u3046\u3057\u306a\u3044\u3068\u969c\u5bb3\u304c\u767a\u751f\u3059\u308b\u5834\u5408)\n\n-X \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u975e\u6a19\u6e96\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3042\u308a\u3001\u4e88\u544a\u306a\u304f\u5909\u66f4\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\n
+
+java.launcher.cls.error1=\u30a8\u30e9\u30fc: \u30e1\u30a4\u30f3\u30af\u30e9\u30b9 {0} \u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002
+java.launcher.cls.error2=\u30a8\u30e9\u30fc: \u30af\u30e9\u30b9 {1} \u3067\u3001\u30e1\u30a4\u30f3\u30e1\u30bd\u30c3\u30c9\u304c {0} \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30e1\u30a4\u30f3\u30e1\u30bd\u30c3\u30c9\u3092\u6b21\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3057\u3066\u304f\u3060\u3055\u3044:\n\ public static void main(String[] args)
+java.launcher.cls.error3=\u30a8\u30e9\u30fc: \u30af\u30e9\u30b9 {0} \u3067\u3001\u30e1\u30a4\u30f3\u30e1\u30bd\u30c3\u30c9\u306f void \u578b\u306e\u5024\u3092\u8fd4\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n\u30e1\u30a4\u30f3\u30e1\u30bd\u30c3\u30c9\u3092\u6b21\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3057\u3066\u304f\u3060\u3055\u3044:\n\ public static void main(String[] args)
+java.launcher.cls.error4=\u30a8\u30e9\u30fc: \u30af\u30e9\u30b9 {1} \u3067\u3001\u30e1\u30a4\u30f3\u30e1\u30bd\u30c3\u30c9\u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002\u30e1\u30a4\u30f3\u30e1\u30bd\u30c3\u30c9\u3092\u6b21\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3057\u3066\u304f\u3060\u3055\u3044:\n\ public static void main(String[] args)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = \uc0ac\uc6a9\ubc95: {0} [-options] class [args...]\n\ (\ud074\ub798\uc2a4 \uc2e4\ud589)\n \ub610\ub294 {0} [-options] -jar jarfile [args...]\n\ (jar \ud30c\uc77c \uc2e4\ud589)\n\uc635\uc158:\n
+
+java.launcher.opt.datamodel =\ -d{0}\t \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uacbd\uc6b0 {0}\ube44\ud2b8 \ub370\uc774\ud130 \ubaa8\ub378 \uc0ac\uc6a9\n
+java.launcher.opt.vmselect =\ {0}\t "{1}" VM \uc120\ud0dd \uc2dc\n
+java.launcher.opt.hotspot =\ {0}\t "{1}" VM[\ub354 \uc774\uc0c1 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc74c]\uacfc \ub3d9\uc77c \n
+
+java.launcher.ergo.message1 =\ \uae30\ubcf8 VM\uc740 {0}\uc784
+java.launcher.ergo.message2 =\ \uadf8 \uc774\uc720\ub294 \uc11c\ubc84 \ud074\ub798\uc2a4 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc2e4\ud589 \uc911\uc774\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ -classpath <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ \ud074\ub798\uc2a4 \ud30c\uc77c\uc744 \uac80\uc0c9\ud558\uae30 \uc704\ud55c \ub514\ub809\ud1a0\ub9ac, JAR \uc544\uce74\uc774\ube0c \ubc0f\n\ ZIP \uc544\uce74\uc774\ube0c\uc758 {0} \uad6c\ubd84\ub41c \ubaa9\ub85d\uc785\ub2c8\ub2e4.\n\ -D<name>=<value>\n\ \uc2dc\uc2a4\ud15c \ub4f1\ub85d \uc815\ubcf4 \uc124\uc815\n\ -verbose[:class|gc|jni]\n\ \ucd94\uac00 \ucd9c\ub825 \uc0ac\uc6a9\n\ -version \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uc885\ub8cc\n\ -version:<value>\n\ \uc2e4\ud589\ud558\ub824\uba74 \uc9c0\uc815\ud55c \ubc84\uc804 \ud544\uc694\n\ -showversion \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uacc4\uc18d\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \ubc84\uc804 \uac80\uc0c9\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uac1c\uc778 JRE \ud3ec\ud568/\uc81c\uc678\n\ -? -help \uc774 \ub3c4\uc6c0\ub9d0 \uba54\uc2dc\uc9c0 \uc778\uc1c4\n\ -X \ube44\ud45c\uc900 \uc635\uc158\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0 \uc778\uc1c4\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -esa | -enablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9\n\ -dsa | -disablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -agentlib:<libname>[=<options>]\n\ \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac <libname> \ub85c\ub4dc, \uc608: -agentlib:hprof\n\ \ucc38\uc870: -agentlib:jdwp=help \ubc0f -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \uc804\uccb4 \uacbd\ub85c \uc774\ub984\uc73c\ub85c \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub85c\ub4dc\n\ -javaagent:<jarpath>[=<options>]\n\ Java \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 \uc5d0\uc774\uc804\ud2b8 \ub85c\ub4dc, java.lang.instrument \ucc38\uc870\n\ -splash:<imagepath>\n\ \uc9c0\uc815\ud55c \uc774\ubbf8\uc9c0\uc758 \uc2a4\ud50c\ub798\uc2dc \ud654\uba74 \ud45c\uc2dc\n\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 http://java.sun.com/javase/reference\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624.
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed \ud63c\ud569 \ubaa8\ub4dc \uc2e4\ud589(\uae30\ubcf8\uac12)\n\ -Xint \ud574\uc11d\ub41c \ubaa8\ub4dc \uc2e4\ud589 \uc804\uc6a9\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4\uc640 \uc790\uc6d0\uc758 \uac80\uc0c9 \uacbd\ub85c \uc124\uc815\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4 \uacbd\ub85c \ub05d\uc5d0 \ucd94\uac00\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4 \uacbd\ub85c \uc55e\uc5d0 \ucd94\uac00\n\ -Xnoclassgc \ud074\ub798\uc2a4 \uac00\ube44\uc9c0 \uceec\ub809\uc158 \uc0ac\uc6a9 \uc548 \ud568\n\ -Xincgc \uc99d\ubd84 \uac00\ube44\uc9c0 \uceec\ub809\uc158 \uc0ac\uc6a9\n\ -Xloggc:<file> GC \uc0c1\ud0dc\ub97c \ud0c0\uc784 \uc2a4\ud0ec\ud504\uc640 \ud568\uaed8 \ud30c\uc77c\uc5d0 \ub85c\uadf8\n\ -Xbatch \ubc31\uadf8\ub77c\uc6b4\ub4dc \ucef4\ud30c\uc77c \uc0ac\uc6a9 \uc548 \ud568\n\ -Xms<size> \ucd08\uae30 Java \ud799 \ud06c\uae30 \uc124\uc815\n\ -Xmx<size> \ucd5c\ub300 Java \ud799 \ud06c\uae30 \uc124\uc815\n\ -Xss<size> java \uc2a4\ub808\ub4dc \uc2a4\ud0dd \ud06c\uae30 \uc124\uc815\n\ -Xprof cpu \ud504\ub85c\ud30c\uc77c\ub9c1 \ub370\uc774\ud130 \ucd9c\ub825\n\ -Xfuture \ubbf8\ub798 \uae30\ubcf8\uac12\uc744 \uc608\uce21\ud558\uc5ec \uac00\uc7a5 \uc5c4\uaca9\ud55c \uac80\uc0ac \uc0ac\uc6a9\n\ -Xrs Java/VM\uc5d0 \uc758\ud55c OS \uc2e0\ud638 \uc0ac\uc6a9 \uac10\uc18c(\uc124\uba85\uc11c \ucc38\uc870)\n\ -Xcheck:jni JNI \uae30\ub2a5\uc5d0 \ub300\ud55c \ucd94\uac00\uc801\uc778 \uac80\uc0ac \uc218\ud589\n\ -Xshare:off \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130\uc758 \uc0ac\uc6a9\uc744 \uc2dc\ub3c4\ud558\uc9c0 \uc54a\uc74c\n\ -Xshare:auto \uac00\ub2a5\ud55c \uacbd\uc6b0 \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130 \uc0ac\uc6a9(\uae30\ubcf8\uac12)\n\ -Xshare:on \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\uba70 \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \uc2e4\ud328.\n\n-X \uc635\uc158\uc740 \ud45c\uc900\uc774 \uc544\ub2c8\uba70 \uc54c\ub9bc \uc5c6\uc774 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n
+
+java.launcher.cls.error1=\uc624\ub958: \uae30\ubcf8 \ud074\ub798\uc2a4 {0}\uc744(\ub97c) \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+java.launcher.cls.error2=\uc624\ub958: \ud575\uc2ec \uba54\uc18c\ub4dc\uac00 \ud074\ub798\uc2a4 {1}\uc758 {0}\uc774(\uac00) \uc544\ub2d9\ub2c8\ub2e4. \ud575\uc2ec \uba54\uc18c\ub4dc\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\uc758\ud558\uc2ed\uc2dc\uc624.\n\ public static void main(String[] args)
+java.launcher.cls.error3=\uc624\ub958: \ud575\uc2ec \uba54\uc18c\ub4dc\ub294 \ud074\ub798\uc2a4 {0}\uc758 void \uc720\ud615\uc758 \uac12\uc744 \ubc18\ud658\ud574\uc57c \ud569\ub2c8\ub2e4.\n\ud575\uc2ec \uba54\uc18c\ub4dc\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\uc758\ud558\uc2ed\uc2dc\uc624.\n\ public static void main(String[] args)
+java.launcher.cls.error4=\uc624\ub958: \ud575\uc2ec \uba54\uc18c\ub4dc\ub97c \ud074\ub798\uc2a4 {0}\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ud575\uc2ec \uba54\uc18c\ub4dc\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\uc758\ud558\uc2ed\uc2dc\uc624.\n\ public static void main(String[] args)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = Anv\u00e4ndning: {0} [-alternativ] class [arg...]\n\ (f\u00f6r att k\u00f6ra en klass)\n or {0} [-alternativ] -jar jarfile [arg...]\n\ (f\u00f6r att k\u00f6ra en jar-fil)\nbland alternativen kan n\u00e4mnas:\n
+
+java.launcher.opt.datamodel =\ -d{0}\t anv\u00e4nd en {0}-bitars datamodell om den finns tillg\u00e4nglig\n
+java.launcher.opt.vmselect =\ {0}\t f\u00f6r att v\u00e4lja "{1}" VM\n
+java.launcher.opt.hotspot =\ {0}\t \u00e4r liktydigt med "{1}"-VM [utfasad]\n
+
+java.launcher.ergo.message1 =\ Standard-VM \u00e4r {0}
+java.launcher.ergo.message2 =\ eftersom du k\u00f6r p\u00e5 en dator med server-klass.\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filers>\n\ -classpath <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filer>\n\ en med {0} avgr\u00e4nsad lista \u00f6ver kataloger, JAR-arkiv\n\ och ZIP-arkiv f\u00f6r s\u00f6kning efter klassfiler.\n\ -D<namn>=<v\u00e4rde>\n\ ange en systemegenskap\n\ -verbose[:klass|gc|jni]\n\ visa mer text\n\ -version skriv ut produktversionen och avsluta\n\ -version:<value>\n\ kr\u00e4ver den angivna versionen f\u00f6r att kunna k\u00f6ras\n\ -showversion skriv ut produktversion och forts\u00e4tt\n\ -jre-restrict-search | -jre-no-restrict-search\n\ inkludera/exkludera anv\u00e4ndarens privata JRE-filer i versionss\u00f6kningen\n\ -? -help skriver ut det h\u00e4r hj\u00e4lpmeddelandet\n\ -X skriv ut hj\u00e4lp f\u00f6r alternativ som inte \u00e4r standard\n\ -ea[:<paketnamn>...|:<klassnamn>]\n\ -enableassertions[:<paketnamn>...|:<klassnamn>]\n\ aktivera bekr\u00e4ftelser med angiven precision\n\ -da[:<paketnamn>...|:<klassnamn>]\n\ -disableassertions[:<paketnamn>...|:<klassnamn>]\n\ inaktivera bekr\u00e4ftelser med angiven precision\n\ -esa | -enablesystemassertions\n\ aktivera systembekr\u00e4ftelser\n\ -dsa | -disablesystemassertions\n\ inaktivera systembekr\u00e4ftelser\n\ -agentlib:<biblnamn>[=<alternativ>]\n\ l\u00e4s in det interna agentbiblioteket <biblnamn>, t.ex. -agentlib:hprof\n\ se \u00e4ven, -agentlib:jdwp=help och -agentlib:hprof=help\n\ -agentpath:<filnamn>[=<alternativ>]\n\ l\u00e4s in internt agentbibliotek utifr\u00e5n fullst\u00e4ndig s\u00f6kv\u00e4g\n\ -javaagent:<jar-s\u00f6kv\u00e4g>[=<alternativ>]\n\ l\u00e4s in agenten f\u00f6r programmeringsspr\u00e5ket Java, se java.lang.instrument\n\ -splash:<bilds\u00f6kv\u00e4g>\n\ visa v\u00e4lkomstf\u00f6nster med angiven bild\nMer information finns p\u00e5 http://java.sun.com/javase/reference.
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed k\u00f6rning i blandat l\u00e4ge (standard)\n\ -Xint endast k\u00f6rning i tolkat l\u00e4ge\n\ -Xbootclasspath:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ ange s\u00f6kv\u00e4g f\u00f6r bootstrap-klasser och -resurser\n\ -Xbootclasspath/a:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ l\u00e4gg till p\u00e5 slutet av s\u00f6kv\u00e4gen till bootstrap-klassen\n\ -Xbootclasspath/p:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ l\u00e4gg till i b\u00f6rjan av s\u00f6kv\u00e4gen till bootstrap-klassen\n\ -Xnoclassgc inaktivera skr\u00e4pinsamling f\u00f6r klass\n\ -Xincgc aktivera inkrementell skr\u00e4pinsaming\n\ -Xloggc:<file> logga GC-status till en fil med tidsst\u00e4mpel\n\ -Xbatch inaktivera kompilering i bakgrunden\n\ -Xms<size> st\u00e4ll in ursprunglig heapstorlek f\u00f6r Java\n\ -Xmx<size> st\u00e4ll in st\u00f6rsta heapstorlek f\u00f6r Java\n\ -Xss<size> st\u00e4ll in tr\u00e5dstackens storlek f\u00f6r Java\n\ -Xprof visa profileringsdata om processorn\n\ -Xfuture aktivera de mest rigor\u00f6sa kontrollerna och f\u00f6regrip framtida standardl\u00e4ge\n\ -Xrs minska anv\u00e4ndningen av signaler fr\u00e5n operativsystemet i Java/VM (mer information finns i dokumentationen)\n\ -Xcheck:jni utf\u00f6r ytterligare kontroller f\u00f6r JNI-funktioner\n\ -Xshare:off f\u00f6rs\u00f6k inte att anv\u00e4nda delade klassdata\n\ -Xshare:auto anv\u00e4nd om m\u00f6jligt delade klassdata (standard)\n\ -Xshare:on kr\u00e4v att delade klassdata anv\u00e4nds, skicka fel om s\u00e5 inte \u00e4r fallet.\n\n -X-alternativen betraktas inte som standard och kan \u00e4ndras utan att detta meddelas.\n
+
+java.launcher.cls.error1=Fel: Det g\u00e5r inte att hitta klassen main {0}
+java.launcher.cls.error2=Fel: Metoden i main \u00e4r inte {0} i klass {1}. Ange huvudmetoden som:\n\ public static void main(String[] args)
+java.launcher.cls.error3=Fel: Metoden i main m\u00e5ste returnera ett v\u00e4rde av typen void i klass {0}. Definiera \nmetoden i main som:\n\ public static void main(String[] args)
+java.launcher.cls.error4=Fel: Klass {0} saknar metod i main. Definiera metoden som:\n\ public static void main(String[] args)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = \u7528\u6cd5\uff1a{0} [-\u9009\u9879] class [\u53c2\u6570...]\n\ \uff08\u6267\u884c\u4e00\u4e2a\u7c7b\uff09\n \u6216 {0} [-\u9009\u9879] -jar jarfile [\u53c2\u6570...]\n\ \uff08\u6267\u884c\u4e00\u4e2a jar \u6587\u4ef6\uff09\n\u5176\u4e2d\uff0c\u9009\u9879\u5305\u62ec\uff1a\n
+
+java.launcher.opt.datamodel =\ -d{0}\t \u4f7f\u7528\u4e00\u4e2a {0} \u4f4d\u6570\u636e\u6a21\u578b\uff08\u5982\u679c\u53ef\u7528\uff09\n
+java.launcher.opt.vmselect =\ {0}\t \u9009\u62e9 "{1}" VM\n
+java.launcher.opt.hotspot =\ {0}\t \u4e3a "{1}" VM \u7684\u540c\u4e49\u8bcd [\u5df2\u8fc7\u65f6]\n
+
+java.launcher.ergo.message1 =\ \u9ed8\u8ba4\u7684 VM \u4e3a {0}
+java.launcher.ergo.message2 =\ \u56e0\u4e3a\u60a8\u662f\u5728\u670d\u52a1\u5668\u7c7b\u8ba1\u7b97\u673a\u4e0a\u8fd0\u884c\u3002\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ -classpath <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ \u4e00\u4e2a\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u3001JAR \u5f52\u6863\u6587\u4ef6\n\ \u548c ZIP \u5f52\u6863\u6587\u4ef6\u7684\u5217\u8868\uff0c\u7528\u4e8e\u641c\u7d22\u7c7b\u6587\u4ef6\u3002\n\ -D<name>=<value>\n\ \u8bbe\u7f6e\u7cfb\u7edf\u5c5e\u6027\n\ -verbose[:class|gc|jni]\n\ \u542f\u7528\u8be6\u7ec6\u8f93\u51fa\n\ -version \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u9000\u51fa\n\ -version:<value>\n\ \u8981\u6c42\u8fd0\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u7ee7\u7eed\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u5728\u7248\u672c\u641c\u7d22\u4e2d\u5305\u62ec/\u4e0d\u5305\u62ec\u7528\u6237\u79c1\u6709 JRE\n\ -? -help \u663e\u793a\u6b64\u5e2e\u52a9\u6d88\u606f\n\ -X \u663e\u793a\u6709\u5173\u975e\u6807\u51c6\u9009\u9879\u7684\u5e2e\u52a9\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u542f\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u7981\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -esa | -enablesystemassertions\n\ \u542f\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -dsa | -disablesystemassertions\n\ \u7981\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -agentlib:<libname>[=<options>]\n\ \u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93 <libname>\uff0c\u4f8b\u5982\uff1a-agentlib:hprof\n\ \u53e6\u8bf7\u53c2\u89c1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4ee5\u5168\u8def\u5f84\u540d\u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93\n\ -javaagent:<jarpath>[=<options>]\n\ \u88c5\u5165 Java \u7f16\u7a0b\u8bed\u8a00\u4ee3\u7406\uff0c\u8bf7\u53c2\u89c1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u4f7f\u7528\u6307\u5b9a\u56fe\u50cf\u663e\u793a\u95ea\u73b0\u5c4f\u5e55\n\u6709\u5173\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 http://java.sun.com/javase/reference\u3002
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed \u6df7\u5408\u6a21\u5f0f\u6267\u884c\uff08\u9ed8\u8ba4\uff09\n\ -Xint \u4ec5\u89e3\u91ca\u6a21\u5f0f\u6267\u884c\n\ -Xbootclasspath:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u8bbe\u7f6e\u5f15\u5bfc\u7c7b\u548c\u8d44\u6e90\u7684\u641c\u7d22\u8def\u5f84\n\ -Xbootclasspath/a:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u9644\u52a0\u5230\u5f15\u5bfc\u7c7b\u8def\u5f84\u5c3e\u90e8\n\ -Xbootclasspath/p:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u7f6e\u4e8e\u5f15\u5bfc\u7c7b\u8def\u5f84\u524d\u9762\n\ -Xnoclassgc \u7981\u7528\u7c7b\u5783\u573e\u6536\u96c6\n\ -Xincgc \u542f\u7528\u589e\u91cf\u5783\u573e\u6536\u96c6\n\ -Xloggc:<\u6587\u4ef6> \u5c06 GC \u72b6\u6001\u8bb0\u5f55\u5230\u4e00\u4e2a\u5e26\u6709\u65f6\u95f4\u6233\u7684\u6587\u4ef6\n\ -Xbatch \u7981\u7528\u540e\u53f0\u7f16\u8bd1\n\ -Xms<\u5927\u5c0f> \u8bbe\u7f6e\u521d\u59cb Java \u5806\u5927\u5c0f\n\ -Xmx<\u5927\u5c0f> \u8bbe\u7f6e\u6700\u5927 Java \u5806\u5927\u5c0f\n\ -Xss<\u5927\u5c0f> \u8bbe\u7f6e Java \u7ebf\u7a0b\u5806\u6808\u5927\u5c0f\n\ -Xprof \u8f93\u51fa CPU \u914d\u7f6e\u6570\u636e\n\ -Xfuture \u542f\u7528\u6700\u4e25\u683c\u7684\u68c0\u67e5\uff0c\u672a\u6765\u53ef\u80fd\u4f1a\u6210\u4e3a\u9ed8\u8ba4\u9009\u9879\n\ -Xrs \u51cf\u5c11 Java/VM \u5bf9\u64cd\u4f5c\u7cfb\u7edf\u4fe1\u53f7\u7684\u4f7f\u7528\uff08\u8bf7\u53c2\u89c1\u6587\u6863\uff09\n\ -Xcheck:jni \u9488\u5bf9 JNI \u529f\u80fd\u6267\u884c\u989d\u5916\u7684\u68c0\u67e5\n\ -Xshare:off \u4e0d\u5c1d\u8bd5\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\n\ -Xshare:auto \u5982\u679c\u53ef\u80fd\u7684\u8bdd\uff0c\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\uff08\u9ed8\u8ba4\uff09\n\ -Xshare:on \u8981\u6c42\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\uff0c\u5426\u5219\u4f1a\u5931\u8d25\u3002\n\n-X \u9009\u9879\u662f\u975e\u6807\u51c6\u9009\u9879\uff0c\u5982\u6709\u66f4\u6539\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002\n
+
+java.launcher.cls.error1=\u9519\u8bef\uff1a\u627e\u4e0d\u5230\u4e3b\u7c7b {0}
+java.launcher.cls.error2=\u9519\u8bef\uff1aMain \u65b9\u6cd5\u4e0d\u662f\u7c7b {1} \u4e2d\u7684 {0}\uff0c\u8bf7\u5c06 main \u65b9\u6cd5\u5b9a\u4e49\u4e3a\uff1a\n\ public static void main(String[] args)
+java.launcher.cls.error3=\u9519\u8bef\uff1a\u5728\u7c7b {0} \u4e2d\uff0cMain \u65b9\u6cd5\u5fc5\u987b\u8fd4\u56de void \u7c7b\u578b\u7684\u503c\uff0c\u8bf7\u5c06 \nmain \u65b9\u6cd5\u5b9a\u4e49\u4e3a\uff1a\n\ public static void main(String[] args)
+java.launcher.cls.error4=\u9519\u8bef\uff1a\u5728\u7c7b {0} \u4e2d\u672a\u627e\u5230 Main \u65b9\u6cd5\uff0c\u8bf7\u5c06 main \u65b9\u6cd5\u5b9a\u4e49\u4e3a\uff1a\n\ public static void main(String[] args)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,47 @@
+#
+# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.header = \u7528\u6cd5: {0} [-options] class [args...]\n\ (\u57f7\u884c\u985e\u5225)\n \u6216 {0} [-options] -jar jarfile [args...]\n\ (\u57f7\u884c jar \u6a94\u6848)\n\u5176\u4e2d options \u5305\u62ec:\n
+
+java.launcher.opt.datamodel =\ -d{0}\t \u4f7f\u7528 {0} \u4f4d\u5143\u8cc7\u6599\u6a21\u5f0f (\u5982\u679c\u53ef\u7528)\n
+java.launcher.opt.vmselect =\ {0}\t \u9078\u53d6\u300c{1}\u300dVM\n
+java.launcher.opt.hotspot =\ {0}\t \u662f\u300c{1}\u300dVM [\u5df2\u505c\u7528] \u7684\u540c\u7fa9\u8a5e\n
+
+java.launcher.ergo.message1 =\ \u9810\u8a2d VM \u70ba {0}
+java.launcher.ergo.message2 =\ \u56e0\u70ba\u60a8\u6b63\u57f7\u884c\u65bc\u4f3a\u670d\u5668\u7d1a\u7684\u6a5f\u5668\u4e0a\u3002\n
+
+# Translators please note do not translate the options themselves
+java.launcher.opt.footer =\ -cp <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ -classpath <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ {0} \u76ee\u9304\u3001JAR \u6b78\u6a94\n\ \u548c ZIP \u6b78\u6a94\u7684\u5206\u9694\u6e05\u55ae\uff0c\u7528\u65bc\u641c\u5c0b\u985e\u5225\u6a94\u6848\u3002\n\ -D<name>=<value>\n\ \u8a2d\u5b9a\u7cfb\u7d71\u7279\u6027\n\ -verbose[:class|gc|jni]\n\ \u555f\u7528\u8a73\u7d30\u8f38\u51fa\n\ -version \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7d50\u675f\n\ -version:<value>\n\ \u9700\u8981\u57f7\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7e7c\u7e8c\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u5728\u7248\u672c\u641c\u5c0b\u4e2d\u5305\u542b/\u6392\u9664\u4f7f\u7528\u8005\u79c1\u7528 JRE\n\ -? -help \u5217\u5370\u6b64\u8aaa\u660e\u8a0a\u606f\n\ -X \u5217\u5370\u6709\u95dc\u975e\u6a19\u6e96\u9078\u9805\u7684\u8aaa\u660e\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u555f\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u505c\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -esa | -enablesystemassertions\n\ \u555f\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -dsa | -disablesystemassertions\n\ \u505c\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -agentlib:<libname>[=<options>]\n\ \u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\u7a0b\u5f0f\u5eab <libname>\uff0c\u4f8b\u5982 -agentlib:hprof\n\ \u53e6\u8acb\u53c3\u95b1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4f9d\u64da\u5b8c\u6574\u8def\u5f91\u540d\u7a31\u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\n\ -javaagent:<jarpath>[=<options>]\n\ \u8f09\u5165 Java \u7a0b\u5f0f\u8a2d\u8a08\u8a9e\u8a00\u4ee3\u7406\u7a0b\u5f0f\uff0c\u8acb\u53c3\u95b1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u986f\u793a\u542b\u6709\u6307\u5b9a\u5f71\u50cf\u7684\u8edf\u9ad4\u8cc7\u8a0a\u756b\u9762\n\u8acb\u53c3\u95b1 http://java.sun.com/javase/reference\uff0c\u4ee5\u53d6\u5f97\u66f4\u591a\u8a73\u7d30\u8cc7\u8a0a\u3002
+
+# Translators please note do not translate the options themselves
+java.launcher.X.usage=\ -Xmixed \u57f7\u884c\u6df7\u5408\u6a21\u5f0f (\u9810\u8a2d)\n\ -Xint \u50c5\u57f7\u884c\u89e3\u8b6f\u6a21\u5f0f\n\ -Xbootclasspath:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u8a2d\u5b9a\u555f\u52d5\u985e\u5225\u548c\u8cc7\u6e90\u7684\u641c\u5c0b\u8def\u5f91\n\ -Xbootclasspath/a:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u9644\u52a0\u81f3\u555f\u52d5\u985e\u5225\u7684\u672b\u5c3e\n\ -Xbootclasspath/p:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u524d\u7f6e\u65bc\u555f\u52d5\u985e\u5225\u8def\u5f91\u7684\u524d\u9762\n\ -Xnoclassgc \u505c\u7528\u985e\u5225\u56de\u6536\u6536\u96c6\n\ -Xincgc \u555f\u7528\u905e\u589e\u56de\u6536\u6536\u96c6\n\ -Xloggc:<\u6a94\u6848> \u4f7f\u7528\u6642\u9593\u6233\u8a18\u5c07 GC \u72c0\u614b\u8a18\u9304\u81f3\u6a94\u6848\n\ -Xbatch \u505c\u7528\u80cc\u5f71\u7de8\u8b6f\n\ -Xms<\u5927\u5c0f> \u8a2d\u5b9a\u521d\u59cb Java \u5806\u758a\u5927\u5c0f\n\ -Xmx<\u5927\u5c0f> \u8a2d\u5b9a\u6700\u5927 Java \u5806\u758a\u5927\u5c0f\n\ -Xss<\u5927\u5c0f> \u8a2d\u5b9a java \u57f7\u884c\u7dd2\u5806\u758a\u5927\u5c0f\n\ -Xprof \u8f38\u51fa cpu \u8a2d\u5b9a\u6a94\u8cc7\u6599\n\ -Xfuture \u555f\u7528\u6700\u56b4\u683c\u7684\u6aa2\u67e5\uff0c\u9810\u671f\u672a\u4f86\u9810\u8a2d\u503c\n\ -Xrs \u964d\u4f4e Java/VM \u7684 OS \u8a0a\u865f\u4f7f\u7528 (\u8acb\u53c3\u95b1\u6587\u4ef6)\n\ -Xcheck:jni \u5c0d JNI \u529f\u80fd\u57f7\u884c\u5176\u4ed6\u6aa2\u67e5\n\ -Xshare:off \u4e0d\u5617\u8a66\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599\n\ -Xshare:auto \u5982\u53ef\u80fd\uff0c\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599 (\u9810\u8a2d)\n\ -Xshare:on \u9700\u8981\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599\uff0c\u5426\u5247\u6703\u5931\u6557\u3002\n\n-X \u9078\u9805\u70ba\u975e\u6a19\u6e96\u9078\u9805\uff0c\u53ef\u80fd\u6703\u8b8a\u66f4\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002\n
+
+java.launcher.cls.error1=\u932f\u8aa4\uff1a\u627e\u4e0d\u5230\u4e3b\u985e\u5225 {0}
+java.launcher.cls.error2=\u932f\u8aa4\uff1a\u5728\u985e\u5225 {1} \u4e2d\uff0c\u4e3b\u65b9\u6cd5\u4e0d\u662f {0}\uff0c\u8acb\u5b9a\u7fa9\u4e3b\u65b9\u6cd5\u70ba:\n\ public static void main(String[] args)
+java.launcher.cls.error3=\u932f\u8aa4\uff1a\u5728\u985e\u5225 {0} \u4e2d\uff0c\u4e3b\u65b9\u6cd5\u5fc5\u9808\u50b3\u56de\u985e\u578b void \u7684\u503c\uff0c\u8acb\n\u5b9a\u7fa9\u4e3b\u65b9\u6cd5\u70ba:\n\ public static void main(String[] args)
+java.launcher.cls.error4=\u932f\u8aa4\uff1a\u5728\u985e\u5225 {0} \u4e2d\u627e\u4e0d\u5230\u4e3b\u65b9\u6cd5\uff0c\u8acb\u5b9a\u7fa9\u4e3b\u65b9\u6cd5\u70ba:\n\ public static void main(String[] args)
+
+
--- a/jdk/src/share/classes/sun/management/resources/agent_de.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_de.properties Wed Jul 05 17:10:40 2017 +0200
@@ -46,6 +46,12 @@
agent.err.invalid.jmxremote.port = Ung\u00fcltige Nummer f\u00fcr com.sun.management.jmxremote.port
+agent.err.file.not.set = Datei nicht angegeben
+agent.err.file.not.readable = Datei nicht lesbar
+agent.err.file.read.failed = Datei konnte nicht gelesen werden
+agent.err.file.not.found = Datei wurde nicht gefunden
+agent.err.file.access.not.restricted = Lesezugriff auf die Datei muss eingeschr\u00e4nkt sein
+
agent.err.password.file.notset = Es wurde keine Passwortdatei angegeben, obwohl com.sun.management.jmxremote.authenticate auf \"true\" gesetzt ist.
agent.err.password.file.not.readable = Passwortdatei kann nicht gelesen werden.
agent.err.password.file.read.failed = Passwortdatei konnte nicht gelesen werden.
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = Keine Authentifizierung
jmxremote.ConnectorBootstrap.initialize.ready = JMX-Anschluss bereit unter: {0}
jmxremote.ConnectorBootstrap.initialize.password.readonly = Lesezugriff auf Passwortdatei muss eingeschr\u00e4nkt sein. {0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = Lesezugriff auf die Datei muss eingeschr\u00e4nkt sein: {0}
jmxremote.AdaptorBootstrap.getTargetList.processing = ACL verarbeiten
jmxremote.AdaptorBootstrap.getTargetList.adding = Ziel hinzuf\u00fcgen: {0}
--- a/jdk/src/share/classes/sun/management/resources/agent_es.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_es.properties Wed Jul 05 17:10:40 2017 +0200
@@ -46,6 +46,12 @@
agent.err.invalid.jmxremote.port = N\u00famero com.sun.management.jmxremote.port no v\u00e1lido
+agent.err.file.not.set = Archivo no especificado
+agent.err.file.not.readable = Archivo ilegible
+agent.err.file.read.failed = Error al leer el archivo
+agent.err.file.not.found = Archivo no encontrado
+agent.err.file.access.not.restricted = Se debe restringir el acceso de lectura al archivo
+
agent.err.password.file.notset = El archivo de contrase\u00f1as no se ha especificado, pero com.sun.management.jmxremote.authenticate=true
agent.err.password.file.not.readable = No se puede leer el archivo de contrase\u00f1as
agent.err.password.file.read.failed = Error al leer el archivo de contrase\u00f1as
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = Sin autenticaci\u00f3n
jmxremote.ConnectorBootstrap.initialize.ready = Conector JMX listo en: {0}
jmxremote.ConnectorBootstrap.initialize.password.readonly = Se debe restringir el acceso de lectura al archivo de contrase\u00f1as: {0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = Se debe restringir el acceso de lectura al archivo: {0}
jmxremote.AdaptorBootstrap.getTargetList.processing = Procesando ACL
jmxremote.AdaptorBootstrap.getTargetList.adding = Agregando destino: {0}
--- a/jdk/src/share/classes/sun/management/resources/agent_fr.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_fr.properties Wed Jul 05 17:10:40 2017 +0200
@@ -46,6 +46,12 @@
agent.err.invalid.jmxremote.port = Num\u00e9ro com.sun.management.jmxremote.port incorrect
+agent.err.file.not.set = Fichier non sp\u00e9cifi\u00e9
+agent.err.file.not.readable = Fichier illisible
+agent.err.file.read.failed = Impossible de lire le fichier
+agent.err.file.not.found = Fichier introuvable
+agent.err.file.access.not.restricted = L'acc\u00e8s \u00e0 la lecture du fichier doit \u00eatre limit\u00e9
+
agent.err.password.file.notset = Le fichier de mots de passe n'est pas sp\u00e9cifi\u00e9 mais com.sun.management.jmxremote.authenticate=true
agent.err.password.file.not.readable = Fichier de mots de passe illisible
agent.err.password.file.read.failed = Impossible de lire le fichier de mots de passe
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = Pas d'authentification
jmxremote.ConnectorBootstrap.initialize.ready = Connecteur JMX pr\u00eat \u00e0 : {0}
jmxremote.ConnectorBootstrap.initialize.password.readonly = L''acc\u00e8s \u00e0 la lecture du fichier de mots de passe doit \u00eatre limit\u00e9 : {0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = L''acc\u00e8s \u00e0 la lecture du fichier doit \u00eatre limit\u00e9\u00a0: {0}
jmxremote.AdaptorBootstrap.getTargetList.processing = Traitement d'ACL
jmxremote.AdaptorBootstrap.getTargetList.adding = Ajout de la cible : {0}
--- a/jdk/src/share/classes/sun/management/resources/agent_it.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_it.properties Wed Jul 05 17:10:40 2017 +0200
@@ -46,6 +46,12 @@
agent.err.invalid.jmxremote.port = Numero com.sun.management.jmxremote.port non valido
+agent.err.file.not.set = File non specificato
+agent.err.file.not.readable = File non leggibile
+agent.err.file.read.failed = Lettura del file non riuscita
+agent.err.file.not.found = File non trovato
+agent.err.file.access.not.restricted = L'accesso in lettura al file deve essere limitato
+
agent.err.password.file.notset = Il file password non \u00e8 specificato ma com.sun.management.jmxremote.authenticate=true
agent.err.password.file.not.readable = File password non leggibile
agent.err.password.file.read.failed = Errore di lettura file password
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = Nessuna autenticazione
jmxremote.ConnectorBootstrap.initialize.ready = Connettore JMX pronto in: {0}
jmxremote.ConnectorBootstrap.initialize.password.readonly = Limitare l''accesso in lettura al file password: {0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = Limitare l''accesso in lettura al file: {0}
jmxremote.AdaptorBootstrap.getTargetList.processing = Elaborazione ACL
jmxremote.AdaptorBootstrap.getTargetList.adding = Aggiunta della destinazione: {0}
--- a/jdk/src/share/classes/sun/management/resources/agent_ja.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_ja.properties Wed Jul 05 17:10:40 2017 +0200
@@ -42,10 +42,16 @@
agent.err.agentclass.failed = \u7ba1\u7406\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30af\u30e9\u30b9\u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002
agent.err.premain.notfound = premain(String) \u304c\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30af\u30e9\u30b9\u306b\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
agent.err.agentclass.access.denied = premain(String) \u3078\u306e\u30a2\u30af\u30bb\u30b9\u304c\u62d2\u5426\u3055\u308c\u307e\u3057\u305f\u3002
-agent.err.invalid.agentclass = com.sun.management.agent.class \u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u5024\u304c\u4e0d\u6b63\u3067\u3059\u3002
+agent.err.invalid.agentclass = com.sun.management.agent.class \u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u5024\u304c\u4e0d\u6b63\u3067\u3059\u3002
agent.err.invalid.jmxremote.port = com.sun.management.jmxremote.port \u306e\u756a\u53f7\u304c\u4e0d\u6b63\u3067\u3059\u3002
+agent.err.file.not.set = \u30d5\u30a1\u30a4\u30eb\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+agent.err.file.not.readable = \u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
+agent.err.file.read.failed = \u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u53d6\u308a\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
+agent.err.file.not.found = \u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
+agent.err.file.access.not.restricted = \u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u53d6\u308a\u30a2\u30af\u30bb\u30b9\u306f\u5236\u9650\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+
agent.err.password.file.notset = \u30d1\u30b9\u30ef\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u304c\u3001com.sun.management.jmxremote.authenticate=true \u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002
agent.err.password.file.not.readable = \u30d1\u30b9\u30ef\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
agent.err.password.file.read.failed = \u30d1\u30b9\u30ef\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u53d6\u308a\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = \u8a8d\u8a3c\u306a\u3057
jmxremote.ConnectorBootstrap.initialize.ready = JMX \u30b3\u30cd\u30af\u30bf\u306e\u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f: {0}
jmxremote.ConnectorBootstrap.initialize.password.readonly = \u30d1\u30b9\u30ef\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u53d6\u308a\u30a2\u30af\u30bb\u30b9\u306f\u5236\u9650\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059: {0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = \u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u53d6\u308a\u30a2\u30af\u30bb\u30b9\u306f\u5236\u9650\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059: {0}
jmxremote.AdaptorBootstrap.getTargetList.processing = ACL \u3092\u51e6\u7406\u3057\u3066\u3044\u307e\u3059
jmxremote.AdaptorBootstrap.getTargetList.adding = \u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059: {0}
--- a/jdk/src/share/classes/sun/management/resources/agent_ko.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_ko.properties Wed Jul 05 17:10:40 2017 +0200
@@ -46,6 +46,12 @@
agent.err.invalid.jmxremote.port = \uc798\ubabb\ub41c com.sun.management.jmxremote.port \ubc88\ud638
+agent.err.file.not.set = \ud30c\uc77c\uc774 \uc9c0\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
+agent.err.file.not.readable = \ud30c\uc77c\uc744 \uc77d\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+agent.err.file.read.failed = \ud30c\uc77c\uc744 \uc77d\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+agent.err.file.not.found = \ud30c\uc77c\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+agent.err.file.access.not.restricted = \ud30c\uc77c \uc77d\uae30 \uc561\uc138\uc2a4\ub294 \uc81c\ud55c\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.
+
agent.err.password.file.notset = com.sun.management.jmxremote.authenticate=true\ub97c \uc81c\uc678\ud55c \ube44\ubc00\ubc88\ud638 \ud30c\uc77c\uc774 \uc9c0\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
agent.err.password.file.not.readable = \ube44\ubc00\ubc88\ud638 \ud30c\uc77c\uc744 \uc77d\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
agent.err.password.file.read.failed = \ube44\ubc00\ubc88\ud638 \ud30c\uc77c\uc744 \uc77d\ub294 \ub370 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = \uc778\uc99d \uc5c6\uc74c
jmxremote.ConnectorBootstrap.initialize.ready = \ub2e4\uc74c\uc5d0\uc11c JMX \ucee4\ub125\ud130 \uc900\ube44: {0}
jmxremote.ConnectorBootstrap.initialize.password.readonly = \ube44\ubc00\ubc88\ud638 \ud30c\uc77c \uc77d\uae30 \uc561\uc138\uc2a4\ub294 \uc81c\ud55c\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4. {0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = \ud30c\uc77c \uc77d\uae30 \uc561\uc138\uc2a4\ub294 \uc81c\ud55c\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4. {0}
jmxremote.AdaptorBootstrap.getTargetList.processing = ACL \ucc98\ub9ac
jmxremote.AdaptorBootstrap.getTargetList.adding = \ub300\uc0c1 \ucd94\uac00: {0}
--- a/jdk/src/share/classes/sun/management/resources/agent_sv.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_sv.properties Wed Jul 05 17:10:40 2017 +0200
@@ -46,6 +46,12 @@
agent.err.invalid.jmxremote.port = Ogiltigt com.sun.management.jmxremote.port-nummer
+agent.err.file.not.set = Filen har inte angetts.
+agent.err.file.not.readable = Filen g\u00e5r inte att l\u00e4sa.
+agent.err.file.read.failed = Det gick inte att l\u00e4sa filen
+agent.err.file.not.found = Filen hittades inte
+agent.err.file.access.not.restricted = L\u00e4sbeh\u00f6righeten f\u00f6r filen m\u00e5ste begr\u00e4nsas
+
agent.err.password.file.notset = L\u00f6senordsfilen har inte angetts men com.sun.management.jmxremote.authenticate=true
agent.err.password.file.not.readable = L\u00f6senordsfilen \u00e4r inte l\u00e4sbar
agent.err.password.file.read.failed = Det g\u00e5r inte att l\u00e4sa l\u00f6senordsfilen
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = Ingen autentisering
jmxremote.ConnectorBootstrap.initialize.ready = JMX Connector redo p\u00e5: {0}
jmxremote.ConnectorBootstrap.initialize.password.readonly = L\u00e4sbeh\u00f6righeten f\u00f6r l\u00f6senordsfilen m\u00e5ste begr\u00e4nsas: {0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = L\u00e4sbeh\u00f6righeten f\u00f6r filen m\u00e5ste begr\u00e4nsas: {0}
jmxremote.AdaptorBootstrap.getTargetList.processing = ACL bearbetas
jmxremote.AdaptorBootstrap.getTargetList.adding = M\u00e5l l\u00e4ggs till: {0}
--- a/jdk/src/share/classes/sun/management/resources/agent_zh_CN.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_zh_CN.properties Wed Jul 05 17:10:40 2017 +0200
@@ -1,6 +1,6 @@
#
#
-# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2004-2005 Sun Microsystems, Inc. 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
@@ -46,6 +46,12 @@
agent.err.invalid.jmxremote.port = com.sun.management.jmxremote.port \u7f16\u53f7\u65e0\u6548
+agent.err.file.not.set = \u672a\u6307\u5b9a\u6587\u4ef6
+agent.err.file.not.readable = \u65e0\u6cd5\u8bfb\u53d6\u6587\u4ef6
+agent.err.file.read.failed = \u8bfb\u53d6\u6587\u4ef6\u5931\u8d25
+agent.err.file.not.found = \u627e\u4e0d\u5230\u6587\u4ef6
+agent.err.file.access.not.restricted = \u5fc5\u987b\u9650\u5236\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee
+
agent.err.password.file.notset = \u672a\u6307\u5b9a\u53e3\u4ee4\u6587\u4ef6\uff0c\u4f46 com.sun.management.jmxremote.authenticate=true
agent.err.password.file.not.readable = \u65e0\u6cd5\u8bfb\u53d6\u53e3\u4ee4\u6587\u4ef6
agent.err.password.file.read.failed = \u8bfb\u53d6\u53e3\u4ee4\u6587\u4ef6\u5931\u8d25
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = \u65e0\u9a8c\u8bc1
jmxremote.ConnectorBootstrap.initialize.ready = \u4f4d\u4e8e {0} \u7684 JMX \u8fde\u63a5\u5668\u5c31\u7eea
jmxremote.ConnectorBootstrap.initialize.password.readonly = \u5fc5\u987b\u9650\u5236\u53e3\u4ee4\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee\uff1a{0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = \u5fc5\u987b\u9650\u5236\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee\uff1a{0}
jmxremote.AdaptorBootstrap.getTargetList.processing = \u6b63\u5728\u5904\u7406 ACL
jmxremote.AdaptorBootstrap.getTargetList.adding = \u6b63\u5728\u6dfb\u52a0\u76ee\u6807\uff1a{0}
--- a/jdk/src/share/classes/sun/management/resources/agent_zh_TW.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/management/resources/agent_zh_TW.properties Wed Jul 05 17:10:40 2017 +0200
@@ -46,6 +46,12 @@
agent.err.invalid.jmxremote.port = com.sun.management.jmxremote.port \u7de8\u865f\u7121\u6548
+agent.err.file.not.set = \u672a\u6307\u5b9a\u6a94\u6848
+agent.err.file.not.readable = \u6a94\u6848\u4e0d\u53ef\u8b80
+agent.err.file.read.failed = \u7121\u6cd5\u8b80\u53d6\u6a94\u6848
+agent.err.file.not.found = \u627e\u4e0d\u5230\u6a94\u6848
+agent.err.file.access.not.restricted = \u5fc5\u9808\u9650\u5236\u6a94\u6848\u8b80\u53d6\u5b58\u53d6
+
agent.err.password.file.notset = \u672a\u6307\u5b9a\u5bc6\u78bc\u6a94\u6848\uff0c\u4f46 com.sun.management.jmxremote.authenticate=true
agent.err.password.file.not.readable = \u5bc6\u78bc\u6a94\u6848\u4e0d\u53ef\u8b80
agent.err.password.file.read.failed = \u7121\u6cd5\u8b80\u53d6\u5bc6\u78bc\u6a94\u6848
@@ -76,6 +82,7 @@
jmxremote.ConnectorBootstrap.initialize.noAuthentication = \u7121\u8a8d\u8b49
jmxremote.ConnectorBootstrap.initialize.ready = JMX \u9023\u63a5\u5668\u5c31\u7dd2\uff0c\u4f4d\u65bc\ufe30{0}
jmxremote.ConnectorBootstrap.initialize.password.readonly = \u5fc5\u9808\u9650\u5236\u5bc6\u78bc\u6a94\u6848\u8b80\u53d6\u5b58\u53d6\ufe30{0}
+jmxremote.ConnectorBootstrap.initialize.file.readonly = \u5fc5\u9808\u9650\u5236\u6a94\u6848\u8b80\u53d6\u5b58\u53d6: {0}
jmxremote.AdaptorBootstrap.getTargetList.processing = \u6b63\u5728\u8655\u7406 ACL
jmxremote.AdaptorBootstrap.getTargetList.adding = \u6b63\u5728\u589e\u52a0\u76ee\u6a19\ufe30{0}
--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
import java.io.Console;
import java.io.File;
import java.io.FileDescriptor;
+import java.security.ProtectionDomain;
/** A repository of "shared secrets", which are a mechanism for
calling implementation-private methods in another package without
@@ -121,6 +122,8 @@
public static JavaSecurityProtectionDomainAccess
getJavaSecurityProtectionDomainAccess() {
+ if (javaSecurityProtectionDomainAccess == null)
+ unsafe.ensureClassInitialized(ProtectionDomain.class);
return javaSecurityProtectionDomainAccess;
}
}
--- a/jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2010 Sun Microsystems, Inc. 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
@@ -77,26 +77,34 @@
if (DEBUG) err.printStackTrace();
return null;
}
- String gssLib = System.getProperty(LIB_PROP);
- if (gssLib == null || gssLib.trim().equals("")) {
+ String gssLibs[] = new String[0];
+ String defaultLib = System.getProperty(LIB_PROP);
+ if (defaultLib == null || defaultLib.trim().equals("")) {
String osname = System.getProperty("os.name");
if (osname.startsWith("SunOS")) {
- gssLib = "libgss.so";
+ gssLibs = new String[]{ "libgss.so" };
} else if (osname.startsWith("Linux")) {
- gssLib = "libgssapi.so";
+ gssLibs = new String[]{
+ "libgssapi.so",
+ "libgssapi_krb5.so",
+ };
}
+ } else {
+ gssLibs = new String[]{ defaultLib };
}
- if (GSSLibStub.init(gssLib)) {
- debug("Loaded GSS library: " + gssLib);
- Oid[] mechs = GSSLibStub.indicateMechs();
- HashMap<String, String> map =
- new HashMap<String, String>();
- for (int i = 0; i < mechs.length; i++) {
- debug("Native MF for " + mechs[i]);
- map.put("GssApiMechanism." + mechs[i],
- MF_CLASS);
+ for (String libName: gssLibs) {
+ if (GSSLibStub.init(libName)) {
+ debug("Loaded GSS library: " + libName);
+ Oid[] mechs = GSSLibStub.indicateMechs();
+ HashMap<String, String> map =
+ new HashMap<String, String>();
+ for (int i = 0; i < mechs.length; i++) {
+ debug("Native MF for " + mechs[i]);
+ map.put("GssApiMechanism." + mechs[i],
+ MF_CLASS);
+ }
+ return map;
}
- return map;
}
return null;
}
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. 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
@@ -192,7 +192,6 @@
// should not happen
throw new ProviderException(nspe);
}
- session = token.getOpSession();
}
protected void engineSetMode(String mode) throws NoSuchAlgorithmException {
@@ -847,18 +846,6 @@
return n;
}
- @Override
- protected void finalize() throws Throwable {
- try {
- if ((session != null) && token.isValid()) {
- cancelOperation();
- session = token.releaseSession(session);
- }
- } finally {
- super.finalize();
- }
- }
-
private final void bufferInputBytes(byte[] in, int inOfs, int len) {
System.arraycopy(in, inOfs, padBuffer, padBufferLen, len);
padBufferLen += len;
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Digest.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Digest.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. 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
@@ -308,16 +308,4 @@
throw new ProviderException("update() failed", e);
}
}
-
- protected void finalize() throws Throwable {
- try {
- if ((session != null) && token.isValid()) {
- cancelOperation();
- session = token.releaseSession(session);
- }
- } finally {
- super.finalize();
- }
- }
-
}
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Key.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Key.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. 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
@@ -85,7 +85,7 @@
// flags indicating whether the key is a token object, sensitive, extractable
final boolean tokenObject, sensitive, extractable;
- // weak reference notification clean up for session keys
+ // phantom reference notification clean up for session keys
private final SessionKeyRef sessionKeyRef;
P11Key(String type, Session session, long keyID, String algorithm,
@@ -1051,7 +1051,12 @@
}
}
-final class SessionKeyRef extends WeakReference<P11Key>
+/*
+ * NOTE: Must use PhantomReference here and not WeakReference
+ * otherwise the key maybe cleared before other objects which
+ * still use these keys during finalization such as SSLSocket.
+ */
+final class SessionKeyRef extends PhantomReference<P11Key>
implements Comparable<SessionKeyRef> {
private static ReferenceQueue<P11Key> refQueue =
new ReferenceQueue<P11Key>();
@@ -1062,14 +1067,11 @@
return refQueue;
}
- static final private int MAX_ITERATIONS = 2;
-
private static void drainRefQueueBounded() {
- int iterations = 0;
- while (iterations < MAX_ITERATIONS) {
+ while (true) {
SessionKeyRef next = (SessionKeyRef) refQueue.poll();
- if (next != null) next.dispose();
- ++iterations;
+ if (next == null) break;
+ next.dispose();
}
}
@@ -1087,7 +1089,7 @@
drainRefQueueBounded();
}
- void dispose() {
+ private void dispose() {
refList.remove(this);
if (session.token.isValid()) {
Session newSession = null;
@@ -1097,6 +1099,7 @@
} catch (PKCS11Exception e) {
// ignore
} finally {
+ this.clear();
session.token.releaseSession(newSession);
session.removeObject();
}
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Mac.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Mac.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. 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
@@ -263,16 +263,4 @@
throw new ProviderException("update() failed", e);
}
}
-
- protected void finalize() throws Throwable {
- try {
- if ((session != null) && token.isValid()) {
- cancelOperation();
- session = token.releaseSession(session);
- }
- } finally {
- super.finalize();
- }
- }
-
}
--- a/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -485,18 +485,6 @@
int n = P11KeyFactory.convertKey(token, key, algorithm).keyLength();
return n;
}
-
- protected void finalize() throws Throwable {
- try {
- if ((session != null) && token.isValid()) {
- cancelOperation();
- session = token.releaseSession(session);
- }
- } finally {
- super.finalize();
- }
- }
-
}
final class ConstructKeys {
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java Wed Jul 05 17:10:40 2017 +0200
@@ -226,7 +226,6 @@
this.buffer = buffer;
this.digestOID = digestOID;
this.md = md;
- session = token.getOpSession();
}
private void ensureInitialized() {
@@ -732,16 +731,4 @@
throws InvalidParameterException {
throw new UnsupportedOperationException("getParameter() not supported");
}
-
- protected void finalize() throws Throwable {
- try {
- if ((session != null) && token.isValid()) {
- cancelOperation();
- session = token.releaseSession(session);
- }
- } finally {
- super.finalize();
- }
- }
-
}
--- a/jdk/src/share/classes/sun/security/pkcs11/Session.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/Session.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. 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 @@
package sun.security.pkcs11;
+import java.lang.ref.*;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
@@ -59,11 +60,14 @@
// this could lead to idle sessions being closed early, but that is harmless
private long lastAccess;
+ private final SessionRef sessionRef;
+
Session(Token token, long id) {
this.token = token;
this.id = id;
createdObjects = new AtomicInteger();
id();
+ sessionRef = new SessionRef(this, id, token);
}
public int compareTo(Session other) {
@@ -108,4 +112,76 @@
return createdObjects.get() != 0;
}
+ void close() {
+ if (hasObjects()) {
+ throw new ProviderException(
+ "Internal error: close session with active objects");
+ }
+ sessionRef.dispose();
+ }
}
+
+/*
+ * NOTE: Use PhantomReference here and not WeakReference
+ * otherwise the sessions maybe closed before other objects
+ * which are still being finalized.
+ */
+final class SessionRef extends PhantomReference<Session>
+ implements Comparable<SessionRef> {
+
+ private static ReferenceQueue<Session> refQueue =
+ new ReferenceQueue<Session>();
+
+ private static Set<SessionRef> refList =
+ Collections.synchronizedSortedSet(new TreeSet<SessionRef>());
+
+ static ReferenceQueue<Session> referenceQueue() {
+ return refQueue;
+ }
+
+ static int totalCount() {
+ return refList.size();
+ }
+
+ private static void drainRefQueueBounded() {
+ while (true) {
+ SessionRef next = (SessionRef) refQueue.poll();
+ if (next == null) break;
+ next.dispose();
+ }
+ }
+
+ // handle to the native session
+ private long id;
+ private Token token;
+
+ SessionRef(Session session, long id, Token token) {
+ super(session, refQueue);
+ this.id = id;
+ this.token = token;
+ refList.add(this);
+ // TBD: run at some interval and not every time?
+ drainRefQueueBounded();
+ }
+
+ void dispose() {
+ refList.remove(this);
+ try {
+ token.p11.C_CloseSession(id);
+ } catch (PKCS11Exception e1) {
+ // ignore
+ } catch (ProviderException e2) {
+ // ignore
+ } finally {
+ this.clear();
+ }
+ }
+
+ public int compareTo(SessionRef other) {
+ if (this.id == other.id) {
+ return 0;
+ } else {
+ return (this.id < other.id) ? -1 : 1;
+ }
+ }
+}
--- a/jdk/src/share/classes/sun/security/pkcs11/SessionManager.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/SessionManager.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. 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
@@ -51,10 +51,12 @@
* number of such sessions low. Note that we occasionally want to explicitly
* close a session, see P11Signature.
*
- * NOTE that all sessions obtained from this class MUST be returned using
- * either releaseSession() or closeSession() using a finally block or a
- * finalizer where appropriate. Otherwise, they will be "lost", i.e. there
- * will be a resource leak eventually leading to exhaustion.
+ * NOTE that sessions obtained from this class SHOULD be returned using
+ * either releaseSession() or closeSession() using a finally block when
+ * not needed anymore. Otherwise, they will be left for cleanup via the
+ * PhantomReference mechanism when GC kicks in, but it's best not to rely
+ * on that since GC may not run timely enough since the native PKCS11 library
+ * is also consuming memory.
*
* Note that sessions are automatically closed when they are not used for a
* period of time, see Session.
@@ -74,9 +76,6 @@
// maximum number of sessions to open with this token
private final int maxSessions;
- // total number of active sessions
- private int activeSessions;
-
// pool of available object sessions
private final Pool objSessions;
@@ -116,6 +115,11 @@
return (maxSessions <= DEFAULT_MAX_SESSIONS);
}
+ // returns the total number of active sessions
+ int totalSessionCount() {
+ return SessionRef.totalCount();
+ }
+
synchronized Session getObjSession() throws PKCS11Exception {
Session session = objSessions.poll();
if (session != null) {
@@ -136,7 +140,8 @@
}
// create a new session rather than re-using an obj session
// that avoids potential expensive cancels() for Signatures & RSACipher
- if (activeSessions < maxSessions) {
+ if (maxSessions == Integer.MAX_VALUE ||
+ totalSessionCount() < maxSessions) {
session = openSession();
return ensureValid(session);
}
@@ -159,14 +164,10 @@
if (debug != null) {
String location = new Exception().getStackTrace()[2].toString();
System.out.println("Killing session (" + location + ") active: "
- + activeSessions);
+ + totalSessionCount());
}
- try {
- closeSession(session);
- return null;
- } catch (PKCS11Exception e) {
- throw new ProviderException(e);
- }
+ closeSession(session);
+ return null;
}
synchronized Session releaseSession(Session session) {
@@ -187,7 +188,8 @@
return;
}
if (debug != null) {
- System.out.println("Demoting session, active: " + activeSessions);
+ System.out.println("Demoting session, active: " +
+ totalSessionCount());
}
boolean present = objSessions.remove(session);
if (present == false) {
@@ -199,16 +201,17 @@
}
private Session openSession() throws PKCS11Exception {
- if (activeSessions >= maxSessions) {
+ if ((maxSessions != Integer.MAX_VALUE) &&
+ (totalSessionCount() >= maxSessions)) {
throw new ProviderException("No more sessions available");
}
long id = token.p11.C_OpenSession
(token.provider.slotID, openSessionFlags, null, null);
Session session = new Session(token, id);
- activeSessions++;
if (debug != null) {
- if (activeSessions > maxActiveSessions) {
- maxActiveSessions = activeSessions;
+ int currTotal = totalSessionCount();
+ if (currTotal > maxActiveSessions) {
+ maxActiveSessions = currTotal;
if (maxActiveSessions % 10 == 0) {
System.out.println("Open sessions: " + maxActiveSessions);
}
@@ -217,13 +220,8 @@
return session;
}
- private void closeSession(Session session) throws PKCS11Exception {
- if (session.hasObjects()) {
- throw new ProviderException
- ("Internal error: close session with active objects");
- }
- token.p11.C_CloseSession(session.id());
- activeSessions--;
+ private void closeSession(Session session) {
+ session.close();
}
private static final class Pool {
@@ -267,28 +265,20 @@
}
Collections.sort(pool);
int i = 0;
- PKCS11Exception exc = null;
while (i < n - 1) { // always keep at least 1 session open
oldestSession = pool.get(i);
if (oldestSession.isLive(time)) {
break;
}
i++;
- try {
- mgr.closeSession(oldestSession);
- } catch (PKCS11Exception e) {
- exc = e;
- }
+ mgr.closeSession(oldestSession);
}
if (debug != null) {
System.out.println("Closing " + i + " idle sessions, active: "
- + mgr.activeSessions);
+ + mgr.totalSessionCount());
}
List<Session> subList = pool.subList(0, i);
subList.clear();
- if (exc != null) {
- throw new ProviderException(exc);
- }
}
}
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java Wed Jul 05 17:10:40 2017 +0200
@@ -148,6 +148,7 @@
0x00000115,
0x00000120,
0x00000121,
+ 0x00000130,
0x00000150,
0x00000160,
0x00000170,
@@ -156,6 +157,7 @@
0x00000191,
0x000001A0,
0x000001A1,
+ 0x00000200,
0x80000000,
};
String[] errorMessages = new String[] {
@@ -234,6 +236,7 @@
"CKR_WRAPPING_KEY_TYPE_INCONSISTENT",
"CKR_RANDOM_SEED_NOT_SUPPORTED",
"CKR_RANDOM_NO_RNG",
+ "CKR_DOMAIN_PARAMS_INVALID",
"CKR_BUFFER_TOO_SMALL",
"CKR_SAVED_STATE_INVALID",
"CKR_INFORMATION_SENSITIVE",
@@ -242,6 +245,7 @@
"CKR_CRYPTOKI_ALREADY_INITIALIZED",
"CKR_MUTEX_BAD",
"CKR_MUTEX_NOT_LOCKED",
+ "CKR_FUNCTION_REJECTED",
"CKR_VENDOR_DEFINED",
};
errorMap = new HashMap<Long,String>();
--- a/jdk/src/share/classes/sun/security/smartcardio/CardImpl.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/smartcardio/CardImpl.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2010 Sun Microsystems, Inc. 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
@@ -214,7 +214,7 @@
SCardEndTransaction(cardId, SCARD_LEAVE_CARD);
} catch (PCSCException e) {
handleError(e);
- throw new CardException("beginExclusive() failed", e);
+ throw new CardException("endExclusive() failed", e);
} finally {
exclusiveThread = null;
}
--- a/jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2009 Sun Microsystems, Inc. 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
@@ -54,8 +54,8 @@
"\u30ad\u30fc\u30b9\u30c8\u30a2\u304c\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u4fdd\u8b77\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408 -storepass \u304a\u3088\u3073 -keypass \u3092\u6307\u5b9a\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044"},
{"Usage: jarsigner [options] jar-file alias",
"\u4f7f\u3044\u65b9: jarsigner [options] jar-file alias"},
- {" jarsigner -verify [options] jar-file",
- " jarsigner -verify [options] jar-file"},
+ {" jarsigner -verify [options] jar-file [alias...]",
+ " jarsigner -verify [options] jar-file [alias...]"},
{"[-keystore <url>] keystore location",
"[-keystore <url>] \u30ad\u30fc\u30b9\u30c8\u30a2\u306e\u4f4d\u7f6e"},
{"[-storepass <password>] password for keystore integrity",
@@ -64,6 +64,8 @@
"[-storetype <type>] \u30ad\u30fc\u30b9\u30c8\u30a2\u306e\u578b"},
{"[-keypass <password>] password for private key (if different)",
"[-keypass <password>] \u975e\u516c\u958b\u9375\u306e\u30d1\u30b9\u30ef\u30fc\u30c9 (\u7570\u306a\u308b\u5834\u5408)"},
+ {"[-certchain <file>] name of alternative certchain file",
+ "[-certchain <file>] \u4ee3\u66ff\u8a3c\u660e\u9023\u9396\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d"},
{"[-sigfile <file>] name of .SF/.DSA file",
"[-sigfile <file>] .SF/.DSA \u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d"},
{"[-signedjar <file>] name of signed JAR file",
@@ -74,8 +76,10 @@
"[-sigalg <algorithm>] \u7f72\u540d\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u540d\u524d"},
{"[-verify] verify a signed JAR file",
"[-verify] \u7f72\u540d\u4ed8\u304d JAR \u30d5\u30a1\u30a4\u30eb\u306e\u691c\u8a3c"},
- {"[-verbose] verbose output when signing/verifying",
- "[-verbose] \u7f72\u540d/\u691c\u8a3c\u6642\u306e\u8a73\u7d30\u51fa\u529b"},
+ {"[-verbose[:suboptions]] verbose output when signing/verifying.",
+ "[-verbose[:suboptions]] \u7f72\u540d/\u691c\u8a3c\u6642\u306e\u8a73\u7d30\u51fa\u529b"},
+ {" suboptions can be all, grouped or summary",
+ " \u30b5\u30d6\u30aa\u30d7\u30b7\u30e7\u30f3\u306f all\u3001grouped\u3001\u307e\u305f\u306f summary \u3067\u3059"},
{"[-certs] display certificates when verbose and verifying",
"[-certs] \u8a73\u7d30\u51fa\u529b\u304a\u3088\u3073\u691c\u8a3c\u6642\u306b\u8a3c\u660e\u66f8\u3092\u8868\u793a"},
{"[-tsa <url>] location of the Timestamping Authority",
@@ -98,10 +102,22 @@
"[-providerClass <class> \u6697\u53f7\u5316\u30b5\u30fc\u30d3\u30b9\u30d7\u30ed\u30d0\u30a4\u30c0\u306e\u540d\u524d"},
{" [-providerArg <arg>]] ... master class file and constructor argument",
" [-providerArg <arg>]] ... \u30de\u30b9\u30bf\u30fc\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3068\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u5f15\u6570"},
+ {"[-strict] treat warnings as errors",
+ "[-strict] \u8b66\u544a\u3092\u30a8\u30e9\u30fc\u3068\u3057\u3066\u53d6\u308a\u6271\u3044\u307e\u3059"},
+ {"Option lacks argument", "\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u5f15\u6570\u304c\u3042\u308a\u307e\u305b\u3093\u3002"},
+ {"Please type jarsigner -help for usage", "\u4f7f\u3044\u65b9\u3092\u898b\u308b\u306b\u306f jarsigner -help \u3068\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},
+ {"Please specify jarfile name", "jar \u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},
+ {"Please specify alias name", "\u5225\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},
+ {"Only one alias can be specified", "\u6307\u5b9a\u3067\u304d\u308b\u5225\u540d\u306f 1 \u3064\u3060\u3051\u3067\u3059\u3002"},
+ {"This jar contains signed entries which is not signed by the specified alias(es).",
+ "\u3053\u306e jar \u306b\u542b\u307e\u308c\u3066\u3044\u308b\u7f72\u540d\u6e08\u307f\u30a8\u30f3\u30c8\u30ea\u306f\u3001\u6307\u5b9a\u3055\u308c\u305f\u5225\u540d\u3067\u7f72\u540d\u3055\u308c\u305f\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002"},
+ {"This jar contains signed entries that's not signed by alias in this keystore.",
+ "\u3053\u306e jar \u306b\u542b\u307e\u308c\u3066\u3044\u308b\u7f72\u540d\u6e08\u307f\u30a8\u30f3\u30c8\u30ea\u306f\u3001\u3053\u306e\u30ad\u30fc\u30b9\u30c8\u30a2\u3067\u7f72\u540d\u3055\u308c\u305f\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002"},
{"s", "s"},
{"m", "m"},
{"k", "k"},
{"i", "i"},
+ {"(and %d more)", "(\u3055\u3089\u306b %d)"},
{" s = signature was verified ",
" s = \u7f72\u540d\u304c\u691c\u8a3c\u3055\u308c\u307e\u3057\u305f\u3002"},
{" m = entry is listed in manifest",
@@ -110,7 +126,11 @@
" k = 1 \u3064\u4ee5\u4e0a\u306e\u8a3c\u660e\u66f8\u304c\u30ad\u30fc\u30b9\u30c8\u30a2\u3067\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002"},
{" i = at least one certificate was found in identity scope",
" i = 1 \u3064\u4ee5\u4e0a\u306e\u8a3c\u660e\u66f8\u304c\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30b9\u30b3\u30fc\u30d7\u3067\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002"},
+ {" X = not signed by specified alias(es)",
+ "X = \u6307\u5b9a\u3055\u308c\u305f\u5225\u540d\u3067\u7f72\u540d\u3055\u308c\u305f\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002"},
{"no manifest.", "\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002"},
+ {"(Signature related entries)","(\u7f72\u540d\u306b\u95a2\u9023\u3059\u308b\u30a8\u30f3\u30c8\u30ea)"},
+ {"(Unsigned entries)", "(\u7f72\u540d\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30f3\u30c8\u30ea)"},
{"jar is unsigned. (signatures missing or not parsable)",
"jar \u306f\u7f72\u540d\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002(\u7f72\u540d\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u304b\u3001\u69cb\u6587\u89e3\u6790\u3067\u304d\u307e\u305b\u3093)"},
{"jar verified.", "jar \u304c\u691c\u8a3c\u3055\u308c\u307e\u3057\u305f\u3002"},
@@ -134,6 +154,12 @@
"\u30ad\u30fc\u30b9\u30c8\u30a2\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u751f\u6210\u3067\u304d\u307e\u305b\u3093: "},
{"Certificate chain not found for: alias. alias must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.",
"\u6b21\u306e\u8a3c\u660e\u9023\u9396\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: {0}\u3002 {1} \u306f\u3001\u975e\u516c\u958b\u9375\u304a\u3088\u3073\u5bfe\u5fdc\u3059\u308b\u516c\u958b\u9375\u8a3c\u660e\u9023\u9396\u3092\u542b\u3080\u6709\u52b9\u306a KeyStore \u9375\u30a8\u30f3\u30c8\u30ea\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002"},
+ {"File specified by -certchain does not exist",
+ "-certchain \u3067\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002"},
+ {"Cannot restore certchain from file specified",
+ "\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u8a3c\u660e\u9023\u9396\u3092\u5fa9\u5143\u3067\u304d\u307e\u305b\u3093\u3002"},
+ {"Certificate chain not found in the file specified.",
+ "\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306b\u8a3c\u660e\u9023\u9396\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002"},
{"found non-X.509 certificate in signer's chain",
"\u7f72\u540d\u8005\u306e\u9023\u9396\u5185\u3067\u975e X.509 \u8a3c\u660e\u66f8\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002"},
{"incomplete certificate chain", "\u4e0d\u5b8c\u5168\u306a\u8a3c\u660e\u9023\u9396"},
@@ -149,6 +175,7 @@
{"certificate is not valid until",
"\u8a3c\u660e\u66f8\u306f {0} \u307e\u3067\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093"},
{"certificate will expire on", "\u8a3c\u660e\u66f8\u306f {0} \u306b\u5931\u52b9\u3057\u307e\u3059"},
+ {"[CertPath not validated: ", "[CertPath \u304c\u691c\u8a3c\u3055\u308c\u3066\u3044\u307e\u305b\u3093:"},
{"requesting a signature timestamp",
"\u7f72\u540d\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u306e\u8981\u6c42"},
{"TSA location: ", "TSA \u306e\u5834\u6240: "},
@@ -189,14 +216,18 @@
"\u7f72\u540d\u8005\u8a3c\u660e\u66f8\u306e ExtendedKeyUsage \u62e1\u5f35\u6a5f\u80fd\u3067\u306f\u3001\u30b3\u30fc\u30c9\u7f72\u540d\u306f\u8a31\u53ef\u3055\u308c\u307e\u305b\u3093\u3002"},
{"The signer certificate's NetscapeCertType extension doesn't allow code signing.",
"\u7f72\u540d\u8005\u8a3c\u660e\u66f8\u306e NetscapeCertType \u62e1\u5f35\u6a5f\u80fd\u3067\u306f\u3001\u30b3\u30fc\u30c9\u7f72\u540d\u306f\u8a31\u53ef\u3055\u308c\u307e\u305b\u3093\u3002"},
- {"This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.",
- "\u3053\u306e jar \u306b\u306f\u3001\u7f72\u540d\u8005\u8a3c\u660e\u66f8\u306e KeyUsage \u62e1\u5f35\u6a5f\u80fd\u304c\u30b3\u30fc\u30c9\u7f72\u540d\u3092\u8a31\u53ef\u3057\u306a\u3044\u30a8\u30f3\u30c8\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002"},
- {"This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
- "\u3053\u306e jar \u306b\u306f\u3001\u7f72\u540d\u8005\u8a3c\u660e\u66f8\u306e ExtendedKeyUsage \u62e1\u5f35\u6a5f\u80fd\u304c\u30b3\u30fc\u30c9\u7f72\u540d\u3092\u8a31\u53ef\u3057\u306a\u3044\u30a8\u30f3\u30c8\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002"},
- {"This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.",
- "\u3053\u306e jar \u306b\u306f\u3001\u7f72\u540d\u8005\u8a3c\u660e\u66f8\u306e NetscapeCertType \u62e1\u5f35\u6a5f\u80fd\u304c\u30b3\u30fc\u30c9\u7f72\u540d\u3092\u8a31\u53ef\u3057\u306a\u3044\u30a8\u30f3\u30c8\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002"},
+ {"This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.",
+ "\u3053\u306e jar \u306b\u306f\u3001\u7f72\u540d\u8005\u8a3c\u660e\u66f8\u306e KeyUsage \u62e1\u5f35\u6a5f\u80fd\u304c\u30b3\u30fc\u30c9\u7f72\u540d\u3092\u8a31\u53ef\u3057\u306a\u3044\u30a8\u30f3\u30c8\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002"},
+ {"This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
+ "\u3053\u306e jar \u306b\u306f\u3001\u7f72\u540d\u8005\u8a3c\u660e\u66f8\u306e ExtendedKeyUsage \u62e1\u5f35\u6a5f\u80fd\u304c\u30b3\u30fc\u30c9\u7f72\u540d\u3092\u8a31\u53ef\u3057\u306a\u3044\u30a8\u30f3\u30c8\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002"},
+ {"This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.",
+ "\u3053\u306e jar \u306b\u306f\u3001\u7f72\u540d\u8005\u8a3c\u660e\u66f8\u306e NetscapeCertType \u62e1\u5f35\u6a5f\u80fd\u304c\u30b3\u30fc\u30c9\u7f72\u540d\u3092\u8a31\u53ef\u3057\u306a\u3044\u30a8\u30f3\u30c8\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002"},
{"[{0} extension does not support code signing]",
"[{0} \u62e1\u5f35\u6a5f\u80fd\u306f\u30b3\u30fc\u30c9\u7f72\u540d\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093]"},
+ {"The signer's certificate chain is not validated.",
+ "\u7f72\u540d\u8005\u306e\u8a3c\u660e\u9023\u9396\u304c\u691c\u8a3c\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002"},
+ {"This jar contains entries whose certificate chain is not validated.",
+ "\u3053\u306e jar \u306b\u306f\u8a3c\u660e\u9023\u9396\u304c\u691c\u8a3c\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30f3\u30c8\u30ea\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002"},
};
/**
--- a/jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2009 Sun Microsystems, Inc. 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
@@ -51,11 +51,11 @@
{"If -protected is specified, then -storepass and -keypass must not be specified",
"\u5982\u679c\u6307\u5b9a\u4e86 -protected\uff0c\u5219\u4e0d\u80fd\u6307\u5b9a -storepass \u548c -keypass"},
{"If keystore is not password protected, then -storepass and -keypass must not be specified",
-"\u5982\u679c\u5bc6\u94a5\u5e93\u672a\u53d7\u5bc6\u7801\u4fdd\u62a4\uff0c\u5219\u8bf7\u52ff\u6307\u5b9a -storepass \u548c -keypass"},
+ "\u5982\u679c\u5bc6\u94a5\u5e93\u672a\u53d7\u5bc6\u7801\u4fdd\u62a4\uff0c\u5219\u8bf7\u52ff\u6307\u5b9a -storepass \u548c -keypass"},
{"Usage: jarsigner [options] jar-file alias",
"\u7528\u6cd5\uff1ajarsigner [\u9009\u9879] jar \u6587\u4ef6\u522b\u540d"},
- {" jarsigner -verify [options] jar-file",
- " jarsigner -verify [\u9009\u9879] jar \u6587\u4ef6"},
+ {" jarsigner -verify [options] jar-file [alias...]",
+ " jarsigner -verify [\u9009\u9879] jar \u6587\u4ef6 [\u522b\u540d...]"},
{"[-keystore <url>] keystore location",
"[-keystore <url>] \u5bc6\u94a5\u5e93\u4f4d\u7f6e"},
{"[-storepass <password>] password for keystore integrity",
@@ -64,6 +64,8 @@
"[-storetype <\u7c7b\u578b>] \u5bc6\u94a5\u5e93\u7c7b\u578b"},
{"[-keypass <password>] password for private key (if different)",
"[-keypass <\u53e3\u4ee4>] \u4e13\u7528\u5bc6\u94a5\u7684\u53e3\u4ee4\uff08\u5982\u679c\u4e0d\u540c\uff09"},
+ {"[-certchain <file>] name of alternative certchain file",
+ "[-certchain <\u6587\u4ef6>] \u66ff\u4ee3\u8bc1\u4e66\u94fe\u6587\u4ef6\u7684\u540d\u79f0"},
{"[-sigfile <file>] name of .SF/.DSA file",
"[-sigfile <\u6587\u4ef6>] .SF/.DSA \u6587\u4ef6\u7684\u540d\u79f0"},
{"[-signedjar <file>] name of signed JAR file",
@@ -74,8 +76,10 @@
"[-sigalg <\u7b97\u6cd5>] \u7b7e\u540d\u7b97\u6cd5\u7684\u540d\u79f0"},
{"[-verify] verify a signed JAR file",
"[-verify] \u9a8c\u8bc1\u5df2\u7b7e\u540d\u7684 JAR \u6587\u4ef6"},
- {"[-verbose] verbose output when signing/verifying",
- "[-verbose] \u7b7e\u540d/\u9a8c\u8bc1\u65f6\u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f"},
+ {"[-verbose[:suboptions]] verbose output when signing/verifying.",
+ "[-verbose[:\u5b50\u9009\u9879]] \u7b7e\u540d/\u9a8c\u8bc1\u65f6\u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f\u3002"},
+ {" suboptions can be all, grouped or summary",
+ " \u5b50\u9009\u9879\u53ef\u4ee5\u4e3a all\u3001grouped \u6216 summary"},
{"[-certs] display certificates when verbose and verifying",
"[-certs] \u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f\u548c\u9a8c\u8bc1\u65f6\u663e\u793a\u8bc1\u4e66"},
{"[-tsa <url>] location of the Timestamping Authority",
@@ -98,10 +102,22 @@
"[-providerClass <\u7c7b> \u52a0\u5bc6\u670d\u52a1\u63d0\u4f9b\u8005\u7684\u540d\u79f0"},
{" [-providerArg <arg>]] ... master class file and constructor argument",
" [-providerArg <\u53c2\u6570>]] ... \u4e3b\u7c7b\u6587\u4ef6\u548c\u6784\u9020\u51fd\u6570\u53c2\u6570"},
+ {"[-strict] treat warnings as errors",
+ "[-strict] \u5c06\u8b66\u544a\u89c6\u4e3a\u9519\u8bef"},
+ {"Option lacks argument", "\u9009\u9879\u7f3a\u5c11\u53c2\u6570"},
+ {"Please type jarsigner -help for usage", "\u6709\u5173\u7528\u6cd5\uff0c\u8bf7\u952e\u5165 jarsigner -help"},
+ {"Please specify jarfile name", "\u8bf7\u6307\u5b9a jarfile \u540d\u79f0"},
+ {"Please specify alias name", "\u8bf7\u6307\u5b9a\u522b\u540d"},
+ {"Only one alias can be specified", "\u53ea\u80fd\u6307\u5b9a\u4e00\u4e2a\u522b\u540d"},
+ {"This jar contains signed entries which is not signed by the specified alias(es).",
+ "\u6b64 jar \u5305\u542b\u6307\u5b9a\u522b\u540d\u672a\u7b7e\u540d\u7684\u7b7e\u540d\u6761\u76ee\u3002"},
+ {"This jar contains signed entries that's not signed by alias in this keystore.",
+ "\u6b64 jar \u5305\u542b\u6b64\u5bc6\u94a5\u5e93\u4e2d\u522b\u540d\u672a\u7b7e\u540d\u7684\u7b7e\u540d\u6761\u76ee\u3002"},
{"s", "s"},
{"m", "m"},
{"k", "k"},
{"i", "i"},
+ {"(and %d more)", "\uff08\u8fd8\u6709 %d\uff09"},
{" s = signature was verified ",
" s = \u5df2\u9a8c\u8bc1\u7b7e\u540d "},
{" m = entry is listed in manifest",
@@ -110,7 +126,11 @@
" k = \u5728\u5bc6\u94a5\u5e93\u4e2d\u81f3\u5c11\u627e\u5230\u4e86\u4e00\u4e2a\u8bc1\u4e66"},
{" i = at least one certificate was found in identity scope",
" i = \u5728\u8eab\u4efd\u4f5c\u7528\u57df\u5185\u81f3\u5c11\u627e\u5230\u4e86\u4e00\u4e2a\u8bc1\u4e66"},
+ {" X = not signed by specified alias(es)",
+ " X = \u672a\u7ecf\u6307\u5b9a\u522b\u540d\u7b7e\u540d"},
{"no manifest.", "\u6ca1\u6709\u6e05\u5355\u3002"},
+ {"(Signature related entries)","\uff08\u4e0e\u7b7e\u540d\u6709\u5173\u7684\u6761\u76ee\uff09"},
+ {"(Unsigned entries)", "\uff08\u672a\u7b7e\u540d\u7684\u6761\u76ee\uff09"},
{"jar is unsigned. (signatures missing or not parsable)",
"jar \u672a\u7b7e\u540d\u3002\uff08\u7f3a\u5c11\u7b7e\u540d\u6216\u7b7e\u540d\u65e0\u6cd5\u89e3\u6790\uff09"},
{"jar verified.", "jar \u5df2\u9a8c\u8bc1\u3002"},
@@ -134,6 +154,12 @@
"\u65e0\u6cd5\u5b9e\u4f8b\u5316\u5bc6\u94a5\u5e93\u7c7b\uff1a "},
{"Certificate chain not found for: alias. alias must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.",
"\u627e\u4e0d\u5230 {0} \u7684\u8bc1\u4e66\u94fe\u3002{1} \u5fc5\u987b\u5f15\u7528\u5305\u542b\u4e13\u7528\u5bc6\u94a5\u548c\u76f8\u5e94\u7684\u516c\u5171\u5bc6\u94a5\u8bc1\u4e66\u94fe\u7684\u6709\u6548\u5bc6\u94a5\u5e93\u5bc6\u94a5\u6761\u76ee\u3002"},
+ {"File specified by -certchain does not exist",
+ "-certchain \u6307\u5b9a\u7684\u6587\u4ef6\u4e0d\u5b58\u5728"},
+ {"Cannot restore certchain from file specified",
+ "\u65e0\u6cd5\u4ece\u6307\u5b9a\u6587\u4ef6\u6062\u590d\u8bc1\u4e66\u94fe"},
+ {"Certificate chain not found in the file specified.",
+ "\u5728\u6307\u5b9a\u6587\u4ef6\u4e2d\u672a\u627e\u5230\u8bc1\u4e66\u94fe\u3002"},
{"found non-X.509 certificate in signer's chain",
"\u5728\u7b7e\u540d\u8005\u7684\u94fe\u4e2d\u627e\u5230\u975e X.509 \u8bc1\u4e66"},
{"incomplete certificate chain", "\u8bc1\u4e66\u94fe\u4e0d\u5b8c\u6574"},
@@ -149,6 +175,7 @@
{"certificate is not valid until",
"\u76f4\u5230 {0}\uff0c\u8bc1\u4e66\u624d\u6709\u6548"},
{"certificate will expire on", "\u8bc1\u4e66\u5c06\u5728 {0} \u5230\u671f"},
+ {"[CertPath not validated: ", "[\u8bc1\u4e66\u8def\u5f84\u672a\u7ecf\u8fc7\u9a8c\u8bc1\uff1a"},
{"requesting a signature timestamp",
"\u6b63\u5728\u8bf7\u6c42\u7b7e\u540d\u65f6\u95f4\u6233"},
{"TSA location: ", "TSA \u4f4d\u7f6e\uff1a "},
@@ -184,19 +211,23 @@
{"The signer certificate is not yet valid.",
"\u7b7e\u540d\u8005\u8bc1\u4e66\u4ecd\u65e0\u6548\u3002"},
{"The signer certificate's KeyUsage extension doesn't allow code signing.",
-"\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 KeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
+ "\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 KeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
{"The signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
-"\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 ExtendedKeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
+ "\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 ExtendedKeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
{"The signer certificate's NetscapeCertType extension doesn't allow code signing.",
-"\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 NetscapeCertType \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
- {"This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.",
-"\u6b64 jar \u5305\u542b\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 KeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u7684\u6761\u76ee\u3002"},
- {"This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
-"\u6b64 jar \u5305\u542b\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 ExtendedKeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u7684\u6761\u76ee\u3002"},
- {"This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.",
-"\u6b64 jar \u5305\u542b\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 NetscapeCertType \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u7684\u6761\u76ee\u3002"},
+ "\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 NetscapeCertType \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
+ {"This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.",
+ "\u6b64 jar \u5305\u542b\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 KeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u7684\u6761\u76ee\u3002"},
+ {"This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
+ "\u6b64 jar \u5305\u542b\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 ExtendedKeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u7684\u6761\u76ee\u3002"},
+ {"This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.",
+ "\u6b64 jar \u5305\u542b\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 NetscapeCertType \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u7684\u6761\u76ee\u3002"},
{"[{0} extension does not support code signing]",
-"[{0} \u6269\u5c55\u4e0d\u652f\u6301\u4ee3\u7801\u7b7e\u540d]"},
+ "[{0} \u6269\u5c55\u4e0d\u652f\u6301\u4ee3\u7801\u7b7e\u540d]"},
+ {"The signer's certificate chain is not validated.",
+ "\u7b7e\u540d\u8005\u7684\u8bc1\u4e66\u94fe\u672a\u7ecf\u8fc7\u9a8c\u8bc1\u3002"},
+ {"This jar contains entries whose certificate chain is not validated.",
+ "\u6b64 jar \u5305\u542b\u8bc1\u4e66\u94fe\u672a\u7ecf\u8fc7\u9a8c\u8bc1\u7684\u6761\u76ee\u3002"},
};
/**
--- a/jdk/src/share/classes/sun/security/tools/KeyTool.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/tools/KeyTool.java Wed Jul 05 17:10:40 2017 +0200
@@ -1211,6 +1211,14 @@
X509CertImpl cert = new X509CertImpl(info);
cert.sign(privateKey, sigAlgName);
dumpCert(cert, out);
+ for (Certificate ca: keyStore.getCertificateChain(alias)) {
+ if (ca instanceof X509Certificate) {
+ X509Certificate xca = (X509Certificate)ca;
+ if (!isSelfSigned(xca)) {
+ dumpCert(xca, out);
+ }
+ }
+ }
}
/**
@@ -2640,19 +2648,33 @@
}
/**
- * Returns true if the given certificate is trusted, false otherwise.
+ * Locates a signer for a given certificate from a given keystore and
+ * returns the signer's certificate.
+ * @param cert the certificate whose signer is searched, not null
+ * @param ks the keystore to search with, not null
+ * @return <code>cert</code> itself if it's already inside <code>ks</code>,
+ * or a certificate inside <code>ks</code> who signs <code>cert</code>,
+ * or null otherwise.
*/
- private boolean isTrusted(Certificate cert)
- throws Exception
- {
- if (keyStore.getCertificateAlias(cert) != null) {
- return true; // found in own keystore
+ private static Certificate getTrustedSigner(Certificate cert, KeyStore ks)
+ throws Exception {
+ if (ks.getCertificateAlias(cert) != null) {
+ return cert;
}
- if (trustcacerts && (caks != null) &&
- (caks.getCertificateAlias(cert) != null)) {
- return true; // found in CA keystore
+ for (Enumeration<String> aliases = ks.aliases();
+ aliases.hasMoreElements(); ) {
+ String name = aliases.nextElement();
+ Certificate trustedCert = ks.getCertificate(name);
+ if (trustedCert != null) {
+ try {
+ cert.verify(trustedCert.getPublicKey());
+ return trustedCert;
+ } catch (Exception e) {
+ // Not verified, skip to the next one
+ }
+ }
}
- return false;
+ return null;
}
/**
@@ -2985,48 +3007,33 @@
return replyCerts;
}
- // do we trust the (root) cert at the top?
+ // do we trust the cert at the top?
Certificate topCert = replyCerts[replyCerts.length-1];
- if (!isTrusted(topCert)) {
- boolean verified = false;
- Certificate rootCert = null;
- if (trustcacerts && (caks!= null)) {
- for (Enumeration<String> aliases = caks.aliases();
- aliases.hasMoreElements(); ) {
- String name = aliases.nextElement();
- rootCert = caks.getCertificate(name);
- if (rootCert != null) {
- try {
- topCert.verify(rootCert.getPublicKey());
- verified = true;
- break;
- } catch (Exception e) {
- }
- }
- }
+ Certificate root = getTrustedSigner(topCert, keyStore);
+ if (root == null && trustcacerts && caks != null) {
+ root = getTrustedSigner(topCert, caks);
+ }
+ if (root == null) {
+ System.err.println();
+ System.err.println
+ (rb.getString("Top-level certificate in reply:\n"));
+ printX509Cert((X509Certificate)topCert, System.out);
+ System.err.println();
+ System.err.print(rb.getString("... is not trusted. "));
+ String reply = getYesNoReply
+ (rb.getString("Install reply anyway? [no]: "));
+ if ("NO".equals(reply)) {
+ return null;
}
- if (!verified) {
- System.err.println();
- System.err.println
- (rb.getString("Top-level certificate in reply:\n"));
- printX509Cert((X509Certificate)topCert, System.out);
- System.err.println();
- System.err.print(rb.getString("... is not trusted. "));
- String reply = getYesNoReply
- (rb.getString("Install reply anyway? [no]: "));
- if ("NO".equals(reply)) {
- return null;
- }
- } else {
- if (!isSelfSigned((X509Certificate)topCert)) {
- // append the (self-signed) root CA cert to the chain
- Certificate[] tmpCerts =
- new Certificate[replyCerts.length+1];
- System.arraycopy(replyCerts, 0, tmpCerts, 0,
- replyCerts.length);
- tmpCerts[tmpCerts.length-1] = rootCert;
- replyCerts = tmpCerts;
- }
+ } else {
+ if (root != topCert) {
+ // append the root CA cert to the chain
+ Certificate[] tmpCerts =
+ new Certificate[replyCerts.length+1];
+ System.arraycopy(replyCerts, 0, tmpCerts, 0,
+ replyCerts.length);
+ tmpCerts[tmpCerts.length-1] = root;
+ replyCerts = tmpCerts;
}
}
--- a/jdk/src/share/classes/sun/security/tools/TimestampedSigner.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/tools/TimestampedSigner.java Wed Jul 05 17:10:40 2017 +0200
@@ -82,6 +82,11 @@
private static final String KP_TIMESTAMPING_OID = "1.3.6.1.5.5.7.3.8";
/*
+ * Object identifier for extendedKeyUsage extension
+ */
+ private static final String EXTENDED_KEY_USAGE_OID = "2.5.29.37";
+
+ /*
* Object identifier for the timestamping access descriptors.
*/
private static final ObjectIdentifier AD_TIMESTAMPING_Id;
@@ -357,34 +362,26 @@
}
// Examine the TSA's certificate (if present)
- List<String> keyPurposes = null;
- X509Certificate[] certs = tsToken.getCertificates();
- if (certs != null && certs.length > 0) {
- // Use certficate from the TSP reply
- // Pick out the cert for the TS server, which is the end-entity
- // one inside the chain.
- for (X509Certificate cert: certs) {
- boolean isSigner = false;
- for (X509Certificate cert2: certs) {
- if (cert != cert2) {
- if (cert.getSubjectDN().equals(cert2.getIssuerDN())) {
- isSigner = true;
- break;
- }
- }
+ for (SignerInfo si: tsToken.getSignerInfos()) {
+ X509Certificate cert = si.getCertificate(tsToken);
+ if (cert == null) {
+ // Error, we've already set tsRequestCertificate = true
+ throw new CertificateException(
+ "Certificate not included in timestamp token");
+ } else {
+ if (!cert.getCriticalExtensionOIDs().contains(
+ EXTENDED_KEY_USAGE_OID)) {
+ throw new CertificateException(
+ "Certificate is not valid for timestamping");
}
- if (!isSigner) {
- keyPurposes = cert.getExtendedKeyUsage();
- if (keyPurposes == null ||
- ! keyPurposes.contains(KP_TIMESTAMPING_OID)) {
- throw new CertificateException(
- "Certificate is not valid for timestamping");
- }
- break;
+ List keyPurposes = cert.getExtendedKeyUsage();
+ if (keyPurposes == null ||
+ ! keyPurposes.contains(KP_TIMESTAMPING_OID)) {
+ throw new CertificateException(
+ "Certificate is not valid for timestamping");
}
}
}
-
return tsReply.getEncodedToken();
}
}
--- a/jdk/src/share/classes/sun/security/util/AuthResources_de.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_de.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. 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
@@ -53,30 +53,30 @@
// UnixPrincipals
{"UnixNumericGroupPrincipal [Primary Group]: name",
- "Unix numerischer Gruppen-Principal [Prim\u00e4rgruppe]: {0}"},
+ "Unix numerischer Gruppen-Principal [Prim\u00e4rgruppe]: {0}"},
{"UnixNumericGroupPrincipal [Supplementary Group]: name",
- "Unix numerische Gruppen-Principal [Zusatzgruppe]: {0}"},
+ "Unix numerische Gruppen-Principal [Zusatzgruppe]: {0}"},
{"UnixNumericUserPrincipal: name", "Unix numerischer Benutzer-Principal: {0}"},
{"UnixPrincipal: name", "Unix-Principal: {0}"},
// com.sun.security.auth.login.ConfigFile
{"Unable to properly expand config", "{0} kann nicht ordnungsgem\u00e4\u00df erweitert werden."},
{"extra_config (No such file or directory)",
- "{0} (Datei oder Verzeichnis existiert nicht.)"},
- {"Unable to locate a login configuration",
- "Anmeldekonfiguration kann nicht gefunden werden."},
+ "{0} (Datei oder Verzeichnis existiert nicht.)"},
+ {"Configuration Error:\n\tNo such file or directory",
+ "Konfigurationsfehler: \n\tKeine Datei oder kein Verzeichnis dieser Art vorhanden"},
{"Configuration Error:\n\tInvalid control flag, flag",
- "Konfigurationsfehler:\n\tUng\u00fcltiges Steuerflag, {0}"},
+ "Konfigurationsfehler:\n\tUng\u00fcltiges Steuerflag, {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
- "Konfigurationsfehler:\n\tEs k\u00f6nnen nicht mehrere Angaben f\u00fcr {0} gemacht werden."},
+ "Konfigurationsfehler:\n\tEs k\u00f6nnen nicht mehrere Angaben f\u00fcr {0} gemacht werden."},
{"Configuration Error:\n\texpected [expect], read [end of file]",
- "Konfigurationsfehler:\n\terwartet [{0}], gelesen [Dateiende]"},
+ "Konfigurationsfehler:\n\terwartet [{0}], gelesen [Dateiende]"},
{"Configuration Error:\n\tLine line: expected [expect], found [value]",
- "Konfigurationsfehler:\n\tZeile {0}: erwartet [{1}], gefunden [{2}]"},
+ "Konfigurationsfehler:\n\tZeile {0}: erwartet [{1}], gefunden [{2}]"},
{"Configuration Error:\n\tLine line: expected [expect]",
- "Konfigurationsfehler:\n\tZeile {0}: erwartet [{1}]"},
+ "Konfigurationsfehler:\n\tZeile {0}: erwartet [{1}]"},
{"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
- "Konfigurationsfehler:\n\tZeile {0}: Systemeigenschaft [{1}] auf leeren Wert erweitert"},
+ "Konfigurationsfehler:\n\tZeile {0}: Systemeigenschaft [{1}] auf leeren Wert erweitert"},
// com.sun.security.auth.module.JndiLoginModule
{"username: ","Benutzername: "},
@@ -88,13 +88,13 @@
{"Keystore alias: ","Keystore-Alias: "},
{"Keystore password: ","Keystore-Passwort: "},
{"Private key password (optional): ",
- "Privates Schl\u00fcsselpasswort (optional): "},
+ "Privates Schl\u00fcsselpasswort (optional): "},
// com.sun.security.auth.module.Krb5LoginModule
{"Kerberos username [[defUsername]]: ",
- "Kerberos-Benutzername [{0}]: "},
+ "Kerberos-Benutzername [{0}]: "},
{"Kerberos password for [username]: ",
- "Kerberos-Passwort f\u00fcr {0}: "},
+ "Kerberos-Passwort f\u00fcr {0}: "},
/*** EVERYTHING BELOW IS DEPRECATED ***/
@@ -107,17 +107,17 @@
{"(", "("},
{")", ")"},
{"attempt to add a Permission to a readonly PermissionCollection",
- "Es wurde versucht, eine Berechtigung zu einer schreibgesch\u00fctzten Berechtigungssammlung hinzuzuf\u00fcgen."},
+ "Es wurde versucht, eine Berechtigung zu einer schreibgesch\u00fctzten Berechtigungssammlung hinzuzuf\u00fcgen."},
// com.sun.security.auth.PolicyParser
{"expected keystore type", "erwarteter Keystore-Typ"},
{"can not specify Principal with a ",
- "Principal kann nicht mit einer "},
+ "Principal kann nicht mit einer "},
{"wildcard class without a wildcard name",
- "Wildcard-Klasse ohne Wildcard-Namen angegeben werden."},
+ "Wildcard-Klasse ohne Wildcard-Namen angegeben werden."},
{"expected codeBase or SignedBy", "codeBase oder SignedBy erwartet"},
{"only Principal-based grant entries permitted",
- "Nur Principal-basierte Berechtigungseintr\u00e4ge erlaubt"},
+ "Nur Principal-basierte Berechtigungseintr\u00e4ge erlaubt"},
{"expected permission entry", "Berechtigungseintrag erwartet"},
{"number ", "Nummer "},
{"expected ", "erwartet "},
@@ -130,11 +130,11 @@
// SolarisPrincipals
{"SolarisNumericGroupPrincipal [Primary Group]: ",
- "Solaris numerischer Gruppen-Principal [Prim\u00e4rgruppe]: "},
+ "Solaris numerischer Gruppen-Principal [Prim\u00e4rgruppe]: "},
{"SolarisNumericGroupPrincipal [Supplementary Group]: ",
- "Solaris numerischer Gruppen-Principal [Zusatzgruppe]: "},
+ "Solaris numerischer Gruppen-Principal [Zusatzgruppe]: "},
{"SolarisNumericUserPrincipal: ",
- "Solaris numerischer Benutzer-Principal: "},
+ "Solaris numerischer Benutzer-Principal: "},
{"SolarisPrincipal: ", "Solaris-Principal: "},
{"provided null name", "enthielt leeren Namen"}
--- a/jdk/src/share/classes/sun/security/util/AuthResources_es.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_es.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. 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
@@ -53,30 +53,30 @@
// UnixPrincipals
{"UnixNumericGroupPrincipal [Primary Group]: name",
- "UnixNumericGroupPrincipal [Grupo principal] {0}"},
+ "UnixNumericGroupPrincipal [Grupo principal] {0}"},
{"UnixNumericGroupPrincipal [Supplementary Group]: name",
- "UnixNumericGroupPrincipal [Grupo adicional] {0}"},
+ "UnixNumericGroupPrincipal [Grupo adicional] {0}"},
{"UnixNumericUserPrincipal: name", "UnixNumericUserPrincipal: {0}"},
{"UnixPrincipal: name", "UnixPrincipal: {0}"},
// com.sun.security.auth.login.ConfigFile
{"Unable to properly expand config", "No se puede ampliar correctamente {0}"},
{"extra_config (No such file or directory)",
- "{0} (No existe tal archivo o directorio)"},
- {"Unable to locate a login configuration",
- "No se puede localizar una configuraci\u00f3n de inicio de sesi\u00f3n"},
+ "{0} (No existe tal archivo o directorio)"},
+ {"Configuration Error:\n\tNo such file or directory",
+ "Error de configuraci\u00f3n:\n\tNo se encuentra archivo o directorio"},
{"Configuration Error:\n\tInvalid control flag, flag",
- "Error de configuraci\u00f3n:\n\tIndicador de control no v\u00e1lido, {0}"},
+ "Error de configuraci\u00f3n:\n\tIndicador de control no v\u00e1lido, {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
- "Error de configuraci\u00f3n:\n\tNo se pueden especificar m\u00faltiples entradas para {0}"},
+ "Error de configuraci\u00f3n:\n\tNo se pueden especificar m\u00faltiples entradas para {0}"},
{"Configuration Error:\n\texpected [expect], read [end of file]",
- "Error de configuraci\u00f3n:\n\tse esperaba [{0}], se ha le\u00eddo [end of file]"},
+ "Error de configuraci\u00f3n:\n\tse esperaba [{0}], se ha le\u00eddo [end of file]"},
{"Configuration Error:\n\tLine line: expected [expect], found [value]",
- "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: se esperaba [{1}], se ha encontrado [{2}]"},
+ "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: se esperaba [{1}], se ha encontrado [{2}]"},
{"Configuration Error:\n\tLine line: expected [expect]",
- "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: se esperaba [{1}]"},
+ "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: se esperaba [{1}]"},
{"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
- "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: propiedad de sistema [{1}] ampliada a valor vac\u00edo"},
+ "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: propiedad de sistema [{1}] ampliada a valor vac\u00edo"},
// com.sun.security.auth.module.JndiLoginModule
{"username: ","nombre de usuario: "},
@@ -88,13 +88,13 @@
{"Keystore alias: ","Alias de almac\u00e9n de claves: "},
{"Keystore password: ","Contrase\u00f1a de almac\u00e9n de claves: "},
{"Private key password (optional): ",
- "Contrase\u00f1a de clave privada (opcional): "},
+ "Contrase\u00f1a de clave privada (opcional): "},
// com.sun.security.auth.module.Krb5LoginModule
{"Kerberos username [[defUsername]]: ",
- "Nombre de usuario de Kerberos [{0}]: "},
+ "Nombre de usuario de Kerberos [{0}]: "},
{"Kerberos password for [username]: ",
- "Contrase\u00f1a de Kerberos de {0}: "},
+ "Contrase\u00f1a de Kerberos de {0}: "},
/*** EVERYTHING BELOW IS DEPRECATED ***/
@@ -107,17 +107,17 @@
{"(", "("},
{")", ")"},
{"attempt to add a Permission to a readonly PermissionCollection",
- "se ha intentado agregar un Permiso a una Colecci\u00f3n de permisos de s\u00f3lo lectura"},
+ "se ha intentado agregar un Permiso a una Colecci\u00f3n de permisos de s\u00f3lo lectura"},
// com.sun.security.auth.PolicyParser
{"expected keystore type", "se esperaba un tipo de almac\u00e9n de claves"},
{"can not specify Principal with a ",
- "no se puede especificar Principal con una "},
+ "no se puede especificar Principal con una "},
{"wildcard class without a wildcard name",
- "clase comod\u00edn sin nombre de comod\u00edn"},
+ "clase comod\u00edn sin nombre de comod\u00edn"},
{"expected codeBase or SignedBy", "se esperaba base de c\u00f3digos o SignedBy"},
{"only Principal-based grant entries permitted",
- "s\u00f3lo se permite conceder entradas basadas en Principal"},
+ "s\u00f3lo se permite conceder entradas basadas en Principal"},
{"expected permission entry", "se esperaba un permiso de entrada"},
{"number ", "n\u00famero "},
{"expected ", "se esperaba "},
@@ -130,11 +130,11 @@
// SolarisPrincipals
{"SolarisNumericGroupPrincipal [Primary Group]: ",
- "SolarisNumericGroupPrincipal [Grupo principal]: "},
+ "SolarisNumericGroupPrincipal [Grupo principal]: "},
{"SolarisNumericGroupPrincipal [Supplementary Group]: ",
- "SolarisNumericGroupPrincipal [Grupo adicional]: "},
+ "SolarisNumericGroupPrincipal [Grupo adicional]: "},
{"SolarisNumericUserPrincipal: ",
- "SolarisNumericUserPrincipal: "},
+ "SolarisNumericUserPrincipal: "},
{"SolarisPrincipal: ", "SolarisPrincipal: "},
{"provided null name", "se ha proporcionado un nombre nulo"}
--- a/jdk/src/share/classes/sun/security/util/AuthResources_fr.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_fr.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. 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
@@ -53,30 +53,30 @@
// UnixPrincipals
{"UnixNumericGroupPrincipal [Primary Group]: name",
- "UnixNumericGroupPrincipal [groupe principal] : {0}"},
+ "UnixNumericGroupPrincipal [groupe principal] : {0}"},
{"UnixNumericGroupPrincipal [Supplementary Group]: name",
- "UnixNumericGroupPrincipal [groupe suppl\u00e9mentaire] : {0}"},
+ "UnixNumericGroupPrincipal [groupe suppl\u00e9mentaire] : {0}"},
{"UnixNumericUserPrincipal: name", "UnixNumericUserPrincipal : {0}"},
{"UnixPrincipal: name", "UnixPrincipal : {0}"},
// com.sun.security.auth.login.ConfigFile
{"Unable to properly expand config", "Impossible de d\u00e9velopper {0} correctement"},
{"extra_config (No such file or directory)",
- "{0} (fichier ou r\u00e9pertoire introuvable)"},
- {"Unable to locate a login configuration",
- "Impossible de trouver une configuration de connexion"},
+ "{0} (fichier ou r\u00e9pertoire introuvable)"},
+ {"Configuration Error:\n\tNo such file or directory",
+ "Erreur de configuration\u00a0:\n\tAucun fichier ou r\u00e9pertoire de ce type"},
{"Configuration Error:\n\tInvalid control flag, flag",
- "Erreur de configuration :\n\tIndicateur de contr\u00f4le non valide, {0}"},
+ "Erreur de configuration :\n\tIndicateur de contr\u00f4le non valide, {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
- "Erreur de configuration :\n\tImpossible de sp\u00e9cifier des entr\u00e9es multiples pour {0}"},
+ "Erreur de configuration :\n\tImpossible de sp\u00e9cifier des entr\u00e9es multiples pour {0}"},
{"Configuration Error:\n\texpected [expect], read [end of file]",
- "Erreur de configuration :\n\tattendu [{0}], lecture [fin de fichier]"},
+ "Erreur de configuration :\n\tattendu [{0}], lecture [fin de fichier]"},
{"Configuration Error:\n\tLine line: expected [expect], found [value]",
- "Erreur de configuration :\n\tLigne {0} : attendu [{1}], trouv\u00e9 [{2}]"},
+ "Erreur de configuration :\n\tLigne {0} : attendu [{1}], trouv\u00e9 [{2}]"},
{"Configuration Error:\n\tLine line: expected [expect]",
- "Erreur de configuration :\n\tLigne {0} : attendu [{1}]"},
+ "Erreur de configuration :\n\tLigne {0} : attendu [{1}]"},
{"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
- "Erreur de configuration :\n\tLigne {0} : propri\u00e9t\u00e9 syst\u00e8me [{1}] d\u00e9velopp\u00e9e en valeur vide"},
+ "Erreur de configuration :\n\tLigne {0} : propri\u00e9t\u00e9 syst\u00e8me [{1}] d\u00e9velopp\u00e9e en valeur vide"},
// com.sun.security.auth.module.JndiLoginModule
{"username: ","Nom d'utilisateur : "},
@@ -88,13 +88,13 @@
{"Keystore alias: ","Alias pour Keystore : "},
{"Keystore password: ","Mot de passe pour Keystore : "},
{"Private key password (optional): ",
- "Mot de passe de cl\u00e9 priv\u00e9e (facultatif) : "},
+ "Mot de passe de cl\u00e9 priv\u00e9e (facultatif) : "},
// com.sun.security.auth.module.Krb5LoginModule
{"Kerberos username [[defUsername]]: ",
- "Nom d''utilisateur Kerberos [{0}] : "},
+ "Nom d''utilisateur Kerberos [{0}] : "},
{"Kerberos password for [username]: ",
- "Mot de pass\u00e9 Kerberos pour {0} : "},
+ "Mot de pass\u00e9 Kerberos pour {0} : "},
/*** EVERYTHING BELOW IS DEPRECATED ***/
@@ -107,17 +107,17 @@
{"(", "("},
{")", ")"},
{"attempt to add a Permission to a readonly PermissionCollection",
- "tentative d'ajout de permission \u00e0 un ensemble de permissions en lecture seule"},
+ "tentative d'ajout de permission \u00e0 un ensemble de permissions en lecture seule"},
// com.sun.security.auth.PolicyParser
{"expected keystore type", "type de Keystore attendu"},
{"can not specify Principal with a ",
- "impossible de sp\u00e9cifier Principal avec une"},
+ "impossible de sp\u00e9cifier Principal avec une "},
{"wildcard class without a wildcard name",
- "classe g\u00e9n\u00e9rique sans nom g\u00e9n\u00e9rique"},
+ "classe g\u00e9n\u00e9rique sans nom g\u00e9n\u00e9rique"},
{"expected codeBase or SignedBy", "codeBase ou SignedBy attendu"},
{"only Principal-based grant entries permitted",
- "seules les entr\u00e9es bas\u00e9es sur Principal sont autoris\u00e9es"},
+ "seules les entr\u00e9es bas\u00e9es sur Principal sont autoris\u00e9es"},
{"expected permission entry", "entr\u00e9e de permission attendue"},
{"number ", "nombre "},
{"expected ", "attendu "},
@@ -130,11 +130,11 @@
// SolarisPrincipals
{"SolarisNumericGroupPrincipal [Primary Group]: ",
- "SolarisNumericGroupPrincipal [groupe principal] : "},
+ "SolarisNumericGroupPrincipal [groupe principal] : "},
{"SolarisNumericGroupPrincipal [Supplementary Group]: ",
- "SolarisNumericGroupPrincipal [groupe suppl\u00e9mentaire] : "},
+ "SolarisNumericGroupPrincipal [groupe suppl\u00e9mentaire] : "},
{"SolarisNumericUserPrincipal: ",
- "SolarisNumericUserPrincipal : "},
+ "SolarisNumericUserPrincipal : "},
{"SolarisPrincipal: ", "SolarisPrincipal : "},
{"provided null name", "nom Null sp\u00e9cifi\u00e9"}
--- a/jdk/src/share/classes/sun/security/util/AuthResources_it.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_it.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,6 @@
public class AuthResources_it extends java.util.ListResourceBundle {
private static final Object[][] contents = {
-
// NT principals
{"invalid null input: value", "input nullo non valido: {0}"},
{"NTDomainPrincipal: name", "NTDomainPrincipal: {0}"},
@@ -53,30 +52,30 @@
// UnixPrincipals
{"UnixNumericGroupPrincipal [Primary Group]: name",
- "UnixNumericGroupPrincipal [gruppo primario]: {0}"},
+ "UnixNumericGroupPrincipal [gruppo primario]: {0}"},
{"UnixNumericGroupPrincipal [Supplementary Group]: name",
- "UnixNumericGroupPrincipal [gruppo supplementare]: {0}"},
+ "UnixNumericGroupPrincipal [gruppo supplementare]: {0}"},
{"UnixNumericUserPrincipal: name", "UnixNumericUserPrincipal: {0}"},
{"UnixPrincipal: name", "UnixPrincipal: {0}"},
// com.sun.security.auth.login.ConfigFile
{"Unable to properly expand config", "Impossibile espandere correttamente {0}"},
{"extra_config (No such file or directory)",
- "{0} (file o directory inesistente)"},
- {"Unable to locate a login configuration",
- "Impossibile trovare una configurazione di login"},
+ "{0} (file o directory inesistente)"},
+ {"Configuration Error:\n\tNo such file or directory",
+ "Errore di configurazione:\n\tfile o directory inesistente"},
{"Configuration Error:\n\tInvalid control flag, flag",
- "Errore di configurazione:\n\tflag di controllo non valido, {0}"},
+ "Errore di configurazione:\n\tflag di controllo non valido, {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
- "Errore di configurazione:\n\timpossibile specificare pi\u00f9 valori per {0}"},
+ "Errore di configurazione:\n\timpossibile specificare pi\u00f9 valori per {0}"},
{"Configuration Error:\n\texpected [expect], read [end of file]",
- "Errore di configurazione:\n\tprevisto [{0}], letto [end of file]"},
+ "Errore di configurazione:\n\tprevisto [{0}], letto [end of file]"},
{"Configuration Error:\n\tLine line: expected [expect], found [value]",
- "Errore di configurazione:\n\triga {0}: previsto [{1}], trovato [{2}]"},
+ "Errore di configurazione:\n\triga {0}: previsto [{1}], trovato [{2}]"},
{"Configuration Error:\n\tLine line: expected [expect]",
- "Errore di configurazione:\n\triga {0}: previsto [{1}]"},
+ "Errore di configurazione:\n\triga {0}: previsto [{1}]"},
{"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
- "Errore di configurazione:\n\triga {0}: propriet\u00e0 di sistema [{1}] espansa a valore vuoto"},
+ "Errore di configurazione:\n\triga {0}: propriet\u00e0 di sistema [{1}] espansa a valore vuoto"},
// com.sun.security.auth.module.JndiLoginModule
{"username: ","Nome utente: "},
@@ -88,13 +87,13 @@
{"Keystore alias: ","Alias keystore: "},
{"Keystore password: ","Password keystore: "},
{"Private key password (optional): ",
- "Password chiave privata (opzionale): "},
+ "Password chiave privata (opzionale): "},
// com.sun.security.auth.module.Krb5LoginModule
{"Kerberos username [[defUsername]]: ",
"Nome utente Kerberos [{0}]: "},
{"Kerberos password for [username]: ",
- "Password Kerberos per {0}: "},
+ "Password Kerberos per {0}: "},
/*** EVERYTHING BELOW IS DEPRECATED ***/
@@ -102,22 +101,22 @@
{": error parsing ", ": errore nell'analisi "},
{": ", ": "},
{": error adding Permission ", ": errore nell'aggiunta del permesso "},
- {" ", " "},
+ {" ", " "},
{": error adding Entry ", ": errore nell'aggiunta dell'entry "},
{"(", "("},
{")", ")"},
{"attempt to add a Permission to a readonly PermissionCollection",
- "tentativo di aggiungere un permesso a una PermissionCollection di sola lettura"},
+ "tentativo di aggiungere un permesso a una PermissionCollection di sola lettura"},
// com.sun.security.auth.PolicyParser
{"expected keystore type", "tipo di keystore previsto"},
{"can not specify Principal with a ",
- "impossibile specificare Principal con una "},
+ "impossibile specificare Principal con una "},
{"wildcard class without a wildcard name",
- "classe wildcard senza un nome wildcard"},
+ "classe wildcard senza un nome wildcard"},
{"expected codeBase or SignedBy", "previsto codeBase o SignedBy"},
{"only Principal-based grant entries permitted",
- "sono permessi solo valori garantiti basati su Principal"},
+ "sono permessi solo valori garantiti basati su Principal"},
{"expected permission entry", "prevista entry di permesso"},
{"number ", "numero "},
{"expected ", "previsto "},
@@ -130,11 +129,11 @@
// SolarisPrincipals
{"SolarisNumericGroupPrincipal [Primary Group]: ",
- "SolarisNumericGroupPrincipal [gruppo primario]: "},
+ "SolarisNumericGroupPrincipal [gruppo primario]: "},
{"SolarisNumericGroupPrincipal [Supplementary Group]: ",
- "SolarisNumericGroupPrincipal [gruppo supplementare]: "},
+ "SolarisNumericGroupPrincipal [gruppo supplementare]: "},
{"SolarisNumericUserPrincipal: ",
- "SolarisNumericUserPrincipal: "},
+ "SolarisNumericUserPrincipal: "},
{"SolarisPrincipal: ", "SolarisPrincipal: "},
{"provided null name", "il nome fornito \u00e8 nullo"}
--- a/jdk/src/share/classes/sun/security/util/AuthResources_ja.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_ja.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -63,8 +63,8 @@
{"Unable to properly expand config", "{0} \u3092\u6b63\u3057\u304f\u5c55\u958b\u3067\u304d\u307e\u305b\u3093\u3002"},
{"extra_config (No such file or directory)",
"{0} (\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u307e\u305f\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u5b58\u5728\u3057\u307e\u305b\u3093)"},
- {"Unable to locate a login configuration",
- "\u30ed\u30b0\u30a4\u30f3\u69cb\u6210\u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002"},
+ {"Configuration Error:\n\tNo such file or directory",
+ "\u69cb\u6210\u30a8\u30e9\u30fc:\n\t\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u307e\u305f\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002"},
{"Configuration Error:\n\tInvalid control flag, flag",
"\u69cb\u6210\u30a8\u30e9\u30fc:\n\t\u7121\u52b9\u306a\u5236\u5fa1\u30d5\u30e9\u30b0: {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
@@ -76,7 +76,7 @@
{"Configuration Error:\n\tLine line: expected [expect]",
"\u69cb\u6210\u30a8\u30e9\u30fc:\n\t\u884c {0}: [{1}] \u304c\u8981\u6c42\u3055\u308c\u307e\u3057\u305f\u3002"},
{"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
- "\u69cb\u6210\u30a8\u30e9\u30fc:\n\t\u884c {0}: \u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30d1\u30c6\u30a3 [{1}] \u304c\u7a7a\u306e\u5024\u306b\u5c55\u958b\u3055\u308c\u307e\u3057\u305f\u3002"},
+ "\u69cb\u6210\u30a8\u30e9\u30fc:\n\t\u884c {0}: \u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc [{1}] \u304c\u7a7a\u306e\u5024\u306b\u5c55\u958b\u3055\u308c\u307e\u3057\u305f\u3002"},
// com.sun.security.auth.module.JndiLoginModule
{"username: ","\u30e6\u30fc\u30b6\u540d: "},
--- a/jdk/src/share/classes/sun/security/util/AuthResources_ko.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_ko.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -63,8 +63,8 @@
{"Unable to properly expand config", "\uc801\uc808\ud788 \ud655\uc7a5\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. {0}"},
{"extra_config (No such file or directory)",
"{0} (\ud574\ub2f9 \ud30c\uc77c\uc774\ub098 \ub514\ub809\ud1a0\ub9ac\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.)"},
- {"Unable to locate a login configuration",
- "\ub85c\uadf8\uc778 \uad6c\uc131\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4."},
+ {"Configuration Error:\n\tNo such file or directory",
+ "\uad6c\uc131 \uc624\ub958:\n\t\ud574\ub2f9 \ud30c\uc77c\uc774\ub098 \ub514\ub809\ud1a0\ub9ac\uac00 \uc5c6\uc2b5\ub2c8\ub2e4."},
{"Configuration Error:\n\tInvalid control flag, flag",
"\uad6c\uc131 \uc624\ub958:\n\t\uc798\ubabb\ub41c \ucee8\ud2b8\ub864 \ud50c\ub798\uadf8, {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
--- a/jdk/src/share/classes/sun/security/util/AuthResources_sv.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_sv.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. 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
@@ -53,47 +53,48 @@
// UnixPrincipals
{"UnixNumericGroupPrincipal [Primary Group]: name",
- "UnixNumericGroupPrincipal [prim\u00e4r grupp]: {0}"},
+ "UnixNumericGroupPrincipal [prim\u00e4r grupp]: {0}"},
{"UnixNumericGroupPrincipal [Supplementary Group]: name",
- "UnixNumericGroupPrincipal [till\u00e4ggsgrupp]: {0}"},
+ "UnixNumericGroupPrincipal [till\u00e4ggsgrupp]: {0}"},
{"UnixNumericUserPrincipal: name", "UnixNumericUserPrincipal: {0}"},
{"UnixPrincipal: name", "UnixPrincipal: {0}"},
// com.sun.security.auth.login.ConfigFile
{"Unable to properly expand config", "Det g\u00e5r inte att utvidga korrekt {0}"},
{"extra_config (No such file or directory)",
- "{0} (Det finns ingen s\u00e5dan fil eller katalog.)"},
- {"Unable to locate a login configuration",
- "Det g\u00e5r inte att hitta n\u00e5gon inloggningskonfiguration"},
+ "{0} (Det finns ingen s\u00e5dan fil eller katalog.)"},
+ {"Configuration Error:\n\tNo such file or directory",
+ "Konfigurationsfel:\n\tDet finns ingen s\u00e5dan fil eller katalog."},
{"Configuration Error:\n\tInvalid control flag, flag",
- "Konfigurationsfel:\n\tOgiltig kontrollflagga, {0}"},
+ "Konfigurationsfel:\n\tOgiltig kontrollflagga, {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
- "Konfigurationsfel:\n\tDet g\u00e5r inte att ange flera poster f\u00f6r {0}"},
+ "Konfigurationsfel:\n\tDet g\u00e5r inte att ange flera poster f\u00f6r {0}"},
{"Configuration Error:\n\texpected [expect], read [end of file]",
- "Konfigurationsfel:\n\tf\u00f6rv\u00e4ntade [{0}], l\u00e4ste [end of file]"},
+ "Konfigurationsfel:\n\tf\u00f6rv\u00e4ntade [{0}], l\u00e4ste [end of file]"},
{"Configuration Error:\n\tLine line: expected [expect], found [value]",
- "Konfigurationsfel:\n\tLine {0}: f\u00f6rv\u00e4ntade [{1}], hittade [{2}]"},
+ "Konfigurationsfel:\n\tLine {0}: f\u00f6rv\u00e4ntade [{1}], hittade [{2}]"},
{"Configuration Error:\n\tLine line: expected [expect]",
- "Konfigurationsfel:\n\tLine {0}: f\u00f6rv\u00e4ntade [{1}]"},
+ "Konfigurationsfel:\n\tLine {0}: f\u00f6rv\u00e4ntade [{1}]"},
{"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
- "Konfigurationsfel:\n\tLine {0}: systemegenskapen [{1}] utvidgad till tomt v\u00e4rde"},
+ "Konfigurationsfel:\n\tLine {0}: systemegenskapen [{1}] utvidgad till tomt v\u00e4rde"},
// com.sun.security.auth.module.JndiLoginModule
{"username: ","anv\u00e4ndarnamn: "},
{"password: ","l\u00f6senord: "},
// com.sun.security.auth.module.KeyStoreLoginModule
- {"Please enter keystore information","Ange keystore-information"},
+ {"Please enter keystore information",
+ "Ange keystore-information"},
{"Keystore alias: ","Keystore-alias: "},
{"Keystore password: ","Keystore-l\u00f6senord: "},
{"Private key password (optional): ",
- "L\u00f6senord f\u00f6r personlig nyckel (valfritt): "},
+ "L\u00f6senord f\u00f6r personlig nyckel (valfritt): "},
// com.sun.security.auth.module.Krb5LoginModule
{"Kerberos username [[defUsername]]: ",
- "Kerberos-anv\u00e4ndarnamn [{0}]: "},
+ "Kerberos-anv\u00e4ndarnamn [{0}]: "},
{"Kerberos password for [username]: ",
- "Kerberos-l\u00f6senord f\u00f6r {0}: "},
+ "Kerberos-l\u00f6senord f\u00f6r {0}: "},
/*** EVERYTHING BELOW IS DEPRECATED ***/
@@ -106,17 +107,17 @@
{"(", "("},
{")", ")"},
{"attempt to add a Permission to a readonly PermissionCollection",
- "f\u00f6rs\u00f6k att l\u00e4gga till beh\u00f6righet till skrivskyddad PermissionCollection"},
+ "f\u00f6rs\u00f6k att l\u00e4gga till beh\u00f6righet till skrivskyddad PermissionCollection"},
// com.sun.security.auth.PolicyParser
{"expected keystore type", "f\u00f6rv\u00e4ntad keystore-typ"},
{"can not specify Principal with a ",
- "det g\u00e5r inte att specificera n\u00e5gon principal med "},
+ "det g\u00e5r inte att specificera n\u00e5gon principal med "},
{"wildcard class without a wildcard name",
- "jokertecken f\u00f6r klass men inte f\u00f6r namn"},
+ "jokertecken f\u00f6r klass men inte f\u00f6r namn"},
{"expected codeBase or SignedBy", "f\u00f6rv\u00e4ntade codeBase eller SignedBy"},
{"only Principal-based grant entries permitted",
- "enbart Principal-baserade poster till\u00e5tna"},
+ "enbart Principal-baserade poster till\u00e5tna"},
{"expected permission entry", "f\u00f6rv\u00e4ntade beh\u00f6righetspost"},
{"number ", "antal "},
{"expected ", "f\u00f6rv\u00e4ntade "},
@@ -129,11 +130,11 @@
// SolarisPrincipals
{"SolarisNumericGroupPrincipal [Primary Group]: ",
- "SolarisNumericGroupPrincipal [prim\u00e4r grupp]: "},
+ "SolarisNumericGroupPrincipal [prim\u00e4r grupp]: "},
{"SolarisNumericGroupPrincipal [Supplementary Group]: ",
- "SolarisNumericGroupPrincipal [till\u00e4ggsgrupp]: "},
+ "SolarisNumericGroupPrincipal [till\u00e4ggsgrupp]: "},
{"SolarisNumericUserPrincipal: ",
- "SolarisNumericUserPrincipal: "},
+ "SolarisNumericUserPrincipal: "},
{"SolarisPrincipal: ", "SolarisPrincipal: "},
{"provided null name", "gav null-namn"}
--- a/jdk/src/share/classes/sun/security/util/AuthResources_zh_CN.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_zh_CN.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -63,8 +63,8 @@
{"Unable to properly expand config", "\u65e0\u6cd5\u5b8c\u5168\u6269\u5145 {0}"},
{"extra_config (No such file or directory)",
"{0} \uff08\u6ca1\u6709\u6b64\u6587\u4ef6\u6216\u76ee\u5f55\uff09"},
- {"Unable to locate a login configuration",
- "\u65e0\u6cd5\u5b9a\u4f4d\u767b\u5f55\u914d\u7f6e"},
+ {"Configuration Error:\n\tNo such file or directory",
+ "\u914d\u7f6e\u9519\u8bef\uff1a\n\t\u6ca1\u6709\u6b64\u6587\u4ef6\u6216\u76ee\u5f55"},
{"Configuration Error:\n\tInvalid control flag, flag",
"\u914d\u7f6e\u9519\u8bef\uff1a\n\t\u65e0\u6548\u7684\u63a7\u5236\u6807\u8bb0\uff0c {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
--- a/jdk/src/share/classes/sun/security/util/AuthResources_zh_TW.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/util/AuthResources_zh_TW.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -63,8 +63,8 @@
{"Unable to properly expand config", "\u7121\u6cd5\u5b8c\u5168\u64f4\u5145 {0}"},
{"extra_config (No such file or directory)",
"{0} \uff08\u6c92\u6709\u6b64\u6a94\u6848\u6216\u76ee\u9304\uff09"},
- {"Unable to locate a login configuration",
- "\u7121\u6cd5\u5b9a\u4f4d\u767b\u5165\u914d\u7f6e"},
+ {"Configuration Error:\n\tNo such file or directory",
+ "\u914d\u7f6e\u932f\u8aa4\uff1a\n\t\u6c92\u6709\u9019\u985e\u7684\u6a94\u6848\u6216\u76ee\u9304"},
{"Configuration Error:\n\tInvalid control flag, flag",
"\u914d\u7f6e\u932f\u8aa4\uff1a\n\t\u7121\u6548\u7684\u63a7\u5236\u65d7\u865f\uff0c {0}"},
{"Configuration Error:\n\tCan not specify multiple entries for appName",
--- a/jdk/src/share/classes/sun/security/x509/X509Key.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/security/x509/X509Key.java Wed Jul 05 17:10:40 2017 +0200
@@ -171,7 +171,7 @@
in.data.getUnalignedBitString());
} catch (InvalidKeyException e) {
- throw new IOException("subject key, " + e.getMessage());
+ throw new IOException("subject key, " + e.getMessage(), e);
}
if (in.data.available() != 0)
@@ -224,7 +224,7 @@
} catch (NoSuchAlgorithmException e) {
// Return generic X509Key with opaque key data (see below)
} catch (InvalidKeySpecException e) {
- throw new InvalidKeyException(e.getMessage());
+ throw new InvalidKeyException(e.getMessage(), e);
}
/*
--- a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java Wed Jul 05 17:10:40 2017 +0200
@@ -114,7 +114,6 @@
{"ClassTab.infoLabelFormat", "<html>\u30ed\u30fc\u30c9: {0} \u30a2\u30f3\u30ed\u30fc\u30c9: {1} \u7dcf\u6570: {2}</html>"},
{"ClassTab.loadedClassesPlotter.accessibleName", "\u30ed\u30fc\u30c9\u3055\u308c\u305f\u30af\u30e9\u30b9\u306e\u56f3\u3002"},
{"Classes","\u30af\u30e9\u30b9"},
- {"Clear","\u6d88\u53bb"},
{"Close","\u9589\u3058\u308b"},
{"Column.Name", "\u540d\u524d"},
{"Column.PID", "PID"},
@@ -122,7 +121,6 @@
{"Committed virtual memory","\u78ba\u5b9a\u4eee\u60f3\u30e1\u30e2\u30ea"},
{"Committed", "\u78ba\u5b9a"},
{"Compiler","\u30b3\u30f3\u30d1\u30a4\u30e9"},
- {"Composite Navigation", "\u8907\u5408\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3"},
{"CompositeData","CompositeData"},
{"Config","\u69cb\u6210"},
{"Connect", "\u63a5\u7d9a(C)"},
@@ -158,12 +156,9 @@
{"Detect Deadlock.toolTip", "\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u3057\u305f\u30b9\u30ec\u30c3\u30c9\u3092\u691c\u51fa\u3059\u308b"},
{"Dimension is not supported:","\u5927\u304d\u3055\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093:"},
{"Discard chart", "\u56f3\u3092\u7834\u68c4\u3059\u308b"},
- {"DurationDaysHoursMinutes","{0,choice,1#{0,number,integer} \u65e5 |1.0<{0,number,integer} \u65e5 }" +
- "{1,choice,0<{1,number,integer} \u6642\u9593 |1#{1,number,integer} \u6642\u9593 |1<{1,number,integer} \u6642\u9593 }" +
- "{2,choice,0<{2,number,integer} \u5206 |1#{2,number,integer} \u5206 |1.0<{2,number,integer} \u5206}"},
+ {"DurationDaysHoursMinutes","{0,choice,1#{0,number,integer} \u65e5 |1.0<{0,number,integer} \u65e5 }{1,choice,0<{1,number,integer} \u6642\u9593 |1#{1,number,integer} \u6642\u9593 |1<{1,number,integer} \u6642\u9593 }{2,choice,0<{2,number,integer} \u5206 |1#{2,number,integer} \u5206 |1.0<{2,number,integer} \u5206}"},
- {"DurationHoursMinutes","{0,choice,1#{0,number,integer} \u6642\u9593 |1<{0,number,integer} \u6642\u9593 }" +
- "{1,choice,0<{1,number,integer} \u5206 |1#{1,number,integer} \u5206 |1.0<{1,number,integer} \u5206}"},
+ {"DurationHoursMinutes","{0,choice,1#{0,number,integer} \u6642\u9593 |1<{0,number,integer} \u6642\u9593 }{1,choice,0<{1,number,integer} \u5206 |1#{1,number,integer} \u5206 |1.0<{1,number,integer} \u5206}"},
{"DurationMinutes","{0,choice,1#{0,number,integer} \u5206 |1.0<{0,number,integer} \u5206}"},
{"DurationSeconds","{0} \u79d2"},
@@ -201,8 +196,6 @@
{"Help.AboutDialog.title", "JConsole: \u88fd\u54c1\u60c5\u5831"},
{"Help.AboutDialog.userGuideLink", "JConsole \u30e6\u30fc\u30b6\u30fc\u30ac\u30a4\u30c9:<br>{0}"},
{"Help.AboutDialog.userGuideLink.mnemonic", 'U'},
- // Note: The java.sun.com URL should be used for RC, or as soon as the page is available.
- //{"Help.AboutDialog.UsingJMX.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"},
{"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/MonitoringGuide/toc.html"},
{"HelpMenu.About.title", "JConsole \u306b\u3064\u3044\u3066(A)"},
{"HelpMenu.About.title.mnemonic", 'A'},
@@ -241,9 +234,22 @@
{"MBeanNotificationInfo","MBeanNotificationInfo"},
{"MBeanOperationInfo","MBeanOperationInfo"},
{"MBeans","MBean"},
+ {"MBeansTab.clearNotificationsButton", "\u6d88\u53bb(C)"},
+ {"MBeansTab.clearNotificationsButton.mnemonic", 'C'},
+ {"MBeansTab.clearNotificationsButton.toolTip", "\u901a\u77e5\u3092\u6d88\u53bb\u3059\u308b"},
+ {"MBeansTab.compositeNavigationMultiple", "\u8907\u5408\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 {0}/{1}"},
+ {"MBeansTab.compositeNavigationSingle", "\u8907\u5408\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3"},
{"MBeansTab.refreshAttributesButton", "\u66f4\u65b0(R)"},
{"MBeansTab.refreshAttributesButton.mnemonic", 'R'},
{"MBeansTab.refreshAttributesButton.toolTip", "\u5c5e\u6027\u3092\u66f4\u65b0\u3059\u308b"},
+ {"MBeansTab.subscribeNotificationsButton", "\u767b\u9332(S)"},
+ {"MBeansTab.subscribeNotificationsButton.mnemonic", 'S'},
+ {"MBeansTab.subscribeNotificationsButton.toolTip", "\u901a\u77e5\u306e\u5f85\u6a5f\u3092\u958b\u59cb"},
+ {"MBeansTab.tabularNavigationMultiple", "\u8868\u5f62\u5f0f\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 {0}/{1}"},
+ {"MBeansTab.tabularNavigationSingle", "\u8868\u5f62\u5f0f\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3"},
+ {"MBeansTab.unsubscribeNotificationsButton", "\u767b\u9332\u89e3\u9664(U)"},
+ {"MBeansTab.unsubscribeNotificationsButton.mnemonic", 'U'},
+ {"MBeansTab.unsubscribeNotificationsButton.toolTip", "\u901a\u77e5\u306e\u5f85\u6a5f\u3092\u505c\u6b62"},
{"Manage Hotspot MBeans in: ", "Hotspot MBean \u3092\u7ba1\u7406: "},
{"Max","\u6700\u5927"},
{"Maximum heap size","\u6700\u5927\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba"},
@@ -343,7 +349,6 @@
{"Source","\u30bd\u30fc\u30b9"},
{"Stack trace",
cr + "\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9: " + cr},
- {"Subscribe","\u767b\u9332"},
{"Success:","\u6210\u529f:"},
// Note: SummaryTab.headerDateTimeFormat can be one the following:
// 1. A combination of two styles for date and time, using the
@@ -357,7 +362,6 @@
{"SummaryTab.pendingFinalization.value", "{0} \u30aa\u30d6\u30b8\u30a7\u30af\u30c8"},
{"SummaryTab.tabName", "VM \u306e\u6982\u8981"},
{"SummaryTab.vmVersion","{0} \u30d0\u30fc\u30b8\u30e7\u30f3 {1}"},
- {"Tabular Navigation","\u8868\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3"},
{"TabularData are not supported", "TabularData \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093"},
{"Threads","\u30b9\u30ec\u30c3\u30c9"},
{"ThreadTab.infoLabelFormat", "<html>\u30e9\u30a4\u30d6: {0} \u30d4\u30fc\u30af: {1} \u7dcf\u6570: {2}</html>"},
@@ -381,7 +385,6 @@
{"Unavailable","\u4f7f\u7528\u4e0d\u53ef\u80fd"},
{"UNKNOWN","UNKNOWN"},
{"Unknown Host","\u672a\u77e5\u306e\u30db\u30b9\u30c8: {0}"},
- {"Unsubscribe","\u767b\u9332\u89e3\u9664"},
{"Unregister", "\u767b\u9332\u89e3\u9664"},
{"Uptime","\u30a2\u30c3\u30d7\u30bf\u30a4\u30e0"},
{"Uptime: ","\u30a2\u30c3\u30d7\u30bf\u30a4\u30e0: "},
@@ -409,15 +412,11 @@
{"You cannot drop a class here", "\u30af\u30e9\u30b9\u3092\u3053\u3053\u306b\u30c9\u30ed\u30c3\u30d7\u3067\u304d\u307e\u305b\u3093"},
{"collapse", "\u6298\u308a\u305f\u305f\u307f"},
{"connectionFailed1","\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f: \u518d\u8a66\u884c\u3057\u307e\u3059\u304b?"},
- {"connectionFailed2","{0} \u3078\u306e\u63a5\u7d9a\u304c\u6210\u529f\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002<br>" +
- "\u3082\u3046\u4e00\u5ea6\u8a66\u3057\u307e\u3059\u304b?"},
+ {"connectionFailed2","{0} \u3078\u306e\u63a5\u7d9a\u304c\u6210\u529f\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002<br>\u3082\u3046\u4e00\u5ea6\u8a66\u3057\u307e\u3059\u304b?"},
{"connectionLost1","\u63a5\u7d9a\u304c\u5931\u308f\u308c\u307e\u3057\u305f: \u518d\u63a5\u7d9a\u3057\u307e\u3059\u304b?"},
- {"connectionLost2","\u30ea\u30e2\u30fc\u30c8\u30d7\u30ed\u30bb\u30b9\u304c\u7d42\u4e86\u3057\u305f\u305f\u3081\u3001" +
- "{0} \u3078\u306e\u63a5\u7d9a\u304c\u5931\u308f\u308c\u307e\u3057\u305f\u3002<br>" +
- "\u518d\u63a5\u7d9a\u3057\u307e\u3059\u304b?"},
+ {"connectionLost2","\u30ea\u30e2\u30fc\u30c8\u30d7\u30ed\u30bb\u30b9\u304c\u7d42\u4e86\u3057\u305f\u305f\u3081\u3001{0} \u3078\u306e\u63a5\u7d9a\u304c\u5931\u308f\u308c\u307e\u3057\u305f\u3002<br>\u518d\u63a5\u7d9a\u3057\u307e\u3059\u304b?"},
{"connectingTo1","{0} \u306b\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059"},
- {"connectingTo2","\u73fe\u5728 {0} \u306b\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059\u3002<br>" +
- "\u3053\u308c\u306b\u306f\u5c11\u3057\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059\u3002"},
+ {"connectingTo2","\u73fe\u5728 {0} \u306b\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059\u3002<br>\u3053\u308c\u306b\u306f\u5c11\u3057\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059\u3002"},
{"deadlockAllTab","\u3059\u3079\u3066"},
{"deadlockTab","\u30c7\u30c3\u30c9\u30ed\u30c3\u30af"},
{"deadlockTabN","\u30c7\u30c3\u30c9\u30ed\u30c3\u30af {0}"},
--- a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2007 Sun Microsystems, Inc. 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
@@ -114,7 +114,6 @@
{"ClassTab.infoLabelFormat", "<html>\u5df2\u52a0\u8f7d: {0} \u672a\u52a0\u8f7d: {1} \u603b\u8ba1: {2}</html>"},
{"ClassTab.loadedClassesPlotter.accessibleName", "\u5df2\u88c5\u5165\u7c7b\u7684\u56fe\u8868\u3002"},
{"Classes","\u7c7b"},
- {"Clear","\u6e05\u9664"},
{"Close","\u5173\u95ed"},
{"Column.Name", "\u540d\u79f0"},
{"Column.PID", "PID"},
@@ -122,7 +121,6 @@
{"Committed virtual memory","\u5206\u914d\u7684\u865a\u62df\u5185\u5b58"},
{"Committed", "\u5206\u914d"},
{"Compiler","\u7f16\u8bd1\u5668"},
- {"Composite Navigation", "\u590d\u5408\u6d4f\u89c8"},
{"CompositeData","\u590d\u5408\u6570\u636e"},
{"Config","\u914d\u7f6e"},
{"Connect", "\u8fde\u63a5"},
@@ -158,12 +156,9 @@
{"Detect Deadlock.toolTip", "\u68c0\u6d4b\u5230\u6b7b\u9501\u7684\u7ebf\u7a0b"},
{"Dimension is not supported:","\u4e0d\u652f\u6301\u7ef4\uff1a"},
{"Discard chart", "\u653e\u5f03\u56fe\u8868"},
- {"DurationDaysHoursMinutes","{0,choice,1#{0,number,integer} day |1.0<{0,number,integer} days }" +
- "{1,choice,0<{1,number,integer} hours |1#{1,number,integer} hour |1<{1,number,integer} hours }" +
- "{2,choice,0<{2,number,integer} minutes|1#{2,number,integer} minute|1.0<{2,number,integer} minutes}"},
+ {"DurationDaysHoursMinutes","{0,choice,1#{0,number,integer} day |1.0<{0,number,integer} days }{1,choice,0<{1,number,integer} hours |1#{1,number,integer} hour |1<{1,number,integer} hours }{2,choice,0<{2,number,integer} minutes|1#{2,number,integer} minute|1.0<{2,number,integer} minutes}"},
- {"DurationHoursMinutes","{0,choice,1#{0,number,integer} hour |1<{0,number,integer} hours }" +
- "{1,choice,0<{1,number,integer} minutes|1#{1,number,integer} minute|1.0<{1,number,integer} minutes}"},
+ {"DurationHoursMinutes","{0,choice,1#{0,number,integer} hour |1<{0,number,integer} hours }{1,choice,0<{1,number,integer} minutes|1#{1,number,integer} minute|1.0<{1,number,integer} minutes}"},
{"DurationMinutes","{0,choice,1#{0,number,integer} minute|1.0<{0,number,integer} minutes}"},
{"DurationSeconds","{0} \u79d2"},
@@ -201,8 +196,6 @@
{"Help.AboutDialog.title", "JConsole\uff1a\u5173\u4e8e"},
{"Help.AboutDialog.userGuideLink", "JConsole \u7528\u6237\u6307\u5357:<br>{0}"},
{"Help.AboutDialog.userGuideLink.mnemonic", 'U'},
- // Note: The java.sun.com URL should be used for RC, or as soon as the page is available.
- //{"Help.AboutDialog.UsingJMX.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"},
{"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/MonitoringGuide/toc.html"},
{"HelpMenu.About.title", "\u5173\u4e8e JConsole"},
{"HelpMenu.About.title.mnemonic", 'A'},
@@ -241,9 +234,22 @@
{"MBeanNotificationInfo","MBeanNotificationInfo"},
{"MBeanOperationInfo","MBeanOperationInfo"},
{"MBeans","MBean"},
- {"MBeansTab.refreshAttributesButton", "\u5237\u65b0"},
+ {"MBeansTab.clearNotificationsButton", "\u6e05\u9664(C)"},
+ {"MBeansTab.clearNotificationsButton.mnemonic", 'C'},
+ {"MBeansTab.clearNotificationsButton.toolTip", "\u6e05\u9664\u901a\u77e5"},
+ {"MBeansTab.compositeNavigationMultiple", "\u590d\u5408\u5bfc\u822a {0}/{1}"},
+ {"MBeansTab.compositeNavigationSingle", "\u590d\u5408\u5bfc\u822a"},
+ {"MBeansTab.refreshAttributesButton", "\u5237\u65b0(R)"},
{"MBeansTab.refreshAttributesButton.mnemonic", 'R'},
{"MBeansTab.refreshAttributesButton.toolTip", "\u5237\u65b0\u5c5e\u6027"},
+ {"MBeansTab.subscribeNotificationsButton", "\u8ba2\u9605(S)"},
+ {"MBeansTab.subscribeNotificationsButton.mnemonic", 'S'},
+ {"MBeansTab.subscribeNotificationsButton.toolTip", "\u5f00\u59cb\u4fa6\u542c\u901a\u77e5"},
+ {"MBeansTab.tabularNavigationMultiple", "\u8868\u683c\u5bfc\u822a {0}/{1}"},
+ {"MBeansTab.tabularNavigationSingle", "\u8868\u683c\u5bfc\u822a"},
+ {"MBeansTab.unsubscribeNotificationsButton", "\u53d6\u6d88\u8ba2\u9605(U)"},
+ {"MBeansTab.unsubscribeNotificationsButton.mnemonic", 'U'},
+ {"MBeansTab.unsubscribeNotificationsButton.toolTip", "\u505c\u6b62\u4fa6\u542c\u901a\u77e5"},
{"Manage Hotspot MBeans in: ", "\u7ba1\u7406 Hotspot MBean \u4e8e\uff1a "},
{"Max","\u6700\u5927\u503c"},
{"Maximum heap size","\u5806\u5927\u5c0f\u7684\u6700\u5927\u503c"},
@@ -262,7 +268,7 @@
{"Minimize All.mnemonic", 'M'},
{"Minus Version", "\u8fd9\u662f {0} \u7248\u672c {1}"},
{"Monitor locked",
-" - \u5df2\u9501\u5b9a {0}" + cr},
+ " - \u5df2\u9501\u5b9a {0}" + cr},
{"Motif","\u4fee\u6539"},
{"Name Build and Mode","{0}\uff08\u5185\u90e8\u7248\u672c {1}\u3001{2}\uff09"},
{"Name and Build","{0}\uff08\u5185\u90e8\u7248\u672c {1}\uff09"},
@@ -343,7 +349,6 @@
{"Source","\u6e90"},
{"Stack trace",
cr + "\u5806\u6808\u8ffd\u8e2a\uff1a " + cr},
- {"Subscribe","\u8ba2\u9605"},
{"Success:","\u6210\u529f\uff1a"},
// Note: SummaryTab.headerDateTimeFormat can be one the following:
// 1. A combination of two styles for date and time, using the
@@ -357,7 +362,6 @@
{"SummaryTab.pendingFinalization.value", "{0} \u4e2a\u5bf9\u8c61"},
{"SummaryTab.tabName", "VM \u6458\u8981"},
{"SummaryTab.vmVersion","{0} \u7248\u672c {1}"},
- {"Tabular Navigation","\u8868\u683c\u5f0f\u6d4f\u89c8"},
{"TabularData are not supported", "\u4e0d\u652f\u6301\u8868\u683c\u5f0f\u6570\u636e"},
{"Threads","\u7ebf\u7a0b"},
{"ThreadTab.infoLabelFormat", "<html>\u6d3b\u52a8: {0} \u5cf0\u503c: {1} \u603b\u8ba1: {2}</html>"},
@@ -381,7 +385,6 @@
{"Unavailable","\u4e0d\u53ef\u7528"},
{"UNKNOWN","\u672a\u77e5"},
{"Unknown Host","\u672a\u77e5\u4e3b\u673a: {0}"},
- {"Unsubscribe","\u672a\u8ba2\u9605"},
{"Unregister", "\u672a\u6ce8\u518c"},
{"Uptime","\u6b63\u5e38\u8fd0\u884c\u65f6\u95f4"},
{"Uptime: ","\u6b63\u5e38\u8fd0\u884c\u65f6\u95f4\uff1a "},
@@ -409,15 +412,11 @@
{"You cannot drop a class here", "\u60a8\u4e0d\u80fd\u5c06\u7c7b\u653e\u5728\u6b64\u5904"},
{"collapse", "\u6298\u53e0"},
{"connectionFailed1","\u8fde\u63a5\u5931\u8d25\uff1a\u662f\u5426\u91cd\u8bd5\uff1f"},
- {"connectionFailed2","\u4e0e {0} \u7684\u8fde\u63a5\u672a\u6210\u529f\u3002<br>" +
-"\u662f\u5426\u8981\u91cd\u8bd5\uff1f"},
+ {"connectionFailed2","\u4e0e {0} \u7684\u8fde\u63a5\u672a\u6210\u529f\u3002<br>\u662f\u5426\u8981\u91cd\u8bd5\uff1f"},
{"connectionLost1","\u8fde\u63a5\u65ad\u5f00\uff1a\u662f\u5426\u91cd\u65b0\u8fde\u63a5\uff1f"},
- {"connectionLost2","\u4e0e {0} \u7684\u8fde\u63a5\u5df2\u65ad\u5f00" +
- "\u539f\u56e0\u662f\u5df2\u7ec8\u6b62\u8fdc\u7a0b\u8fdb\u7a0b\u3002<br>" +
- "\u662f\u5426\u8981\u91cd\u65b0\u8fde\u63a5\uff1f"},
+ {"connectionLost2","\u4e0e {0} \u7684\u8fde\u63a5\u5df2\u65ad\u5f00\u539f\u56e0\u662f\u5df2\u7ec8\u6b62\u8fdc\u7a0b\u8fdb\u7a0b\u3002<br>\u662f\u5426\u8981\u91cd\u65b0\u8fde\u63a5\uff1f"},
{"connectingTo1","\u6b63\u5728\u8fde\u63a5\u81f3 {0}"},
- {"connectingTo2","\u5f53\u524d\u6b63\u5728\u8fde\u63a5\u81f3 {0}\u3002<br>" +
-"\u8fd9\u5c06\u4f1a\u82b1\u8d39\u4e00\u4e9b\u65f6\u95f4\u3002"},
+ {"connectingTo2","\u5f53\u524d\u6b63\u5728\u8fde\u63a5\u81f3 {0}\u3002<br>\u8fd9\u5c06\u4f1a\u82b1\u8d39\u4e00\u4e9b\u65f6\u95f4\u3002"},
{"deadlockAllTab","\u5168\u90e8"},
{"deadlockTab","\u6b7b\u9501"},
{"deadlockTabN","\u6b7b\u9501 {0}"},
@@ -435,7 +434,7 @@
" -version \u8f93\u51fa\u7a0b\u5e8f\u7248\u672c" + cr +
cr +
" connection = pid || host:port || JMX URL (service:jmx:<protocol>://...)" + cr +
- " pid \u76ee\u6807\u8fdb\u7a0b\u7684\u8fdb\u7a0b ID"+ cr +
+ " pid \u76ee\u6807\u8fdb\u7a0b\u7684\u8fdb\u7a0b ID" + cr +
" host \u8fdc\u7a0b\u4e3b\u673a\u540d\u6216 IP \u5730\u5740" + cr +
" port \u7528\u4e8e\u8fdc\u7a0b\u8fde\u63a5\u7684\u7aef\u53e3\u53f7" + cr +
cr +
--- a/jdk/src/share/classes/sun/util/resources/CalendarData_hu.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/util/resources/CalendarData_hu.properties Wed Jul 05 17:10:40 2017 +0200
@@ -37,4 +37,4 @@
firstDayOfWeek=2
-minimalDaysInFirstWeek=1
+minimalDaysInFirstWeek=4
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties Wed Jul 05 17:10:40 2017 +0200
@@ -35,4 +35,4 @@
# This notice and attribution to Taligent may not be removed.
# Taligent is a registered trademark of Taligent, Inc.
-UAH=\u0433\u0440\u043b.
+UAH=\u0433\u0440\u043d.
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Wed Jul 05 17:10:40 2017 +0200
@@ -307,22 +307,35 @@
} finally {
awtUnlock();
}
-
- Runtime.getRuntime().addShutdownHook(new Thread() {
- public void run() {
- XSystemTrayPeer peer = XSystemTrayPeer.getPeerInstance();
- if (peer != null) {
- peer.dispose();
+ PrivilegedAction<Void> a = new PrivilegedAction<Void>() {
+ public Void run() {
+ ThreadGroup mainTG = Thread.currentThread().getThreadGroup();
+ ThreadGroup parentTG = mainTG.getParent();
+ while (parentTG != null) {
+ mainTG = parentTG;
+ parentTG = mainTG.getParent();
}
- if (xs != null) {
- ((XAWTXSettings)xs).dispose();
- }
- freeXKB();
- if (log.isLoggable(PlatformLogger.FINE)) {
- dumpPeers();
- }
+ Thread shutdownThread = new Thread(mainTG, "XToolkt-Shutdown-Thread") {
+ public void run() {
+ XSystemTrayPeer peer = XSystemTrayPeer.getPeerInstance();
+ if (peer != null) {
+ peer.dispose();
+ }
+ if (xs != null) {
+ ((XAWTXSettings)xs).dispose();
+ }
+ freeXKB();
+ if (log.isLoggable(PlatformLogger.FINE)) {
+ dumpPeers();
+ }
+ }
+ };
+ shutdownThread.setContextClassLoader(null);
+ Runtime.getRuntime().addShutdownHook(shutdownThread);
+ return null;
}
- });
+ };
+ AccessController.doPrivileged(a);
}
static String getCorrectXIDString(String val) {
--- a/jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java Wed Jul 05 17:10:40 2017 +0200
@@ -32,6 +32,8 @@
import java.awt.GraphicsConfiguration;
import java.awt.Rectangle;
import java.awt.Window;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.HashMap;
@@ -402,17 +404,30 @@
// is already in the original DisplayMode at that time, this
// hook will have no effect)
shutdownHookRegistered = true;
- Runnable r = new Runnable() {
- public void run() {
- Window old = getFullScreenWindow();
- if (old != null) {
- exitFullScreenExclusive(old);
- setDisplayMode(origDisplayMode);
+ PrivilegedAction<Void> a = new PrivilegedAction<Void>() {
+ public Void run() {
+ ThreadGroup mainTG = Thread.currentThread().getThreadGroup();
+ ThreadGroup parentTG = mainTG.getParent();
+ while (parentTG != null) {
+ mainTG = parentTG;
+ parentTG = mainTG.getParent();
}
+ Runnable r = new Runnable() {
+ public void run() {
+ Window old = getFullScreenWindow();
+ if (old != null) {
+ exitFullScreenExclusive(old);
+ setDisplayMode(origDisplayMode);
+ }
+ }
+ };
+ Thread t = new Thread(mainTG, r,"Display-Change-Shutdown-Thread-"+screen);
+ t.setContextClassLoader(null);
+ Runtime.getRuntime().addShutdownHook(t);
+ return null;
}
};
- Thread t = new Thread(r,"Display-Change-Shutdown-Thread-"+screen);
- Runtime.getRuntime().addShutdownHook(t);
+ AccessController.doPrivileged(a);
}
// switch to the new DisplayMode
--- a/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java Wed Jul 05 17:10:40 2017 +0200
@@ -156,27 +156,27 @@
Thread toolkitThread = new Thread(this, "AWT-Motif");
toolkitThread.setPriority(Thread.NORM_PRIORITY + 1);
toolkitThread.setDaemon(true);
- ThreadGroup mainTG = (ThreadGroup)AccessController.doPrivileged(
- new PrivilegedAction() {
- public Object run() {
- ThreadGroup currentTG =
- Thread.currentThread().getThreadGroup();
- ThreadGroup parentTG = currentTG.getParent();
- while (parentTG != null) {
- currentTG = parentTG;
- parentTG = currentTG.getParent();
- }
- return currentTG;
+
+ PrivilegedAction<Void> a = new PrivilegedAction<Void>() {
+ public Void run() {
+ ThreadGroup mainTG = Thread.currentThread().getThreadGroup();
+ ThreadGroup parentTG = mainTG.getParent();
+
+ while (parentTG != null) {
+ mainTG = parentTG;
+ parentTG = mainTG.getParent();
}
- });
-
- Runtime.getRuntime().addShutdownHook(
- new Thread(mainTG, new Runnable() {
- public void run() {
- shutdown();
- }
- }, "Shutdown-Thread")
- );
+ Thread shutdownThread = new Thread(mainTG, new Runnable() {
+ public void run() {
+ shutdown();
+ }
+ }, "Shutdown-Thread");
+ shutdownThread.setContextClassLoader(null);
+ Runtime.getRuntime().addShutdownHook(shutdownThread);
+ return null;
+ }
+ };
+ AccessController.doPrivileged(a);
/*
* Fix for 4701990.
--- a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java Wed Jul 05 17:10:40 2017 +0200
@@ -266,27 +266,25 @@
boolean startPump = init();
if (startPump) {
- ThreadGroup mainTG = (ThreadGroup)AccessController.doPrivileged(
- new PrivilegedAction() {
- public Object run() {
- ThreadGroup currentTG =
- Thread.currentThread().getThreadGroup();
- ThreadGroup parentTG = currentTG.getParent();
- while (parentTG != null) {
- currentTG = parentTG;
- parentTG = currentTG.getParent();
- }
- return currentTG;
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ ThreadGroup currentTG =
+ Thread.currentThread().getThreadGroup();
+ ThreadGroup parentTG = currentTG.getParent();
+ while (parentTG != null) {
+ currentTG = parentTG;
+ parentTG = currentTG.getParent();
}
+ Thread shutdown = new Thread(currentTG, new Runnable() {
+ public void run() {
+ shutdown();
+ }
+ });
+ shutdown.setContextClassLoader(null);
+ Runtime.getRuntime().addShutdownHook(shutdown);
+ return null;
+ }
});
-
- Runtime.getRuntime().addShutdownHook(
- new Thread(mainTG, new Runnable() {
- public void run() {
- shutdown();
- }
- })
- );
}
synchronized(this) {
--- a/jdk/src/windows/classes/sun/awt/windows/fontconfig.properties Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/fontconfig.properties Wed Jul 05 17:10:40 2017 +0200
@@ -41,6 +41,7 @@
allfonts.lucida=Lucida Sans Regular
allfonts.symbol=Symbol
allfonts.thai=Lucida Sans Regular
+allfonts.georgian=Sylfaen
serif.plain.alphabetic=Times New Roman
serif.plain.chinese-ms950=MingLiU
@@ -237,7 +238,7 @@
sequence.fallback=lucida,\
chinese-ms950,chinese-hkscs,chinese-ms936,chinese-gb18030,\
- japanese,korean,chinese-ms950-extb,chinese-ms936-extb
+ japanese,korean,chinese-ms950-extb,chinese-ms936-extb,georgian
# Exclusion Ranges
@@ -296,3 +297,4 @@
filename.Symbol=SYMBOL.TTF
filename.Wingdings=WINGDING.TTF
+filename.Sylfaen=sylfaen.ttf
--- a/jdk/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java Wed Jul 05 17:10:40 2017 +0200
@@ -101,17 +101,15 @@
currentTG = parentTG;
parentTG = currentTG.getParent();
}
+ Thread shutdown = new Thread(currentTG, new Runnable() {
+ public void run() {
+ done = true;
+ wakeUpUpdateThread();
+ }
+ });
+ shutdown.setContextClassLoader(null);
try {
- Runtime.getRuntime().addShutdownHook(
- new Thread(currentTG,
- new Runnable() {
- public void run() {
- done = true;
- wakeUpUpdateThread();
- }
- }
- )
- );
+ Runtime.getRuntime().addShutdownHook(shutdown);
} catch (Exception e) {
done = true;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/font/NumericShaper/EasternArabicTest.java Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6941948
+ * @summary Make sure that EASTERN_ARABIC works with the enum interface.
+ */
+
+import java.awt.font.NumericShaper;
+import java.util.EnumSet;
+import static java.awt.font.NumericShaper.*;
+
+public class EasternArabicTest {
+ static NumericShaper ns_old, ns_new;
+ static boolean err = false;
+
+ static String[][] testData = {
+ // Arabic "October 10"
+ {"\u0623\u0643\u062a\u0648\u0628\u0631 10",
+ "\u0623\u0643\u062a\u0648\u0628\u0631 \u06f1\u06f0"}, // EASTERN_ARABIC digits
+
+ // Tamil "Year 2009"
+ {"\u0b86\u0ba3\u0bcd\u0b9f\u0bc1 2009",
+ "\u0b86\u0ba3\u0bcd\u0b9f\u0bc1 \u0be8\u0be6\u0be6\u0bef"},
+ // "\u0be800\u0bef is returned by pre-JDK7 because Tamil zero was not
+ // included in Unicode 4.0.0.
+
+ // Ethiopic "Syllable<HA> 2009"
+ {"\u1200 2009",
+ "\u1200 \u136a00\u1371"},
+ // Ethiopic zero doesn't exist even in Unicode 5.1.0.
+ };
+
+ public static void main(String[] args) {
+ ns_old = getContextualShaper(TAMIL|ETHIOPIC|EASTERN_ARABIC|ARABIC|THAI|LAO,
+ EUROPEAN);
+ ns_new = getContextualShaper(EnumSet.of(Range.THAI,
+ Range.TAMIL,
+ Range.ETHIOPIC,
+ Range.EASTERN_ARABIC,
+ Range.ARABIC,
+ Range.LAO),
+ Range.EUROPEAN);
+
+
+ StringBuilder cData = new StringBuilder();
+ StringBuilder cExpected = new StringBuilder();
+ for (int i = 0; i < testData.length; i++) {
+ String data = testData[i][0];
+ String expected = testData[i][1];
+ test(data, expected);
+ cData.append(data).append(' ');
+ cExpected.append(expected).append(' ');
+ }
+ test(cData.toString(), cExpected.toString());
+
+ if (err) {
+ throw new RuntimeException("shape() returned unexpected value.");
+ }
+ }
+
+ private static void test(String data, String expected) {
+ char[] text = data.toCharArray();
+ ns_old.shape(text, 0, text.length);
+ String got = new String(text);
+
+ if (!expected.equals(got)) {
+ err = true;
+ System.err.println("Error with traditional range.");
+ System.err.println(" text = " + data);
+ System.err.println(" got = " + got);
+ System.err.println(" expected = " + expected);
+ } else {
+ System.err.println("OK with traditional range.");
+ System.err.println(" text = " + data);
+ System.err.println(" got = " + got);
+ System.err.println(" expected = " + expected);
+ }
+
+ text = data.toCharArray();
+ ns_new.shape(text, 0, text.length);
+ got = new String(text);
+
+ if (!expected.equals(got)) {
+ err = true;
+ System.err.println("Error with new Enum range.");
+ System.err.println(" text = " + data);
+ System.err.println(" got = " + got);
+ System.err.println(" expected = " + expected);
+ } else {
+ System.err.println("OK with new Enum range.");
+ System.err.println(" text = " + data);
+ System.err.println(" got = " + got);
+ System.err.println(" expected = " + expected);
+ }
+ }
+}
--- a/jdk/test/java/util/Locale/Bug4175998Test.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/Locale/Bug4175998Test.java Wed Jul 05 17:10:40 2017 +0200
@@ -32,16 +32,6 @@
*
* (C) Copyright IBM Corp. 1998 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4083270Test.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4083270Test.java Wed Jul 05 17:10:40 2017 +0200
@@ -31,16 +31,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4165815Test.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4165815Test.java Wed Jul 05 17:10:40 2017 +0200
@@ -34,16 +34,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Class.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Class.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Getter.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Getter.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Resource.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Resource.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Resource2.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Resource2.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Resource3.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Resource3.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_CA.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_CA.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_US.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4168625Resource3_en_US.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4177489Test.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4177489Test.java Wed Jul 05 17:10:40 2017 +0200
@@ -32,16 +32,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4177489_Resource.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4177489_Resource.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/ResourceBundle/Bug4177489_Resource_jf.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/ResourceBundle/Bug4177489_Resource_jf.java Wed Jul 05 17:10:40 2017 +0200
@@ -25,16 +25,6 @@
*
* (C) Copyright IBM Corp. 1999 - All Rights Reserved
*
- * Portions Copyright 2007 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- *
* The original version of this source code and documentation is
* copyrighted and owned by IBM. These materials are provided
* under terms of a License Agreement between IBM and Sun.
--- a/jdk/test/java/util/regex/RegExTest.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/java/util/regex/RegExTest.java Wed Jul 05 17:10:40 2017 +0200
@@ -32,7 +32,7 @@
* 4872664 4803179 4892980 4900747 4945394 4938995 4979006 4994840 4997476
* 5013885 5003322 4988891 5098443 5110268 6173522 4829857 5027748 6376940
* 6358731 6178785 6284152 6231989 6497148 6486934 6233084 6504326 6635133
- * 6350801 6676425 6878475 6919132
+ * 6350801 6676425 6878475 6919132 6931676
*/
import java.util.regex.*;
@@ -3515,7 +3515,7 @@
report("NamedGroupCapture");
}
- // This is for bug 6969132
+ // This is for bug 6919132
private static void nonBmpClassComplementTest() throws Exception {
Pattern p = Pattern.compile("\\P{Lu}");
Matcher m = p.matcher(new String(new int[] {0x1d400}, 0, 1));
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/awt/font/ClassLoaderLeakTest.java Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,220 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+/**
+ * @test
+ * @bug 6936389
+ *
+ * @summary Test verifes that LogManager shutdown hook does not cause
+ * an application classloader leaks.
+ *
+ * @run main/othervm ClassLoaderLeakTest FontManagerTest
+ */
+
+import java.awt.Font;
+import java.awt.Graphics;
+import java.io.File;
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.concurrent.CountDownLatch;
+
+public class ClassLoaderLeakTest {
+
+ private static CountDownLatch doneSignal;
+ private static CountDownLatch launchSignal;
+ private static Throwable launchFailure = null;
+
+ public static void main(String[] args) {
+ doneSignal = new CountDownLatch(1);
+ launchSignal = new CountDownLatch(1);
+
+ String testcase = "FontManagerTest";
+
+ if (args.length > 0) {
+ testcase = args[0];
+ }
+
+ /* prepare test class loader */
+ URL pwd = null;
+ try {
+
+ pwd = new File(System.getProperty("test.classes", ".")).toURL();
+ } catch (MalformedURLException e) {
+ throw new RuntimeException("Test failed.", e);
+ }
+ System.out.println("PWD: " + pwd);
+ URL[] urls = new URL[]{pwd};
+
+ MyClassLoader appClassLoader = new MyClassLoader(urls, "test0");
+ WeakReference<MyClassLoader> ref =
+ new WeakReference<MyClassLoader>(appClassLoader);
+
+ ThreadGroup appsThreadGroup = new ThreadGroup("MyAppsThreadGroup");
+
+ Runnable launcher = new TestLauncher(testcase);
+
+ Thread appThread = new Thread(appsThreadGroup, launcher, "AppThread-0");
+ appThread.setContextClassLoader(appClassLoader);
+
+ appThread.start();
+ appsThreadGroup = null;
+ appClassLoader = null;
+ launcher = null;
+ appThread = null;
+
+ /* wait for laucnh completion */
+ try {
+ launchSignal.await();
+ } catch (InterruptedException e) {
+ }
+
+ /* check if launch failed */
+ if (launchFailure != null) {
+ throw new RuntimeException("Test failed.", launchFailure);
+ }
+
+ /* wait for test app excution completion */
+ try {
+ doneSignal.await();
+ } catch (InterruptedException e) {
+ }
+
+ /* give a chance to GC */
+ waitAndGC(9);
+
+ if (ref.get() != null) {
+ throw new RuntimeException("Test failed: classloader is still alive");
+ }
+
+
+ System.out.println("Test passed.");
+ }
+
+ private static class TestLauncher implements Runnable {
+
+ private String className;
+
+ public TestLauncher(String name) {
+ className = name;
+ }
+
+ public void run() {
+ try {
+ ClassLoader cl =
+ Thread.currentThread().getContextClassLoader();
+ Class appMain = cl.loadClass(className);
+ Method launch =
+ appMain.getMethod("launch", doneSignal.getClass());
+
+ Constructor c = appMain.getConstructor();
+
+ Object o = c.newInstance();
+
+ launch.invoke(o, doneSignal);
+
+ } catch (Throwable e) {
+ launchFailure = e;
+ } finally {
+ launchSignal.countDown();
+ }
+ }
+ }
+
+ private static class MyClassLoader extends URLClassLoader {
+
+ private static boolean verbose =
+ Boolean.getBoolean("verboseClassLoading");
+ private String uniqClassName;
+
+ public MyClassLoader(URL[] urls, String uniq) {
+ super(urls);
+
+ uniqClassName = uniq;
+ }
+
+ public Class loadClass(String name) throws ClassNotFoundException {
+ if (verbose) {
+ System.out.printf("%s: load class %s\n", uniqClassName, name);
+ }
+ if (uniqClassName.equals(name)) {
+ return Object.class;
+ }
+ return super.loadClass(name);
+ }
+
+ public String toString() {
+ return "MyClassLoader(" + uniqClassName + ")";
+ }
+ }
+
+ private static void waitAndGC(int sec) {
+ int cnt = sec;
+ System.out.print("Wait ");
+ while (cnt-- > 0) {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ }
+ // do GC every 3 seconds
+ if (cnt % 3 == 2) {
+ System.gc();
+ System.out.print("+");
+ } else {
+ System.out.print(".");
+ }
+ //checkErrors();
+ }
+ System.out.println("");
+ }
+}
+
+abstract class AppTest {
+
+ public AppTest() {
+ }
+
+ protected abstract void doTest();
+
+ public void launch(CountDownLatch done) {
+ System.out.println("Testcase: " + this.getClass().getName());
+ try {
+ doTest();
+ } finally {
+ done.countDown();
+ }
+ }
+}
+
+class FontManagerTest extends AppTest {
+
+ public FontManagerTest() {
+ }
+
+ protected void doTest() {
+ Font f = new Font(Font.SANS_SERIF, Font.ITALIC, 24);
+ f.getNumGlyphs();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/Krb5NameEquals.java Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2007-2010 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @bug 4634392
+ * @summary JDK code doesn't respect contract for equals and hashCode
+ * @author Andrew Fan
+ */
+
+import org.ietf.jgss.*;
+
+public class Krb5NameEquals {
+
+ private static String NAME_STR1 = "service@host";
+ private static String NAME_STR2 = "service@host2";
+ private static final Oid MECH;
+
+ static {
+ Oid temp = null;
+ try {
+ temp = new Oid("1.2.840.113554.1.2.2"); // KRB5
+ } catch (Exception e) {
+ // should never happen
+ }
+ MECH = temp;
+ }
+
+ public static void main(String[] argv) throws Exception {
+ GSSManager mgr = GSSManager.getInstance();
+
+ boolean result = true;
+ // Create GSSName and check their equals(), hashCode() impl
+ GSSName name1 = mgr.createName(NAME_STR1,
+ GSSName.NT_HOSTBASED_SERVICE, MECH);
+ GSSName name2 = mgr.createName(NAME_STR2,
+ GSSName.NT_HOSTBASED_SERVICE, MECH);
+ GSSName name3 = mgr.createName(NAME_STR1,
+ GSSName.NT_HOSTBASED_SERVICE, MECH);
+
+ if (!name1.equals(name3) || !name1.equals(name3) ||
+ !name1.equals((Object) name1) ||
+ !name1.equals((Object) name3)) {
+ System.out.println("Error: should be the same name");
+ result = false;
+ } else if (name1.hashCode() != name3.hashCode()) {
+ System.out.println("Error: should have same hash");
+ result = false;
+ }
+
+ if (name1.equals(name2) || name1.equals((Object) name2)) {
+ System.out.println("Error: should be different names");
+ result = false;
+ }
+ if (result) {
+ System.out.println("Done");
+ } else System.exit(1);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/runNameEquals.sh Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,106 @@
+#
+# Copyright 2009-2010 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# @test
+# @bug 6317711 6944847
+# @summary Ensure the GSSName has the correct impl which respects
+# the contract for equals and hashCode across different configurations.
+
+# set a few environment variables so that the shell-script can run stand-alone
+# in the source directory
+
+if [ "${TESTSRC}" = "" ] ; then
+ TESTSRC="."
+fi
+
+if [ "${TESTCLASSES}" = "" ] ; then
+ TESTCLASSES="."
+fi
+
+if [ "${TESTJAVA}" = "" ] ; then
+ echo "TESTJAVA not set. Test cannot execute."
+ echo "FAILED!!!"
+ exit 1
+fi
+
+NATIVE=false
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+ SunOS )
+ PATHSEP=":"
+ FILESEP="/"
+ NATIVE=true
+ ;;
+ Linux )
+ PATHSEP=":"
+ FILESEP="/"
+ NATIVE=true
+ ;;
+ CYGWIN* )
+ PATHSEP=";"
+ FILESEP="/"
+ ;;
+ Windows* )
+ PATHSEP=";"
+ FILESEP="\\"
+ ;;
+ * )
+ echo "Unrecognized system!"
+ exit 1;
+ ;;
+esac
+
+TEST=Krb5NameEquals
+
+${TESTJAVA}${FILESEP}bin${FILESEP}javac \
+ -d ${TESTCLASSES}${FILESEP} \
+ ${TESTSRC}${FILESEP}${TEST}.java
+
+EXIT_STATUS=0
+
+if [ "${NATIVE}" = "true" ] ; then
+ echo "Testing native provider"
+ ${TESTJAVA}${FILESEP}bin${FILESEP}java \
+ -classpath ${TESTCLASSES} \
+ -Dsun.security.jgss.native=true \
+ ${TEST}
+ if [ $? != 0 ] ; then
+ echo "Native provider fails"
+ EXIT_STATUS=1
+ fi
+fi
+
+echo "Testing java provider"
+${TESTJAVA}${FILESEP}bin${FILESEP}java \
+ -classpath ${TESTCLASSES} \
+ -Djava.security.krb5.realm=R \
+ -Djava.security.krb5.kdc=127.0.0.1 \
+ ${TEST}
+if [ $? != 0 ] ; then
+ echo "Java provider fails"
+ EXIT_STATUS=1
+fi
+
+exit ${EXIT_STATUS}
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Wed Jul 05 17:10:40 2017 +0200
@@ -624,6 +624,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -652,9 +657,6 @@
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
sslSocket.setNeedClientAuth(true);
- if (sslSocket instanceof SSLSocketImpl) {
- ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
- }
PrintStream out =
new PrintStream(sslSocket.getOutputStream());
@@ -670,11 +672,14 @@
out.print("Testing\r\n");
out.flush();
} finally {
- // close the socket
- Thread.sleep(2000);
- System.out.println("Server closing socket");
- sslSocket.close();
- serverReady = false;
+ // close the socket
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
}
}
@@ -704,12 +709,17 @@
URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString());
- http = (HttpsURLConnection)url.openConnection();
+ try {
+ http = (HttpsURLConnection)url.openConnection();
- int respCode = http.getResponseCode();
- System.out.println("respCode = "+respCode);
-
- http.disconnect();
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+ } finally {
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
+ }
}
/*
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java Wed Jul 05 17:10:40 2017 +0200
@@ -61,6 +61,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -98,25 +103,34 @@
serverReady = true;
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
- InputStream sslIS = sslSocket.getInputStream();
- OutputStream sslOS = sslSocket.getOutputStream();
- BufferedReader br = new BufferedReader(new InputStreamReader(sslIS));
- PrintStream ps = new PrintStream(sslOS);
- // process HTTP POST request from client
- System.out.println("status line: "+br.readLine());
- String msg = null;
- while ((msg = br.readLine()) != null && msg.length() > 0);
+ try {
+ InputStream sslIS = sslSocket.getInputStream();
+ OutputStream sslOS = sslSocket.getOutputStream();
+ BufferedReader br =
+ new BufferedReader(new InputStreamReader(sslIS));
+ PrintStream ps = new PrintStream(sslOS);
+
+ // process HTTP POST request from client
+ System.out.println("status line: "+br.readLine());
+ String msg = null;
+ while ((msg = br.readLine()) != null && msg.length() > 0);
- msg = br.readLine();
- if (msg.equals(postMsg)) {
- ps.println("HTTP/1.1 200 OK\n\n");
- } else {
- ps.println("HTTP/1.1 500 Not OK\n\n");
+ msg = br.readLine();
+ if (msg.equals(postMsg)) {
+ ps.println("HTTP/1.1 200 OK\n\n");
+ } else {
+ ps.println("HTTP/1.1 500 Not OK\n\n");
+ }
+ ps.flush();
+
+ // close the socket
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+ } finally {
+ sslSocket.close();
+ sslServerSocket.close();
}
- ps.flush();
- Thread.sleep(2000);
- sslSocket.close();
- sslServerSocket.close();
}
/*
@@ -144,12 +158,17 @@
http.setRequestMethod("POST");
PrintStream ps = new PrintStream(http.getOutputStream());
- ps.println(postMsg);
- ps.flush();
- if (http.getResponseCode() != 200) {
- throw new RuntimeException("test Failed");
+ try {
+ ps.println(postMsg);
+ ps.flush();
+ if (http.getResponseCode() != 200) {
+ throw new RuntimeException("test Failed");
+ }
+ } finally {
+ ps.close();
+ http.disconnect();
+ closeReady = true;
}
- ps.close();
}
static class NameVerifier implements HostnameVerifier {
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Wed Jul 05 17:10:40 2017 +0200
@@ -624,6 +624,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -652,9 +657,6 @@
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
sslSocket.setNeedClientAuth(true);
- if (sslSocket instanceof SSLSocketImpl) {
- ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
- }
PrintStream out =
new PrintStream(sslSocket.getOutputStream());
@@ -670,11 +672,14 @@
out.print("Testing\r\n");
out.flush();
} finally {
- // close the socket
- Thread.sleep(2000);
- System.out.println("Server closing socket");
- sslSocket.close();
- serverReady = false;
+ // close the socket
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
}
}
@@ -716,7 +721,10 @@
// no subject alternative names matching IP address 127.0.0.1 found
// that's the expected exception, ignore it.
} finally {
- http.disconnect();
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
}
}
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Wed Jul 05 17:10:40 2017 +0200
@@ -625,6 +625,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -653,9 +658,6 @@
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
sslSocket.setNeedClientAuth(true);
- if (sslSocket instanceof SSLSocketImpl) {
- ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
- }
PrintStream out =
new PrintStream(sslSocket.getOutputStream());
@@ -672,7 +674,10 @@
out.flush();
} finally {
// close the socket
- Thread.sleep(2000);
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
System.out.println("Server closing socket");
sslSocket.close();
serverReady = false;
@@ -705,12 +710,17 @@
URL url = new URL("https://127.0.0.1:" + serverPort+"/");
System.out.println("url is "+url.toString());
- http = (HttpsURLConnection)url.openConnection();
+ try {
+ http = (HttpsURLConnection)url.openConnection();
- int respCode = http.getResponseCode();
- System.out.println("respCode = "+respCode);
-
- http.disconnect();
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+ } finally {
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
+ }
}
/*
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Wed Jul 05 17:10:40 2017 +0200
@@ -625,6 +625,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -653,9 +658,6 @@
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
sslSocket.setNeedClientAuth(true);
- if (sslSocket instanceof SSLSocketImpl) {
- ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
- }
PrintStream out =
new PrintStream(sslSocket.getOutputStream());
@@ -672,7 +674,10 @@
out.flush();
} finally {
// close the socket
- Thread.sleep(2000);
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
System.out.println("Server closing socket");
sslSocket.close();
serverReady = false;
@@ -705,12 +710,17 @@
URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString());
- http = (HttpsURLConnection)url.openConnection();
+ try {
+ http = (HttpsURLConnection)url.openConnection();
- int respCode = http.getResponseCode();
- System.out.println("respCode = "+respCode);
-
- http.disconnect();
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+ } finally {
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
+ }
}
/*
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Wed Jul 05 17:10:40 2017 +0200
@@ -624,6 +624,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -652,9 +657,6 @@
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
sslSocket.setNeedClientAuth(true);
- if (sslSocket instanceof SSLSocketImpl) {
- ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
- }
PrintStream out =
new PrintStream(sslSocket.getOutputStream());
@@ -671,7 +673,10 @@
out.flush();
} finally {
// close the socket
- Thread.sleep(2000);
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+
System.out.println("Server closing socket");
sslSocket.close();
serverReady = false;
@@ -704,12 +709,17 @@
URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString());
- http = (HttpsURLConnection)url.openConnection();
+ try {
+ http = (HttpsURLConnection)url.openConnection();
- int respCode = http.getResponseCode();
- System.out.println("respCode = "+respCode);
-
- http.disconnect();
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+ } finally {
+ if (http != null) {
+ http.disconnect();
+ }
+ closeReady = true;
+ }
}
/*
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Wed Jul 05 17:10:40 2017 +0200
@@ -61,6 +61,11 @@
volatile static boolean serverReady = false;
/*
+ * Is the connection ready to close?
+ */
+ volatile static boolean closeReady = false;
+
+ /*
* Turn on SSL debugging?
*/
static boolean debug = false;
@@ -98,24 +103,33 @@
serverReady = true;
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
- InputStream sslIS = sslSocket.getInputStream();
- OutputStream sslOS = sslSocket.getOutputStream();
- BufferedReader br = new BufferedReader(new InputStreamReader(sslIS));
- PrintStream ps = new PrintStream(sslOS);
- // process HTTP POST request from client
- System.out.println("status line: "+br.readLine());
+ try {
+ InputStream sslIS = sslSocket.getInputStream();
+ OutputStream sslOS = sslSocket.getOutputStream();
+ BufferedReader br =
+ new BufferedReader(new InputStreamReader(sslIS));
+ PrintStream ps = new PrintStream(sslOS);
+
+ // process HTTP POST request from client
+ System.out.println("status line: "+br.readLine());
- ps.println("HTTP/1.1 307 Redirect");
- ps.println("Location: https://localhost:"+serverPort+"/index.html\n\n");
- ps.flush();
- sslSocket = (SSLSocket) sslServerSocket.accept();
- sslOS = sslSocket.getOutputStream();
- ps = new PrintStream(sslOS);
- ps.println("HTTP/1.1 200 Redirect succeeded\n\n");
- ps.flush();
- Thread.sleep(2000);
- sslSocket.close();
- sslServerSocket.close();
+ ps.println("HTTP/1.1 307 Redirect");
+ ps.println("Location: https://localhost:" + serverPort +
+ "/index.html\n\n");
+ ps.flush();
+ sslSocket = (SSLSocket) sslServerSocket.accept();
+ sslOS = sslSocket.getOutputStream();
+ ps = new PrintStream(sslOS);
+ ps.println("HTTP/1.1 200 Redirect succeeded\n\n");
+ ps.flush();
+ } finally {
+ // close the socket
+ while (!closeReady) {
+ Thread.sleep(50);
+ }
+ sslSocket.close();
+ sslServerSocket.close();
+ }
}
/*
@@ -139,10 +153,14 @@
HttpsURLConnection.setDefaultHostnameVerifier(
new NameVerifier());
HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
-
- System.out.println("response header: "+http.getHeaderField(0));
- if (http.getResponseCode() != 200) {
- throw new RuntimeException("test Failed");
+ try {
+ System.out.println("response header: "+http.getHeaderField(0));
+ if (http.getResponseCode() != 200) {
+ throw new RuntimeException("test Failed");
+ }
+ } finally {
+ http.disconnect();
+ closeReady = true;
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/tools/jarsigner/TimestampCheck.java Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,294 @@
+/*
+ * Copyright 2003-2010 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+import com.sun.net.httpserver.*;
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.math.BigInteger;
+import java.net.InetSocketAddress;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.Signature;
+import java.security.cert.Certificate;
+import java.security.cert.X509Certificate;
+import java.util.Calendar;
+import sun.security.pkcs.ContentInfo;
+import sun.security.pkcs.PKCS7;
+import sun.security.pkcs.SignerInfo;
+import sun.security.util.DerOutputStream;
+import sun.security.util.DerValue;
+import sun.security.util.ObjectIdentifier;
+import sun.security.x509.AlgorithmId;
+import sun.security.x509.X500Name;
+
+public class TimestampCheck {
+ static final String TSKS = "tsks";
+ static final String JAR = "old.jar";
+
+ static class Handler implements HttpHandler {
+ public void handle(HttpExchange t) throws IOException {
+ int len = 0;
+ for (String h: t.getRequestHeaders().keySet()) {
+ if (h.equalsIgnoreCase("Content-length")) {
+ len = Integer.valueOf(t.getRequestHeaders().get(h).get(0));
+ }
+ }
+ byte[] input = new byte[len];
+ t.getRequestBody().read(input);
+
+ try {
+ int path = 0;
+ if (t.getRequestURI().getPath().length() > 1) {
+ path = Integer.parseInt(
+ t.getRequestURI().getPath().substring(1));
+ }
+ byte[] output = sign(input, path);
+ Headers out = t.getResponseHeaders();
+ out.set("Content-Type", "application/timestamp-reply");
+
+ t.sendResponseHeaders(200, output.length);
+ OutputStream os = t.getResponseBody();
+ os.write(output);
+ } catch (Exception e) {
+ e.printStackTrace();
+ t.sendResponseHeaders(500, 0);
+ }
+ t.close();
+ }
+
+ /**
+ * @param input The data to sign
+ * @param path different cases to simulate, impl on URL path
+ * 0: normal
+ * 1: Missing nonce
+ * 2: Different nonce
+ * 3: Bad digets octets in messageImprint
+ * 4: Different algorithmId in messageImprint
+ * 5: whole chain in cert set
+ * 6: extension is missing
+ * 7: extension is non-critical
+ * 8: extension does not have timestamping
+ * @returns the signed
+ */
+ byte[] sign(byte[] input, int path) throws Exception {
+ // Read TSRequest
+ DerValue value = new DerValue(input);
+ System.err.println("\nIncoming Request\n===================");
+ System.err.println("Version: " + value.data.getInteger());
+ DerValue messageImprint = value.data.getDerValue();
+ AlgorithmId aid = AlgorithmId.parse(
+ messageImprint.data.getDerValue());
+ System.err.println("AlgorithmId: " + aid);
+
+ BigInteger nonce = null;
+ while (value.data.available() > 0) {
+ DerValue v = value.data.getDerValue();
+ if (v.tag == DerValue.tag_Integer) {
+ nonce = v.getBigInteger();
+ System.err.println("nonce: " + nonce);
+ } else if (v.tag == DerValue.tag_Boolean) {
+ System.err.println("certReq: " + v.getBoolean());
+ }
+ }
+
+ // Write TSResponse
+ System.err.println("\nResponse\n===================");
+ KeyStore ks = KeyStore.getInstance("JKS");
+ ks.load(new FileInputStream(TSKS), "changeit".toCharArray());
+
+ String alias = "ts";
+ if (path == 6) alias = "tsbad1";
+ if (path == 7) alias = "tsbad2";
+ if (path == 8) alias = "tsbad3";
+
+ DerOutputStream statusInfo = new DerOutputStream();
+ statusInfo.putInteger(0);
+
+ DerOutputStream token = new DerOutputStream();
+ AlgorithmId[] algorithms = {aid};
+ Certificate[] chain = ks.getCertificateChain(alias);
+ X509Certificate[] signerCertificateChain = null;
+ X509Certificate signer = (X509Certificate)chain[0];
+ if (path == 5) { // Only case 5 uses full chain
+ signerCertificateChain = new X509Certificate[chain.length];
+ for (int i=0; i<chain.length; i++) {
+ signerCertificateChain[i] = (X509Certificate)chain[i];
+ }
+ } else if (path == 9) {
+ signerCertificateChain = new X509Certificate[0];
+ } else {
+ signerCertificateChain = new X509Certificate[1];
+ signerCertificateChain[0] = (X509Certificate)chain[0];
+ }
+
+ DerOutputStream tst = new DerOutputStream();
+
+ tst.putInteger(1);
+ tst.putOID(new ObjectIdentifier("1.2.3.4")); // policy
+
+ if (path != 3 && path != 4) {
+ tst.putDerValue(messageImprint);
+ } else {
+ byte[] data = messageImprint.toByteArray();
+ if (path == 4) {
+ data[6] = (byte)0x01;
+ } else {
+ data[data.length-1] = (byte)0x01;
+ data[data.length-2] = (byte)0x02;
+ data[data.length-3] = (byte)0x03;
+ }
+ tst.write(data);
+ }
+
+ tst.putInteger(1);
+
+ Calendar cal = Calendar.getInstance();
+ tst.putGeneralizedTime(cal.getTime());
+
+ if (path == 2) {
+ tst.putInteger(1234);
+ } else if (path == 1) {
+ // do nothing
+ } else {
+ tst.putInteger(nonce);
+ }
+
+ DerOutputStream tstInfo = new DerOutputStream();
+ tstInfo.write(DerValue.tag_Sequence, tst);
+
+ DerOutputStream tstInfo2 = new DerOutputStream();
+ tstInfo2.putOctetString(tstInfo.toByteArray());
+
+ Signature sig = Signature.getInstance("SHA1withDSA");
+ sig.initSign((PrivateKey)(ks.getKey(
+ alias, "changeit".toCharArray())));
+ sig.update(tstInfo.toByteArray());
+
+ ContentInfo contentInfo = new ContentInfo(new ObjectIdentifier(
+ "1.2.840.113549.1.9.16.1.4"),
+ new DerValue(tstInfo2.toByteArray()));
+
+ System.err.println("Signing...");
+ System.err.println(new X500Name(signer
+ .getIssuerX500Principal().getName()));
+ System.err.println(signer.getSerialNumber());
+
+ SignerInfo signerInfo = new SignerInfo(
+ new X500Name(signer.getIssuerX500Principal().getName()),
+ signer.getSerialNumber(),
+ aid, AlgorithmId.get("DSA"), sig.sign());
+
+ SignerInfo[] signerInfos = {signerInfo};
+ PKCS7 p7 =
+ new PKCS7(algorithms, contentInfo, signerCertificateChain,
+ signerInfos);
+ ByteArrayOutputStream p7out = new ByteArrayOutputStream();
+ p7.encodeSignedData(p7out);
+
+ DerOutputStream response = new DerOutputStream();
+ response.write(DerValue.tag_Sequence, statusInfo);
+ response.putDerValue(new DerValue(p7out.toByteArray()));
+
+ DerOutputStream out = new DerOutputStream();
+ out.write(DerValue.tag_Sequence, response);
+
+ return out.toByteArray();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+
+ Handler h = new Handler();
+ HttpServer server = HttpServer.create(new InetSocketAddress(0), 0);
+ int port = server.getAddress().getPort();
+ HttpContext ctx = server.createContext("/", h);
+ server.start();
+
+ String cmd = null;
+ // Use -J-Djava.security.egd=file:/dev/./urandom to speed up
+ // nonce generation in timestamping request. Not avaibale on
+ // Windows and defaults to thread seed generator, not too bad.
+ if (System.getProperty("java.home").endsWith("jre")) {
+ cmd = System.getProperty("java.home") + "/../bin/jarsigner" +
+ " -J-Djava.security.egd=file:/dev/./urandom" +
+ " -debug -keystore " + TSKS + " -storepass changeit" +
+ " -tsa http://localhost:" + port + "/%d" +
+ " -signedjar new.jar " + JAR + " old";
+ } else {
+ cmd = System.getProperty("java.home") + "/bin/jarsigner" +
+ " -J-Djava.security.egd=file:/dev/./urandom" +
+ " -debug -keystore " + TSKS + " -storepass changeit" +
+ " -tsa http://localhost:" + port + "/%d" +
+ " -signedjar new.jar " + JAR + " old";
+ }
+
+ try {
+ if (args.length == 0) { // Run this test
+ jarsigner(cmd, 0, true); // Success, normal call
+ jarsigner(cmd, 1, false); // These 4 should fail
+ jarsigner(cmd, 2, false);
+ jarsigner(cmd, 3, false);
+ jarsigner(cmd, 4, false);
+ jarsigner(cmd, 5, true); // Success, 6543440 solved.
+ jarsigner(cmd, 6, false); // tsbad1
+ jarsigner(cmd, 7, false); // tsbad2
+ jarsigner(cmd, 8, false); // tsbad3
+ jarsigner(cmd, 9, false); // no cert in timestamp
+ } else { // Run as a standalone server
+ System.err.println("Press Enter to quit server");
+ System.in.read();
+ }
+ } finally {
+ server.stop(0);
+ new File("x.jar").delete();
+ }
+ }
+
+ /**
+ * @param cmd the command line (with a hole to plug in)
+ * @param path the path in the URL, i.e, http://localhost/path
+ * @param expected if this command should succeed
+ */
+ static void jarsigner(String cmd, int path, boolean expected)
+ throws Exception {
+ System.err.println("Test " + path);
+ Process p = Runtime.getRuntime().exec(String.format(cmd, path));
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(p.getErrorStream()));
+ while (true) {
+ String s = reader.readLine();
+ if (s == null) break;
+ System.err.println(s);
+ }
+ int result = p.waitFor();
+ if (expected && result != 0 || !expected && result == 0) {
+ throw new Exception("Failed");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/tools/jarsigner/ts.sh Wed Jul 05 17:10:40 2017 +0200
@@ -0,0 +1,91 @@
+#
+# Copyright 2007-2010 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# @test
+# @bug 6543842 6543440 6939248
+# @summary checking response of timestamp
+#
+# @run shell/timeout=600 ts.sh
+
+# Run for a long time because jarsigner with timestamp needs to create a
+# 64-bit random number and it might be extremely slow on a machine with
+# not enough entropy pool
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+ Windows_* )
+ FS="\\"
+ ;;
+ * )
+ FS="/"
+ ;;
+esac
+
+if [ "${TESTSRC}" = "" ] ; then
+ TESTSRC="."
+fi
+if [ "${TESTJAVA}" = "" ] ; then
+ JAVAC_CMD=`which javac`
+ TESTJAVA=`dirname $JAVAC_CMD`/..
+fi
+
+JAR="${TESTJAVA}${FS}bin${FS}jar"
+JAVA="${TESTJAVA}${FS}bin${FS}java"
+JAVAC="${TESTJAVA}${FS}bin${FS}javac"
+KT="${TESTJAVA}${FS}bin${FS}keytool -keystore tsks -storepass changeit -keypass changeit"
+
+rm tsks
+echo Nothing > A
+rm old.jar
+$JAR cvf old.jar A
+
+# ca is CA
+# old is signer for code
+# ts is signer for timestamp
+# tsbad1 has no extendedKeyUsage
+# tsbad2's extendedKeyUsage is non-critical
+# tsbad3's extendedKeyUsage has no timestamping
+
+$KT -alias ca -genkeypair -ext bc -dname CN=CA
+$KT -alias old -genkeypair -dname CN=old
+$KT -alias ts -genkeypair -dname CN=ts
+$KT -alias tsbad1 -genkeypair -dname CN=tsbad1
+$KT -alias tsbad2 -genkeypair -dname CN=tsbad2
+$KT -alias tsbad3 -genkeypair -dname CN=tsbad3
+$KT -alias ts -certreq | \
+ $KT -alias ca -gencert -ext eku:critical=ts | \
+ $KT -alias ts -importcert
+$KT -alias tsbad1 -certreq | \
+ $KT -alias ca -gencert | \
+ $KT -alias tsbad1 -importcert
+$KT -alias tsbad2 -certreq | \
+ $KT -alias ca -gencert -ext eku=ts | \
+ $KT -alias tsbad2 -importcert
+$KT -alias tsbad3 -certreq | \
+ $KT -alias ca -gencert -ext eku:critical=cs | \
+ $KT -alias tsbad3 -importcert
+
+$JAVAC -d . ${TESTSRC}/TimestampCheck.java
+$JAVA TimestampCheck
+
--- a/jdk/test/sun/security/tools/keytool/selfissued.sh Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/security/tools/keytool/selfissued.sh Wed Jul 05 17:10:40 2017 +0200
@@ -1,5 +1,5 @@
#
-# Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2009-2010 Sun Microsystems, Inc. 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
@@ -22,8 +22,8 @@
#
# @test
-# @bug 6825352
-# @summary support self-issued certificate in keytool
+# @bug 6825352 6937978
+# @summary support self-issued certificate in keytool and let -gencert generate the chain
#
# @run shell selfissued.sh
#
@@ -50,20 +50,22 @@
rm $KS
$KT -alias ca -dname CN=CA -genkeypair
-$KT -alias me -dname CN=CA -genkeypair
+$KT -alias ca1 -dname CN=CA -genkeypair
+$KT -alias ca2 -dname CN=CA -genkeypair
$KT -alias e1 -dname CN=E1 -genkeypair
-$KT -alias e2 -dname CN=E2 -genkeypair
-
-# me signed by ca, self-issued
-$KT -alias me -certreq | $KT -alias ca -gencert | $KT -alias me -importcert
-# Import e1 signed by me, should add me and ca
-$KT -alias e1 -certreq | $KT -alias me -gencert | $KT -alias e1 -importcert
-$KT -alias e1 -list -v | grep '\[3\]' || { echo Bad E1; exit 1; }
+# ca signs ca1, ca1 signs ca2, all self-issued
+$KT -alias ca1 -certreq | $KT -alias ca -gencert -ext san=dns:ca1 \
+ | $KT -alias ca1 -importcert
+$KT -alias ca2 -certreq | $KT -alias ca1 -gencert -ext san=dns:ca2 \
+ | $KT -alias ca2 -importcert
-# Import (e2 signed by me,ca,me), should reorder to (e2,me,ca)
-( $KT -alias e2 -certreq | $KT -alias me -gencert; $KT -exportcert -alias ca; $KT -exportcert -alias me ) | $KT -alias e2 -importcert
-$KT -alias e2 -list -v | grep '\[3\]' || { echo Bad E2; exit 1; }
+# Import e1 signed by ca2, should add ca2 and ca1, at least 3 certs in the chain
+$KT -alias e1 -certreq | $KT -alias ca2 -gencert > e1.cert
+$KT -alias ca1 -delete
+$KT -alias ca2 -delete
+cat e1.cert | $KT -alias e1 -importcert
+$KT -alias e1 -list -v | grep '\[3\]' || { echo Bad E1; exit 1; }
echo Good
--- a/jdk/test/sun/text/resources/LocaleData Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/text/resources/LocaleData Wed Jul 05 17:10:40 2017 +0200
@@ -673,8 +673,8 @@
FormatData/es_VE/NumberElements/1=.
FormatData/es_VE/NumberElements/2=;
-# bug #4099810, 4290801, 6868106
-CurrencyNames/uk_UA/UAH=\u0433\u0440\u043b.
+# bug #4099810, 4290801, 6868106, 6916787
+CurrencyNames/uk_UA/UAH=\u0433\u0440\u043d.
FormatData/uk_UA/NumberPatterns/0=#,##0.###;-#,##0.###
# FormatData/uk_UA/NumberPatterns/1=#,##0.## '\u0433\u0440\u0432.';-#,##0.## '\u0433\u0440\u0432.' # Changed; see bug 4122840
FormatData/uk_UA/NumberPatterns/2=#,##0%
@@ -6098,3 +6098,6 @@
LocaleNames/nl/YT=Mayotte
LocaleNames/nl/ZA=Zuid-Afrika
LocaleNames/nl/ZM=Zambia
+
+# bug 6919624
+CalendarData/hu/minimalDaysInFirstWeek=4
--- a/jdk/test/sun/text/resources/LocaleDataTest.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/text/resources/LocaleDataTest.java Wed Jul 05 17:10:40 2017 +0200
@@ -32,7 +32,8 @@
* 6414459 6455680 6498742 6558863 6488119 6547501 6497154 6558856 6481177
* 6379214 6485516 6486607 4225362 4494727 6533691 6531591 6531593 6570259
* 6509039 6609737 6610748 6645271 6507067 6873931 6450945 6645268 6646611
- * 6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413
+ * 6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787
+ * 6919624
* @summary Verify locale data
*
*/
--- a/jdk/test/sun/util/resources/TimeZone/Bug6317929.java Thu Apr 22 16:54:28 2010 -0700
+++ b/jdk/test/sun/util/resources/TimeZone/Bug6317929.java Wed Jul 05 17:10:40 2017 +0200
@@ -180,11 +180,11 @@
"(\ub274 \uc0ac\uc6b0\uc2a4 \uc6e8\uc77c\uc988)\"");
tzLocale = locales2Test[7];
if (!Currie.getDisplayName(false, TimeZone.LONG, tzLocale).equals
- ("Eastern Standard Time (Nya Sydwales)"))
+ ("Eastern, normaltid (Nya Sydwales)"))
throw new RuntimeException("\n" + tzLocale + ": LONG, " +
"non-daylight saving name for " +
"Australia/Currie should be " +
- "\"Eastern Standard Time " +
+ "\"Eastern, normaltid " +
"(Nya Sydwales)\"");
tzLocale = locales2Test[8];
if (!Currie.getDisplayName(false, TimeZone.LONG, tzLocale).equals