Merge jdk7-b91
authormikejwre
Thu, 29 Apr 2010 13:53:09 -0700
changeset 235408a31cab971f
parent 2353 ab117ded3e3f
parent 2352 b5ae88dd3dbd
child 2355 f2dce7210cc0
Merge
make/tools/CharsetMapping/Big5.c2b
     1.1 --- a/make/sun/javazic/tzdata/VERSION	Thu Apr 22 16:54:34 2010 -0700
     1.2 +++ b/make/sun/javazic/tzdata/VERSION	Thu Apr 29 13:53:09 2010 -0700
     1.3 @@ -21,4 +21,4 @@
     1.4  # CA 95054 USA or visit www.sun.com if you need additional information or
     1.5  # have any questions.
     1.6  #
     1.7 -tzdata2010g
     1.8 +tzdata2010i
     2.1 --- a/make/sun/javazic/tzdata/africa	Thu Apr 22 16:54:34 2010 -0700
     2.2 +++ b/make/sun/javazic/tzdata/africa	Thu Apr 29 13:53:09 2010 -0700
     2.3 @@ -702,6 +702,21 @@
     2.4  # http://www.worldtimezone.com/dst_news/dst_news_morocco03.html
     2.5  # </a>
     2.6  
     2.7 +# From Steffen Thorsen (2010-04-13):
     2.8 +# Several news media in Morocco report that the Ministry of Modernization
     2.9 +# of Public Sectors has announced that Morocco will have DST from
    2.10 +# 2010-05-02 to 2010-08-08.
    2.11 +#
    2.12 +# Example:
    2.13 +# <a href="http://www.lavieeco.com/actualites/4099-le-maroc-passera-a-l-heure-d-ete-gmt1-le-2-mai.html">
    2.14 +# http://www.lavieeco.com/actualites/4099-le-maroc-passera-a-l-heure-d-ete-gmt1-le-2-mai.html
    2.15 +# </a>
    2.16 +# (French)
    2.17 +# Our page:
    2.18 +# <a href="http://www.timeanddate.com/news/time/morocco-starts-dst-2010.html">
    2.19 +# http://www.timeanddate.com/news/time/morocco-starts-dst-2010.html
    2.20 +# </a>
    2.21 +
    2.22  # RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
    2.23  
    2.24  Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	S
    2.25 @@ -723,6 +738,8 @@
    2.26  Rule	Morocco	2008	only	-	Sep	 1	 0:00	0	-
    2.27  Rule	Morocco	2009	only	-	Jun	 1	 0:00	1:00	S
    2.28  Rule	Morocco	2009	only	-	Aug	 21	 0:00	0	-
    2.29 +Rule	Morocco	2010	only	-	May	 2	 0:00	1:00	S
    2.30 +Rule	Morocco	2010	only	-	Aug	 8	 0:00	0	-
    2.31  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    2.32  Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
    2.33  			 0:00	Morocco	WE%sT	1984 Mar 16
    2.34 @@ -964,6 +981,24 @@
    2.35  # Therefore, the standard time will be kept unchanged the whole year long."
    2.36  # So foregoing DST seems to be an exception (albeit one that may be repeated in the  future).
    2.37  
    2.38 +# From Alexander Krivenyshev (2010-03-27):
    2.39 +# According to some news reports Tunis confirmed not to use DST in 2010
    2.40 +#
    2.41 +# (translation):
    2.42 +# "The Tunisian government has decided to abandon DST, which was scheduled on
    2.43 +# Sunday...
    2.44 +# Tunisian authorities had suspended the DST for the first time last year also
    2.45 +# coincided with the month of Ramadan..."
    2.46 +#
    2.47 +# (in Arabic)
    2.48 +# <a href="http://www.moheet.com/show_news.aspx?nid=358861&pg=1">
    2.49 +# http://www.moheet.com/show_news.aspx?nid=358861&pg=1
    2.50 +# <a href="http://www.almadenahnews.com/newss/news.php?c=118&id=38036">
    2.51 +# http://www.almadenahnews.com/newss/news.php?c=118&id=38036
    2.52 +# or
    2.53 +# <a href="http://www.worldtimezone.com/dst_news/dst_news_tunis02.html">
    2.54 +# http://www.worldtimezone.com/dst_news/dst_news_tunis02.html
    2.55 +
    2.56  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
    2.57  Rule	Tunisia	1939	only	-	Apr	15	23:00s	1:00	S
    2.58  Rule	Tunisia	1939	only	-	Nov	18	23:00s	0	-
    2.59 @@ -990,8 +1025,7 @@
    2.60  Rule	Tunisia	2005	only	-	Sep	30	 1:00s	0	-
    2.61  Rule	Tunisia	2006	2008	-	Mar	lastSun	 2:00s	1:00	S
    2.62  Rule	Tunisia	2006	2008	-	Oct	lastSun	 2:00s	0	-
    2.63 -Rule	Tunisia	2010	max	-	Mar	lastSun	 2:00s	1:00	S
    2.64 -Rule	Tunisia	2010	max	-	Oct	lastSun	 2:00s	0	-
    2.65 +
    2.66  # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
    2.67  # more precise 0:09:21.
    2.68  # Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
     3.1 --- a/make/sun/javazic/tzdata/asia	Thu Apr 22 16:54:34 2010 -0700
     3.2 +++ b/make/sun/javazic/tzdata/asia	Thu Apr 29 13:53:09 2010 -0700
     3.3 @@ -588,6 +588,28 @@
     3.4  # was still controlled by Japan.  This is hard to believe, but we don't
     3.5  # have any other information.
     3.6  
     3.7 +# From smallufo (2010-04-03):
     3.8 +# According to Taiwan's CWB,
     3.9 +# <a href="http://www.cwb.gov.tw/V6/astronomy/cdata/summert.htm">
    3.10 +# http://www.cwb.gov.tw/V6/astronomy/cdata/summert.htm
    3.11 +# </a>
    3.12 +# Taipei has DST in 1979 between July 1st and Sep 30.
    3.13 +
    3.14 +# From Arthur David Olson (2010-04-07):
    3.15 +# Here's Google's translation of the table at the bottom of the "summert.htm" page:
    3.16 +# Decade 	                                                    Name                      Start and end date
    3.17 +# Republic of China 34 years to 40 years (AD 1945-1951 years) Summer Time               May 1 to September 30 
    3.18 +# 41 years of the Republic of China (AD 1952)                 Daylight Saving Time      March 1 to October 31 
    3.19 +# Republic of China 42 years to 43 years (AD 1953-1954 years) Daylight Saving Time      April 1 to October 31 
    3.20 +# In the 44 years to 45 years (AD 1955-1956 years)            Daylight Saving Time      April 1 to September 30 
    3.21 +# Republic of China 46 years to 48 years (AD 1957-1959)       Summer Time               April 1 to September 30 
    3.22 +# Republic of China 49 years to 50 years (AD 1960-1961)       Summer Time               June 1 to September 30 
    3.23 +# Republic of China 51 years to 62 years (AD 1962-1973 years) Stop Summer Time 
    3.24 +# Republic of China 63 years to 64 years (1974-1975 AD)       Daylight Saving Time      April 1 to September 30 
    3.25 +# Republic of China 65 years to 67 years (1976-1978 AD)       Stop Daylight Saving Time 
    3.26 +# Republic of China 68 years (AD 1979)                        Daylight Saving Time      July 1 to September 30 
    3.27 +# Republic of China since 69 years (AD 1980)                  Stop Daylight Saving Time
    3.28 +
    3.29  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
    3.30  Rule	Taiwan	1945	1951	-	May	1	0:00	1:00	D
    3.31  Rule	Taiwan	1945	1951	-	Oct	1	0:00	0	S
    3.32 @@ -598,8 +620,9 @@
    3.33  Rule	Taiwan	1960	1961	-	Jun	1	0:00	1:00	D
    3.34  Rule	Taiwan	1974	1975	-	Apr	1	0:00	1:00	D
    3.35  Rule	Taiwan	1974	1975	-	Oct	1	0:00	0	S
    3.36 -Rule	Taiwan	1980	only	-	Jun	30	0:00	1:00	D
    3.37 -Rule	Taiwan	1980	only	-	Sep	30	0:00	0	S
    3.38 +Rule	Taiwan	1979	only	-	Jun	30	0:00	1:00	D
    3.39 +Rule	Taiwan	1979	only	-	Sep	30	0:00	0	S
    3.40 +
    3.41  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    3.42  Zone	Asia/Taipei	8:06:00 -	LMT	1896 # or Taibei or T'ai-pei
    3.43  			8:00	Taiwan	C%sT
    3.44 @@ -1934,13 +1957,35 @@
    3.45  # [T]he German Consulate General in Karachi reported me today that Pakistan
    3.46  # will go back to standard time on 1st of November.
    3.47  
    3.48 +# From Steffen Thorsen (2010-03-26):
    3.49 +# Steffen Thorsen wrote:
    3.50 +# > On Thursday (2010-03-25) it was announced that DST would start in
    3.51 +# > Pakistan on 2010-04-01.
    3.52 +# >
    3.53 +# > Then today, the president said that they might have to revert the
    3.54 +# > decision if it is not supported by the parliament. So at the time
    3.55 +# > being, it seems unclear if DST will be actually observed or not - but
    3.56 +# > April 1 could be a more likely date than April 15.
    3.57 +# Now, it seems that the decision to not observe DST in final:
    3.58 +#
    3.59 +# "Govt Withdraws Plan To Advance Clocks"
    3.60 +# <a href="http://www.apakistannews.com/govt-withdraws-plan-to-advance-clocks-172041">
    3.61 +# http://www.apakistannews.com/govt-withdraws-plan-to-advance-clocks-172041
    3.62 +# </a>
    3.63 +#
    3.64 +# "People laud PM's announcement to end DST"
    3.65 +# <a href="http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=99374&Itemid=2">
    3.66 +# http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=99374&Itemid=2
    3.67 +# </a>
    3.68 +
    3.69  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
    3.70  Rule Pakistan	2002	only	-	Apr	Sun>=2	0:01	1:00	S
    3.71  Rule Pakistan	2002	only	-	Oct	Sun>=2	0:01	0	-
    3.72  Rule Pakistan	2008	only	-	Jun	1	0:00	1:00	S
    3.73  Rule Pakistan	2008	only	-	Nov	1	0:00	0	-
    3.74 -Rule Pakistan	2009	max	-	Apr	15	0:00	1:00	S
    3.75 -Rule Pakistan	2009	max	-	Nov	1	0:00	0	-
    3.76 +Rule Pakistan	2009	only	-	Apr	15	0:00	1:00	S
    3.77 +Rule Pakistan	2009	only	-	Nov	1	0:00	0	-
    3.78 +
    3.79  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    3.80  Zone	Asia/Karachi	4:28:12 -	LMT	1907
    3.81  			5:30	-	IST	1942 Sep
     4.1 --- a/make/sun/javazic/tzdata/southamerica	Thu Apr 22 16:54:34 2010 -0700
     4.2 +++ b/make/sun/javazic/tzdata/southamerica	Thu Apr 29 13:53:09 2010 -0700
     4.3 @@ -459,6 +459,27 @@
     4.4  # of the country calls it "ART".
     4.5  # ...
     4.6  
     4.7 +# From Alexander Krivenyshev (2010-04-09):
     4.8 +# According to news reports from El Diario de la Republica Province San
     4.9 +# Luis, Argentina (standard time UTC-04) will keep Daylight Saving Time
    4.10 +# after April 11, 2010--will continue to have same time as rest of
    4.11 +# Argentina (UTC-3) (no DST).
    4.12 +#
    4.13 +# Confirmaron la pr&oacute;rroga del huso horario de verano (Spanish)
    4.14 +# <a href="http://www.eldiariodelarepublica.com/index.php?option=com_content&task=view&id=29383&Itemid=9">
    4.15 +# http://www.eldiariodelarepublica.com/index.php?option=com_content&task=view&id=29383&Itemid=9
    4.16 +# </a>
    4.17 +# or (some English translation):
    4.18 +# <a href="http://www.worldtimezone.com/dst_news/dst_news_argentina08.html">
    4.19 +# http://www.worldtimezone.com/dst_news/dst_news_argentina08.html
    4.20 +# </a>
    4.21 +
    4.22 +# From Mariano Absatz (2010-04-12):
    4.23 +# yes...I can confirm this...and given that San Luis keeps calling
    4.24 +# UTC-03:00 "summer time", we should't just let San Luis go back to "Arg"
    4.25 +# rules...San Luis is still using "Western ARgentina Time" and it got
    4.26 +# stuck on Summer daylight savings time even though the summer is over.
    4.27 +
    4.28  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    4.29  #
    4.30  # Buenos Aires (BA), Capital Federal (CF),
    4.31 @@ -592,8 +613,8 @@
    4.32  #
    4.33  # San Luis (SL)
    4.34  
    4.35 -Rule	SanLuis	2008	max	-	Mar	Sun>=8	0:00	0	-
    4.36 -Rule	SanLuis	2007	max	-	Oct	Sun>=8	0:00	1:00	S
    4.37 +Rule	SanLuis	2008	2009	-	Mar	Sun>=8	0:00	0	-
    4.38 +Rule	SanLuis	2007	2009	-	Oct	Sun>=8	0:00	1:00	S
    4.39  
    4.40  Zone America/Argentina/San_Luis -4:25:24 - LMT	1894 Oct 31
    4.41  			-4:16:48 -	CMT	1920 May
     5.1 --- a/make/sun/launcher/Makefile	Thu Apr 22 16:54:34 2010 -0700
     5.2 +++ b/make/sun/launcher/Makefile	Thu Apr 29 13:53:09 2010 -0700
     5.3 @@ -38,7 +38,7 @@
     5.4  # Resources
     5.5  #
     5.6  LOCALE_SET_DEFINITION = jre
     5.7 -NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES = $(PKGDIR)/resources/launcher.properties
     5.8 +RESOURCE_BUNDLES_COMPILED_PROPERTIES = $(PKGDIR)/resources/launcher.properties
     5.9  
    5.10  #
    5.11  # Rules
     6.1 --- a/make/tools/CharsetMapping/Big5.c2b	Thu Apr 22 16:54:34 2010 -0700
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,8 +0,0 @@
     6.4 -#Add the following 5 characters which are duplicated
     6.5 -#or have conflicts with other characters.
     6.6 -0xA1C4	0xFF3F	#REGWARN Fallback 0xA1C4 SPACING UNDERSCORE
     6.7 -0xA2AC	0x2571	#REGWARN Fallback 0xA2AC LT DIAG UP RIGHT TO LOW LEFT
     6.8 -0xA2AD	0x2572	#REGWARN Fallback 0xA2AD LT DIAG UP LEFT TO LOW RIGHT
     6.9 -0xA451	0x5341	#REGWARN Fallback 0xA451 HANGZHOU NUMERAL TEN
    6.10 -0xA4CA	0x5345	#REGWARN Fallback 0xA4CA HANGZHOU NUMERAL THIRTY
    6.11 -#
     7.1 --- a/make/tools/CharsetMapping/Big5.map	Thu Apr 22 16:54:34 2010 -0700
     7.2 +++ b/make/tools/CharsetMapping/Big5.map	Thu Apr 29 13:53:09 2010 -0700
     7.3 @@ -13830,8 +13830,21 @@
     7.4  0xF9D4	0x9F49	# <CJK>
     7.5  0xF9D5	0x9F98	# <CJK>
     7.6  #
     7.7 +# from Big5.b2c-irreversible
     7.8 +#
     7.9  0xA15A	0xFF3F #SPACING UNDERSCORE
    7.10  0xA1FE	0x2571 #LT DIAG UP RIGHT TO LOW LEFT
    7.11  0xA240	0x2572 #LT DIAG UP LEFT TO LOW RIGHTG
    7.12  0xA2CC	0x5341 #HANGHZOU NUMERAL TEN
    7.13  0xA2CE	0x5345 #HANGZHOU NUMERAL THIRTY
    7.14 +#
    7.15 +# Add the following 5 characters from Big5.c2b-irreversible
    7.16 +# It appears these 5 should be here to be the round-trip
    7.17 +# for these 5 characters. Above 5 are the b->c only nrt.
    7.18 +#
    7.19 +0xA1C4	0xFF3F
    7.20 +0xA2AC	0x2571
    7.21 +0xA2AD	0x2572
    7.22 +0xA451	0x5341
    7.23 +0xA4CA	0x5345
    7.24 +#
     8.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties	Thu Apr 22 16:54:34 2010 -0700
     8.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties	Thu Apr 29 13:53:09 2010 -0700
     8.3 @@ -1,5 +1,5 @@
     8.4  #
     8.5 -# Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
     8.6 +# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
     8.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     8.8  #
     8.9  # This code is free software; you can redistribute it and/or modify it
    8.10 @@ -41,7 +41,7 @@
    8.11  cachedrowsetimpl.longfail = getLong bei Wert ( {0} ) in Spalte {1} fehlgeschlagen
    8.12  cachedrowsetimpl.floatfail = getFloat bei Wert ( {0} ) in Spalte {1} fehlgeschlagen
    8.13  cachedrowsetimpl.doublefail = getDouble bei Wert ( {0} ) in Spalte {1} fehlgeschlagen
    8.14 -cachedrowsetimpl.dtypemismt = Keine Datentyp\u00fcbereinstimmung
    8.15 +cachedrowsetimpl.dtypemismt = Keine Datentyp\u00fcbereinstimmung 
    8.16  cachedrowsetimpl.datefail = getDate bei Wert ( {0} ) in Spalte {1} fehlgeschlagen; keine Konvertierung m\u00f6glich
    8.17  cachedrowsetimpl.timefail = getTime bei Wert ( {0} ) in Spalte {1} fehlgeschlagen; keine Konvertierung m\u00f6glich
    8.18  cachedrowsetimpl.posupdate = Positionierte Aktualisierungen werden nicht unterst\u00fctzt
    8.19 @@ -71,11 +71,13 @@
    8.20  cachedrowsetimpl.unsetmatch2 = Spalten-ID als Argument f\u00fcr unsetMatchColumn verwenden
    8.21  cachedrowsetimpl.numrows = Zeilenanzahl ist kleiner als Null oder kleiner als Abrufgr\u00f6\u00dfe
    8.22  cachedrowsetimpl.startpos = Startposition darf keinen Negativwert aufweisen
    8.23 -cachedrowsetimpl.nextpage = Daten m\u00fcssen vor dem Abrufen ausgef\u00fcllt werden
    8.24 +cachedrowsetimpl.nextpage = Daten m\u00fcssen vor dem Abrufen ausgef\u00fcllt werden 
    8.25  cachedrowsetimpl.pagesize = Seitengr\u00f6\u00dfe darf nicht kleiner als Null sein
    8.26  cachedrowsetimpl.pagesize1 = Seitengr\u00f6\u00dfe darf nicht gr\u00f6\u00dfer als maxRows sein
    8.27  cachedrowsetimpl.fwdonly = ResultSet kann nur vorw\u00e4rts gerichtet sein
    8.28  cachedrowsetimpl.type = Typ : {0}
    8.29 +cachedrowsetimpl.opnotysupp = Vorgang noch nicht unterst\u00fctzt
    8.30 +cachedrowsetimpl.featnotsupp = Funktion nicht unterst\u00fctzt
    8.31  
    8.32  # WebRowSetImpl exceptions
    8.33  webrowsetimpl.nullhash = Instanz WebRowSetImpl konnte nicht instanziiert werden. Hash-Tabelle mit Nullwert f\u00fcr Konstruktor angegeben
    8.34 @@ -83,7 +85,7 @@
    8.35  webrowsetimpl.invalidrd = Ung\u00fcltiger Leser
    8.36  
    8.37  #FilteredRowSetImpl exceptions
    8.38 -filteredrowsetimpl.relative = relative: Ung\u00fcltiger Cursorvorgang
    8.39 +filteredrowsetimpl.relative = relative: Ung\u00fcltiger Cursorvorgang 
    8.40  filteredrowsetimpl.absolute = absolute: Ung\u00fcltiger Cursorvorgang
    8.41  filteredrowsetimpl.notallowed = Kein zul\u00e4ssiger Wert im Filter
    8.42  
    8.43 @@ -95,6 +97,7 @@
    8.44  joinrowsetimpl.notsupported = Verkn\u00fcpfungstyp wird nicht unterst\u00fctzt
    8.45  joinrowsetimpl.initerror = Initialisierungsfehler bei JoinRowSet
    8.46  joinrowsetimpl.genericerr = Generischer Anfangsfehler bei joinrowset
    8.47 +joinrowsetimpl.emptyrowset = Leeres Rowset kann nicht zu JoinRowSet hinzugef\u00fcgt werden
    8.48  
    8.49  #JdbcRowSetImpl exceptions
    8.50  jdbcrowsetimpl.invalstate = Ung\u00fcltiger Status
    8.51 @@ -108,22 +111,28 @@
    8.52  jdbcrowsetimpl.usecolname = Spaltenname als Argument f\u00fcr unsetMatchColumn verwenden
    8.53  jdbcrowsetimpl.usecolid = Spalten-ID als Argument f\u00fcr unsetMatchColumn verwenden
    8.54  jdbcrowsetimpl.resnotupd = ResultSet kann nicht aktualisiert werden
    8.55 +jdbcrowsetimpl.opnotysupp = Vorgang noch nicht unterst\u00fctzt
    8.56 +jdbcrowsetimpl.featnotsupp = Funktion nicht unterst\u00fctzt
    8.57  
    8.58  #CachedRowSetReader exceptions
    8.59  crsreader.connect = (JNDI) Verbindung nicht m\u00f6glich
    8.60  crsreader.paramtype = Parametertyp konnte nicht abgeleitet werden
    8.61 +crsreader.connecterr = Interner Fehler im RowSetReader: keine Verbindung oder kein Befehl
    8.62 +crsreader.datedetected = Datum gefunden
    8.63 +crsreader.caldetected = Kalender gefunden
    8.64  
    8.65  #CachedRowSetWriter exceptions
    8.66  crswriter.connect = Verbindung konnte nicht hergestellt werden
    8.67  crswriter.tname = writeData kann Tabellennamen nicht feststellen
    8.68  crswriter.params1 = Wert f\u00fcr params1: {0} 
    8.69  crswriter.params2 = Wert f\u00fcr params2: {0} 
    8.70 +crswriter.conflictsno =  Konflikte w\u00e4hrend der Synchronisation 
    8.71  
    8.72  #InsertRow exceptions
    8.73  insertrow.novalue = Es wurde kein Wert eingef\u00fcgt
    8.74  
    8.75  #SyncResolverImpl exceptions
    8.76 -syncrsimpl.indexval = Indexwert liegt au\u00dferhalb des Bereichs
    8.77 +syncrsimpl.indexval = Indexwert liegt au\u00dferhalb des Bereichs  
    8.78  syncrsimpl.noconflict = Kein Konflikt bei dieser Spalte
    8.79  syncrsimpl.syncnotpos = Keine Synchronisation m\u00f6glich
    8.80  syncrsimpl.valtores = Aufzul\u00f6sender Wert befindet sich entweder in der Datenbank oder in cachedrowset
    8.81 @@ -132,31 +141,27 @@
    8.82  wrsxmlreader.invalidcp = Ende von RowSet wurde erreicht. Ung\u00fcltige Cursorposition
    8.83  wrsxmlreader.readxml = readXML: {0}
    8.84  wrsxmlreader.parseerr = ** Parsing-Fehler
    8.85 -wrsxmlreader.line =  , Zeile 
    8.86 -wrsxmlreader.uri =  , uri 
    8.87  
    8.88  #WebRowSetXmlWriter exceptions
    8.89  wrsxmlwriter.ioex = IOException: {0}
    8.90 -wrsxmlwriter.sqlex = SQLException: {0} 
    8.91 +wrsxmlwriter.sqlex = SQLException: {0}
    8.92  wrsxmlwriter.failedwrite = Schreiben des Werts fehlgeschlagen
    8.93  wsrxmlwriter.notproper = Kein zul\u00e4ssiger Typ
    8.94  
    8.95 -#XmlReaderContentHandle exceptions
    8.96 -xmlrch.errmap = Fehler beim Definieren der Zuordnung: {0} 
    8.97 -xmlrch.errmetadata = Fehler beim Definieren der Metadaten: {0} 
    8.98 +#XmlReaderContentHandler exceptions
    8.99 +xmlrch.errmap = Fehler beim Definieren der Zuordnung: {0}
   8.100 +xmlrch.errmetadata = Fehler beim Definieren der Metadaten: {0}
   8.101  xmlrch.errinsert = Fehler beim Einf\u00fcgen der Werte: {0}
   8.102  xmlrch.errconstr = Fehler beim Erstellen der Zeile: {0}
   8.103  xmlrch.errdel = Fehler beim L\u00f6schen der Zeile: {0}
   8.104  xmlrch.errinsert = Fehler beim Erstellen der Einf\u00fcgezeile: {0}
   8.105  xmlrch.errinsdel = Fehler beim Erstellen der Einf\u00fcge- oder L\u00f6schzeile: {0}
   8.106  xmlrch.errupdate = Fehler beim Erstellen der Aktualisierungszeile: {0}
   8.107 -xmlrch errupdrow = Fehler beim Aktualisieren der Zeile: {0}
   8.108 +xmlrch.errupdrow = Fehler beim Aktualisieren der Zeile : {0}
   8.109  xmlrch.chars = Zeichen:
   8.110  xmlrch.badvalue = Fehlerhafter Wert; Eigenschaft darf nicht Null sein.
   8.111  xmlrch.badvalue1 = Fehlerhafter Wert; Metadaten d\u00fcrfen nicht Null sein.
   8.112 -xmlrch.warning = ** Warnung
   8.113 -xmlrch.line =  , Zeile 
   8.114 -xmlrch.uri =  , uri 
   8.115 +xmlrch.warning =  ** Warnung
   8.116  
   8.117  #RIOptimisticProvider Exceptions
   8.118  riop.locking = Sperren der Klassifizierung wird nicht unterst\u00fctzt
     9.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_es.properties	Thu Apr 22 16:54:34 2010 -0700
     9.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_es.properties	Thu Apr 29 13:53:09 2010 -0700
     9.3 @@ -1,5 +1,5 @@
     9.4  #
     9.5 -# Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
     9.6 +# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
     9.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     9.8  #
     9.9  # This code is free software; you can redistribute it and/or modify it
    9.10 @@ -32,7 +32,7 @@
    9.11  cachedrowsetimpl.invalidcp = Posici\u00f3n de cursor no v\u00e1lida
    9.12  cachedrowsetimpl.illegalop = Operaci\u00f3n no permitida en fila no insertada
    9.13  cachedrowsetimpl.clonefail = Fallo en la clonaci\u00f3n: {0}
    9.14 -cachedrowsetimpl.invalidcol = \u00cdndice de columna no v\u00e1lido
    9.15 +cachedrowsetimpl.invalidcol = \u00cdndice de columnas no v\u00e1lido
    9.16  cachedrowsetimpl.invalcolnm = Nombre de columna no v\u00e1lido
    9.17  cachedrowsetimpl.boolfail = Fallo de getBoolen en valor ( {0} ) de columna {1}
    9.18  cachedrowsetimpl.bytefail = Fallo de getByte en valor ( {0} ) de columna {1}
    9.19 @@ -41,7 +41,7 @@
    9.20  cachedrowsetimpl.longfail = Fallo de getLong en valor ( {0} ) de columna {1}
    9.21  cachedrowsetimpl.floatfail = Fallo de getFloat en valor ( {0} ) de columna {1}
    9.22  cachedrowsetimpl.doublefail = Fallo de getDouble en valor ( {0} ) de columna {1}
    9.23 -cachedrowsetimpl.dtypemismt = Discordancia entre tipos de datos
    9.24 +cachedrowsetimpl.dtypemismt = Discordancia entre tipos de datos 
    9.25  cachedrowsetimpl.datefail = Fallo de getDate en valor ( {0} ) de columna {1} no es posible convertir
    9.26  cachedrowsetimpl.timefail = Fallo de getTime en valor ( {0} ) de columna {1} no es posible convertir
    9.27  cachedrowsetimpl.posupdate = Actualizaciones posicionadas incompatibles
    9.28 @@ -71,11 +71,13 @@
    9.29  cachedrowsetimpl.unsetmatch2 = Usar ID de columna como argumento en unsetMatchColumn
    9.30  cachedrowsetimpl.numrows = El n\u00famero de filas es menor que cero o menor que el tama\u00f1o obtenido
    9.31  cachedrowsetimpl.startpos = La posici\u00f3n de inicio no puede ser negativa
    9.32 -cachedrowsetimpl.nextpage = Rellenar datos antes de realizar llamada
    9.33 +cachedrowsetimpl.nextpage = Rellenar datos antes de realizar llamada 
    9.34  cachedrowsetimpl.pagesize = El tama\u00f1o de p\u00e1gina no puede ser menor que cero
    9.35  cachedrowsetimpl.pagesize1 = El tama\u00f1o de p\u00e1gina no puede ser mayor que maxRows
    9.36  cachedrowsetimpl.fwdonly = ResultSet s\u00f3lo se reenv\u00eda
    9.37  cachedrowsetimpl.type = El tipo es: {0}
    9.38 +cachedrowsetimpl.opnotysupp = Operaci\u00f3n a\u00fan no admitida
    9.39 +cachedrowsetimpl.featnotsupp = Funci\u00f3n no admitida
    9.40  
    9.41  # WebRowSetImpl exceptions
    9.42  webrowsetimpl.nullhash = La instancia WebRowSetImpl no se puede crear. Hashtable nula proporcionada al constructor
    9.43 @@ -83,7 +85,7 @@
    9.44  webrowsetimpl.invalidrd = Lector no v\u00e1lido
    9.45  
    9.46  #FilteredRowSetImpl exceptions
    9.47 -filteredrowsetimpl.relative = relative: Operaci\u00f3n de cursor no v\u00e1lida
    9.48 +filteredrowsetimpl.relative = relative: Operaci\u00f3n de cursor no v\u00e1lida 
    9.49  filteredrowsetimpl.absolute = absolute: Operaci\u00f3n de cursor no v\u00e1lida
    9.50  filteredrowsetimpl.notallowed = El filtro no admite este valor
    9.51  
    9.52 @@ -95,6 +97,7 @@
    9.53  joinrowsetimpl.notsupported = Este tipo de uni\u00f3n no es compatible
    9.54  joinrowsetimpl.initerror = Error de inicio de JoinRowSet
    9.55  joinrowsetimpl.genericerr = Error de Genric joinrowset intial
    9.56 +joinrowsetimpl.emptyrowset = No se puede a\u00f1adir un rowset vac\u00edo a este JoinRowSet
    9.57  
    9.58  #JdbcRowSetImpl exceptions
    9.59  jdbcrowsetimpl.invalstate = Estado no v\u00e1lido
    9.60 @@ -108,22 +111,28 @@
    9.61  jdbcrowsetimpl.usecolname = Usar nombre de columna como argumento en unsetMatchColumn
    9.62  jdbcrowsetimpl.usecolid = Usar ID de columna como argumento en unsetMatchColumn
    9.63  jdbcrowsetimpl.resnotupd = ResultSet no se puede actualizar
    9.64 +jdbcrowsetimpl.opnotysupp = Operaci\u00f3n a\u00fan no admitida
    9.65 +jdbcrowsetimpl.featnotsupp = Funci\u00f3n no admitida
    9.66  
    9.67  #CachedRowSetReader exceptions
    9.68  crsreader.connect = (JNDI) No se puede conectar
    9.69  crsreader.paramtype = No se puede deducir tipo de par\u00e1metro
    9.70 +crsreader.connecterr = Error interno en RowSetReader: no hay conexi\u00f3n ni comando
    9.71 +crsreader.datedetected = Fecha detectada
    9.72 +crsreader.caldetected = Calendario detectado
    9.73  
    9.74  #CachedRowSetWriter exceptions
    9.75  crswriter.connect = No se puede obtener una conexi\u00f3n
    9.76  crswriter.tname = writeData no puede determinar el nombre de tabla
    9.77  crswriter.params1 = Valor de params1: {0} 
    9.78  crswriter.params2 = Valor de params2: {0} 
    9.79 +crswriter.conflictsno =  conflictos en la sincronizaci\u00f3n 
    9.80  
    9.81  #InsertRow exceptions
    9.82  insertrow.novalue = No se ha insertado ning\u00fan valor
    9.83  
    9.84  #SyncResolverImpl exceptions
    9.85 -syncrsimpl.indexval = El valor de \u00edndice est\u00e1 fuera del intervalo
    9.86 +syncrsimpl.indexval = El valor de \u00edndice est\u00e1 fuera del intervalo  
    9.87  syncrsimpl.noconflict = Esta columna no est\u00e1 en conflicto
    9.88  syncrsimpl.syncnotpos = No se puede sincronizar
    9.89  syncrsimpl.valtores = El valor que se debe definir puede estar en la base de datos o en cachedrowset
    9.90 @@ -132,31 +141,27 @@
    9.91  wrsxmlreader.invalidcp = Se ha llegado al final de RowSet. Posici\u00f3n de cursor no v\u00e1lida
    9.92  wrsxmlreader.readxml = readXML: {0}
    9.93  wrsxmlreader.parseerr = ** Error de an\u00e1lisis
    9.94 -wrsxmlreader.line =  , l\u00ednea 
    9.95 -wrsxmlreader.uri =  , uri 
    9.96  
    9.97  #WebRowSetXmlWriter exceptions
    9.98  wrsxmlwriter.ioex = IOException: {0}
    9.99 -wrsxmlwriter.sqlex = SQLException: {0} 
   9.100 +wrsxmlwriter.sqlex = SQLException: {0}
   9.101  wrsxmlwriter.failedwrite = No se pudo escribir valor
   9.102  wsrxmlwriter.notproper = Tipo incorrecto
   9.103  
   9.104 -#XmlReaderContentHandle exceptions
   9.105 -xmlrch.errmap = Error al configurar la asignaci\u00f3n: {0} 
   9.106 -xmlrch.errmetadata = Error al configurar metadatos: {0} 
   9.107 -xmlrch.errinsert = Error al insertar valores: {0}
   9.108 +#XmlReaderContentHandler exceptions
   9.109 +xmlrch.errmap = Error al configurar la asignaci\u00f3n: {0}
   9.110 +xmlrch.errmetadata = Error al configurar metadatos: {0}
   9.111 +xmlrch.errinsert = Error al insertar los valores: {0}
   9.112  xmlrch.errconstr = Error al construir fila: {0}
   9.113  xmlrch.errdel = Error al borrar fila: {0}
   9.114  xmlrch.errinsert = Error al construir insertar fila: {0}
   9.115  xmlrch.errinsdel = Error al construir insertar o suprimir fila: {0}
   9.116  xmlrch.errupdate = Error al construir actualizar fila: {0}
   9.117 -xmlrch errupdrow = Error al actualizar fila: {0}
   9.118 +xmlrch.errupdrow = Error al actualizar la fila: {0}
   9.119  xmlrch.chars = caracteres:
   9.120  xmlrch.badvalue = Valor incorrecto; la propiedad no puede ser nula
   9.121  xmlrch.badvalue1 = Valor incorrecto; los metadatos no pueden ser nulos
   9.122 -xmlrch.warning = ** Advertencia
   9.123 -xmlrch.line =  , l\u00ednea 
   9.124 -xmlrch.uri =  , uri 
   9.125 +xmlrch.warning =  ** Advertencia
   9.126  
   9.127  #RIOptimisticProvider Exceptions
   9.128  riop.locking = No se permite bloquear la clasificaci\u00f3n
    10.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_fr.properties	Thu Apr 22 16:54:34 2010 -0700
    10.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_fr.properties	Thu Apr 29 13:53:09 2010 -0700
    10.3 @@ -1,5 +1,5 @@
    10.4  #
    10.5 -# Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
    10.6 +# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    10.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    10.8  #
    10.9  # This code is free software; you can redistribute it and/or modify it
   10.10 @@ -31,7 +31,7 @@
   10.11  cachedrowsetimpl.accfailed = \u00c9chec de acceptChanges
   10.12  cachedrowsetimpl.invalidcp = Position du curseur non valide
   10.13  cachedrowsetimpl.illegalop = Op\u00e9ration non autoris\u00e9e sur ligne non ins\u00e9r\u00e9e
   10.14 -cachedrowsetimpl.clonefail = \u00c9chec du clonage : 
   10.15 +cachedrowsetimpl.clonefail = \u00c9chec du clonage : {0}
   10.16  cachedrowsetimpl.invalidcol = Index de colonne non valide
   10.17  cachedrowsetimpl.invalcolnm = Nom de colonne non valide
   10.18  cachedrowsetimpl.boolfail = \u00c9chec de getBoolen pour la valeur ({0}) de la colonne {1}
   10.19 @@ -41,11 +41,11 @@
   10.20  cachedrowsetimpl.longfail = \u00c9chec de getLong pour la valeur ({0}) de la colonne {1}
   10.21  cachedrowsetimpl.floatfail = \u00c9chec de getFloat pour la valeur ({0}) de la colonne {1}
   10.22  cachedrowsetimpl.doublefail = \u00c9chec de getDouble pour la valeur ({0}) de la colonne {1}
   10.23 -cachedrowsetimpl.dtypemismt = Le type de donn\u00e9es ne correspond pas
   10.24 +cachedrowsetimpl.dtypemismt = Le type de donn\u00e9es ne correspond pas 
   10.25  cachedrowsetimpl.datefail = \u00c9chec de getDate pour la valeur ({0}) de la colonne {1} - Aucune conversion possible
   10.26  cachedrowsetimpl.timefail = \u00c9chec de getDate pour la valeur ({0}) de la colonne {1} - Aucune conversion possible
   10.27  cachedrowsetimpl.posupdate = Mises \u00e0 jour choisies non prises en charge
   10.28 -cachedrowsetimpl.unableins = Instanciation impossible : 
   10.29 +cachedrowsetimpl.unableins = Instanciation impossible : {0}
   10.30  cachedrowsetimpl.beforefirst = beforeFirst : op\u00e9ration de curseur non valide
   10.31  cachedrowsetimpl.first = First : op\u00e9ration de curseur non valide
   10.32  cachedrowsetimpl.last = last : TYPE_FORWARD_ONLY
   10.33 @@ -75,7 +75,9 @@
   10.34  cachedrowsetimpl.pagesize = La taille de la page ne peut pas \u00eatre n\u00e9gative
   10.35  cachedrowsetimpl.pagesize1 = La taille de la page ne peut pas \u00eatre sup\u00e9rieure \u00e0 maxRows
   10.36  cachedrowsetimpl.fwdonly = ResultSet est en avant seulement
   10.37 -cachedrowsetimpl.type = Le type est :
   10.38 +cachedrowsetimpl.type = Le type est : {0}
   10.39 +cachedrowsetimpl.opnotysupp = Op\u00e9ration encore non prise en charge
   10.40 +cachedrowsetimpl.featnotsupp = Fonction non prise en charge
   10.41  
   10.42  # WebRowSetImpl exceptions
   10.43  webrowsetimpl.nullhash = Impossible de cr\u00e9er une instance de WebRowSetImpl. Table de hachage null fournie au constructeur
   10.44 @@ -83,7 +85,7 @@
   10.45  webrowsetimpl.invalidrd = Lecteur non valide
   10.46  
   10.47  #FilteredRowSetImpl exceptions
   10.48 -filteredrowsetimpl.relative = relative : op\u00e9ration de curseur non valide
   10.49 +filteredrowsetimpl.relative = relative : op\u00e9ration de curseur non valide 
   10.50  filteredrowsetimpl.absolute = absolute : op\u00e9ration de curseur non valide
   10.51  filteredrowsetimpl.notallowed = Cette valeur n'est pas autoris\u00e9e via le filtre
   10.52  
   10.53 @@ -95,6 +97,7 @@
   10.54  joinrowsetimpl.notsupported = Ce type de jointure n'est pas pris en charge
   10.55  joinrowsetimpl.initerror = Erreur d'initialisation de JoinRowSet
   10.56  joinrowsetimpl.genericerr = Erreur initiale g\u00e9n\u00e9rique de JoinRowSet
   10.57 +joinrowsetimpl.emptyrowset = Impossible d'ajouter un ensemble de lignes vide \u00e0 ce JoinRowSet
   10.58  
   10.59  #JdbcRowSetImpl exceptions
   10.60  jdbcrowsetimpl.invalstate = \u00c9tat non valide
   10.61 @@ -108,55 +111,57 @@
   10.62  jdbcrowsetimpl.usecolname = Utilisez le nom de la colonne en argument de unsetMatchColumn
   10.63  jdbcrowsetimpl.usecolid = Utilisez l'ID de la colonne en argument de unsetMatchColumn
   10.64  jdbcrowsetimpl.resnotupd = La mise \u00e0 jour de ResultSet est interdite
   10.65 +jdbcrowsetimpl.opnotysupp = Op\u00e9ration encore non prise en charge
   10.66 +jdbcrowsetimpl.featnotsupp = Fonction non prise en charge
   10.67  
   10.68  #CachedRowSetReader exceptions
   10.69  crsreader.connect = Impossible de connecter (JNDI)
   10.70  crsreader.paramtype = Impossible de d\u00e9duire le type de param\u00e8tre
   10.71 +crsreader.connecterr = Erreur interne dans RowSetReader\u00a0: aucune connexion ou commande
   10.72 +crsreader.datedetected = Date d\u00e9tect\u00e9e
   10.73 +crsreader.caldetected = Calendrier d\u00e9tect\u00e9
   10.74  
   10.75  #CachedRowSetWriter exceptions
   10.76  crswriter.connect = Impossible d'obtenir la connexion
   10.77  crswriter.tname = writeData ne peut pas d\u00e9terminer le nom du tableau
   10.78 -crswriter.params1 = Valeur de params1 : 
   10.79 -crswriter.params2 = Valeur de params2 : 
   10.80 +crswriter.params1 = Valeur de params1 : {0} 
   10.81 +crswriter.params2 = Valeur de params2 : {0} 
   10.82 +crswriter.conflictsno =  Conflits au cours de la synchronisation 
   10.83  
   10.84  #InsertRow exceptions
   10.85  insertrow.novalue = Aucune valeur n'a \u00e9t\u00e9 ins\u00e9r\u00e9e
   10.86  
   10.87  #SyncResolverImpl exceptions
   10.88 -syncrsimpl.indexval = Valeur d'index hors plage
   10.89 +syncrsimpl.indexval = Valeur d'index hors plage  
   10.90  syncrsimpl.noconflict = Cette colonne n'est pas en conflit
   10.91  syncrsimpl.syncnotpos = La synchronisation est impossible
   10.92  syncrsimpl.valtores = La valeur \u00e0 r\u00e9soudre peut \u00eatre soit dans la base de donn\u00e9es soit dans CachedrowSet
   10.93  
   10.94  #WebRowSetXmlReader exception
   10.95  wrsxmlreader.invalidcp = Fin de RowSet atteinte. Position de curseur non valide
   10.96 -wrsxmlreader.readxml = readXML : 
   10.97 +wrsxmlreader.readxml = readXML : {0}
   10.98  wrsxmlreader.parseerr = ** Erreur d'analyse
   10.99 -wrsxmlreader.line =  , ligne 
  10.100 -wrsxmlreader.uri =  , uri 
  10.101  
  10.102  #WebRowSetXmlWriter exceptions
  10.103 -wrsxmlwriter.ioex = IOException : 
  10.104 -wrsxmlwriter.sqlex = SQLException : 
  10.105 +wrsxmlwriter.ioex = IOException : {0}
  10.106 +wrsxmlwriter.sqlex = SQLException : {0}
  10.107  wrsxmlwriter.failedwrite = \u00c9chec d'\u00e9criture de la valeur
  10.108  wsrxmlwriter.notproper = N'est pas un type correct
  10.109  
  10.110 -#XmlReaderContentHandle exceptions
  10.111 -xmlrch.errmap = Erreur lors de la d\u00e9finition de Map :  
  10.112 -xmlrch.errmetadata = Erreur lors de la d\u00e9finition des m\u00e9tadonn\u00e9es : 
  10.113 -xmlrch.errinsert = Erreur lors de l'insertion des valeurs : 
  10.114 -xmlrch.errconstr = Erreur lors de la construction de la ligne : 
  10.115 -xmlrch.errdel = Erreur lors de la suppression de la ligne : 
  10.116 -xmlrch.errinsert = Erreur lors de la construction de la ligne \u00e0 ins\u00e9rer : 
  10.117 -xmlrch.errinsdel = Erreur lors de la construction de la ligne insdel : 
  10.118 -xmlrch.errupdate = Erreur lors de la construction de la ligne \u00e0 mettre \u00e0 jour : 
  10.119 -xmlrch errupdrow = Erreur lors de la mise \u00e0 jour de la ligne : 
  10.120 +#XmlReaderContentHandler exceptions
  10.121 +xmlrch.errmap = Erreur lors de la d\u00e9finition de Map : {0}
  10.122 +xmlrch.errmetadata = Erreur lors de la d\u00e9finition des m\u00e9tadonn\u00e9es : {0}
  10.123 +xmlrch.errinsert = Erreur lors de l''insertion des valeurs : {0}
  10.124 +xmlrch.errconstr = Erreur lors de la construction de la ligne : {0}
  10.125 +xmlrch.errdel = Erreur lors de la suppression de la ligne : {0}
  10.126 +xmlrch.errinsert = Erreur lors de la construction de la ligne \u00e0 ins\u00e9rer : {0}
  10.127 +xmlrch.errinsdel = Erreur lors de la construction de la ligne insdel : {0}
  10.128 +xmlrch.errupdate = Erreur lors de la construction de la ligne \u00e0 mettre \u00e0 jour : {0}
  10.129 +xmlrch.errupdrow = Erreur lors de la mise \u00e0 jour de la ligne\u00a0: {0}
  10.130  xmlrch.chars = caract\u00e8res :
  10.131  xmlrch.badvalue = Valeur incorrecte ; null impossible pour cette propri\u00e9t\u00e9
  10.132  xmlrch.badvalue1 = Valeur incorrecte ; null impossible pour ces m\u00e9tadonn\u00e9es
  10.133 -xmlrch.warning = ** Avertissement
  10.134 -xmlrch.line =  , ligne 
  10.135 -xmlrch.uri =  , uri 
  10.136 +xmlrch.warning =  ** Avertissement
  10.137  
  10.138  #RIOptimisticProvider Exceptions
  10.139  riop.locking = Le verrouillage de la classification n'est pas pris en charge
    11.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_it.properties	Thu Apr 22 16:54:34 2010 -0700
    11.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_it.properties	Thu Apr 29 13:53:09 2010 -0700
    11.3 @@ -1,5 +1,5 @@
    11.4  #
    11.5 -# Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
    11.6 +# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    11.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    11.8  #
    11.9  # This code is free software; you can redistribute it and/or modify it
   11.10 @@ -41,7 +41,7 @@
   11.11  cachedrowsetimpl.longfail = getLong non riuscito per il valore ( {0} ) nella colonna {1}
   11.12  cachedrowsetimpl.floatfail = getFloat non riuscito per il valore ( {0} ) nella colonna {1}
   11.13  cachedrowsetimpl.doublefail = getDouble non riuscito per il valore ( {0} ) nella colonna {1}
   11.14 -cachedrowsetimpl.dtypemismt = Mancata corrispondenza dei tipi di dati
   11.15 +cachedrowsetimpl.dtypemismt = Mancata corrispondenza dei tipi di dati 
   11.16  cachedrowsetimpl.datefail = getDate non riuscito per il valore ( {0} ) nella colonna {1}. Nessuna conversione disponibile.
   11.17  cachedrowsetimpl.timefail = getTime non riuscito per il valore ( {0} ) nella colonna {1}. Nessuna conversione disponibile.
   11.18  cachedrowsetimpl.posupdate = Aggiornamenti posizionati non supportati
   11.19 @@ -76,6 +76,8 @@
   11.20  cachedrowsetimpl.pagesize1 = La dimensione della pagina non pu\u00f2 essere superiore a maxRows
   11.21  cachedrowsetimpl.fwdonly = ResultSet \u00e8 a solo inoltro
   11.22  cachedrowsetimpl.type = Il tipo \u00e8: {0}
   11.23 +cachedrowsetimpl.opnotysupp = Operazione non ancora supportata
   11.24 +cachedrowsetimpl.featnotsupp = Funzionalit\u00e0 non supportata
   11.25  
   11.26  # WebRowSetImpl exceptions
   11.27  webrowsetimpl.nullhash = Impossibile istanziare l'istanza WebRowSetImpl. Tabella hash nulla fornita al costruttore
   11.28 @@ -83,7 +85,7 @@
   11.29  webrowsetimpl.invalidrd = Lettore non valido
   11.30  
   11.31  #FilteredRowSetImpl exceptions
   11.32 -filteredrowsetimpl.relative = relative: operazione cursore non valida
   11.33 +filteredrowsetimpl.relative = relative: operazione cursore non valida 
   11.34  filteredrowsetimpl.absolute = absolute: operazione cursore non valida
   11.35  filteredrowsetimpl.notallowed = Questo valore non \u00e8 consentito nel filtro
   11.36  
   11.37 @@ -95,6 +97,7 @@
   11.38  joinrowsetimpl.notsupported = Questo tipo di unione non \u00e8 supportato
   11.39  joinrowsetimpl.initerror = Errore di inizializzazione di JoinRowSet
   11.40  joinrowsetimpl.genericerr = Errore iniziale di joinrowset generico
   11.41 +joinrowsetimpl.emptyrowset = Impossibile aggiungere un rowset al JoinRowSet corrente
   11.42  
   11.43  #JdbcRowSetImpl exceptions
   11.44  jdbcrowsetimpl.invalstate = Stato non valido
   11.45 @@ -108,22 +111,28 @@
   11.46  jdbcrowsetimpl.usecolname = Utilizzare il nome di colonna come argomento per unsetMatchColumn
   11.47  jdbcrowsetimpl.usecolid = Utilizzare l'ID di colonna come argomento per unsetMatchColumn
   11.48  jdbcrowsetimpl.resnotupd = ResultSet non \u00e8 aggiornabile
   11.49 +jdbcrowsetimpl.opnotysupp = Operazione non ancora supportata
   11.50 +jdbcrowsetimpl.featnotsupp = Funzionalit\u00e0 non supportata
   11.51  
   11.52  #CachedRowSetReader exceptions
   11.53  crsreader.connect = (JNDI) Impossibile stabilire una connessione
   11.54  crsreader.paramtype = Impossibile dedurre il tipo di parametro
   11.55 +crsreader.connecterr = Errore interno in RowSetReader: nessuna connessione o comando disponibile
   11.56 +crsreader.datedetected = Data rilevata
   11.57 +crsreader.caldetected = Calendario rilevato
   11.58  
   11.59  #CachedRowSetWriter exceptions
   11.60  crswriter.connect = Impossibile stabilire una connessione
   11.61  crswriter.tname = writeData non riesce a determinare il nome di tabella
   11.62  crswriter.params1 = Valore dei parametri 1: {0} 
   11.63  crswriter.params2 = Valore dei parametri 2: {0} 
   11.64 +crswriter.conflictsno =  conflitti durante la sincronizzazione 
   11.65  
   11.66  #InsertRow exceptions
   11.67  insertrow.novalue = Non \u00e8 stato inserito alcun valore
   11.68  
   11.69  #SyncResolverImpl exceptions
   11.70 -syncrsimpl.indexval = Il valore di indice non rientra nell'intervallo
   11.71 +syncrsimpl.indexval = Il valore di indice non rientra nell'intervallo  
   11.72  syncrsimpl.noconflict = Questa colonna non \u00e8 in conflitto
   11.73  syncrsimpl.syncnotpos = Impossibile eseguire la sincronizzazione
   11.74  syncrsimpl.valtores = Il valore da risolvere pu\u00f2 essere nel database o in cachedrowset
   11.75 @@ -132,31 +141,27 @@
   11.76  wrsxmlreader.invalidcp = Raggiunta la fine di RowSet. Posizione cursore non valida
   11.77  wrsxmlreader.readxml = readXML: {0}
   11.78  wrsxmlreader.parseerr = ** Errore di analisi
   11.79 -wrsxmlreader.line =  , linea 
   11.80 -wrsxmlreader.uri =  , uri 
   11.81  
   11.82  #WebRowSetXmlWriter exceptions
   11.83  wrsxmlwriter.ioex = IOException: {0}
   11.84 -wrsxmlwriter.sqlex = SQLException: {0} 
   11.85 +wrsxmlwriter.sqlex = SQLException: {0}
   11.86  wrsxmlwriter.failedwrite = Impossibile scrivere il valore
   11.87  wsrxmlwriter.notproper = Non un tipo corretto
   11.88  
   11.89 -#XmlReaderContentHandle exceptions
   11.90 -xmlrch.errmap = Errore durante l'impostazione della mappa: {0} 
   11.91 -xmlrch.errmetadata = Errore durante l'impostazione dei metadati: {0} 
   11.92 -xmlrch.errinsert = Errore durante l'inserimento dei valori: {0}
   11.93 +#XmlReaderContentHandler exceptions
   11.94 +xmlrch.errmap = Errore durante l''impostazione della mappa: {0}
   11.95 +xmlrch.errmetadata = Errore durante l'impostazione dei metadati: {0}
   11.96 +xmlrch.errinsert = Errore durante l''inserimento dei valori: {0}
   11.97  xmlrch.errconstr = Errore durante la costruzione della riga: {0}
   11.98 -xmlrch.errdel = Errore durante l'eliminazione della riga: {0}
   11.99 +xmlrch.errdel = Errore durante l''eliminazione della riga: {0}
  11.100  xmlrch.errinsert = Errore durante la costruzione della riga di inserimento: {0}
  11.101  xmlrch.errinsdel = Errore durante la costruzione della riga insdel: {0}
  11.102  xmlrch.errupdate = Errore durante la costruzione della riga di aggiornamento: {0}
  11.103 -xmlrch errupdrow = Errore durante l'aggiornamento della riga: {0}
  11.104 +xmlrch.errupdrow = Errore durante l''aggiornamento della riga: {0}
  11.105  xmlrch.chars = caratteri:
  11.106  xmlrch.badvalue = valore non valido; propriet\u00e0 non annullabile
  11.107  xmlrch.badvalue1 = valore non valido; metadati non annullabili
  11.108 -xmlrch.warning = ** Avviso
  11.109 -xmlrch.line =  , linea 
  11.110 -xmlrch.uri =  , uri 
  11.111 +xmlrch.warning =  ** Avviso
  11.112  
  11.113  #RIOptimisticProvider Exceptions
  11.114  riop.locking = La classificazione di blocco non \u00e8 supportata
    12.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties	Thu Apr 22 16:54:34 2010 -0700
    12.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties	Thu Apr 29 13:53:09 2010 -0700
    12.3 @@ -41,7 +41,7 @@
    12.4  cachedrowsetimpl.longfail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getLong \u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002
    12.5  cachedrowsetimpl.floatfail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getFloat \u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002
    12.6  cachedrowsetimpl.doublefail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getDouble \u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002
    12.7 -cachedrowsetimpl.dtypemismt = \u30c7\u30fc\u30bf\u578b\u306e\u30df\u30b9\u30de\u30c3\u30c1
    12.8 +cachedrowsetimpl.dtypemismt = \u30c7\u30fc\u30bf\u578b\u306e\u30df\u30b9\u30de\u30c3\u30c1 
    12.9  cachedrowsetimpl.datefail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getDate \u304c\u5931\u6557\u3002\u5909\u63db\u3067\u304d\u307e\u305b\u3093\u3002
   12.10  cachedrowsetimpl.timefail = \u5217 {1} \u306e\u5024 ( {0} ) \u3067 getTime \u304c\u5931\u6557\u3002\u5909\u63db\u3067\u304d\u307e\u305b\u3093\u3002
   12.11  cachedrowsetimpl.posupdate = \u4f4d\u7f6e\u6c7a\u3081\u3055\u308c\u305f\u66f4\u65b0\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
   12.12 @@ -71,11 +71,13 @@
   12.13  cachedrowsetimpl.unsetmatch2 = unsetMatchColumn \u3078\u306e\u5f15\u6570\u3068\u3057\u3066\u5217 ID \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
   12.14  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
   12.15  cachedrowsetimpl.startpos = \u958b\u59cb\u4f4d\u7f6e\u306f\u8ca0\u3067\u306f\u306a\u308a\u307e\u305b\u3093\u3002
   12.16 -cachedrowsetimpl.nextpage = \u547c\u3073\u51fa\u3057\u524d\u306b\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
   12.17 +cachedrowsetimpl.nextpage = \u547c\u3073\u51fa\u3057\u524d\u306b\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002 
   12.18  cachedrowsetimpl.pagesize = \u30da\u30fc\u30b8\u30b5\u30a4\u30ba\u306f\u30bc\u30ed\u3088\u308a\u5c0f\u3055\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002
   12.19  cachedrowsetimpl.pagesize1 = \u30da\u30fc\u30b8\u30b5\u30a4\u30ba\u306f maxRows \u3088\u308a\u5927\u304d\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002
   12.20  cachedrowsetimpl.fwdonly = ResultSet \u306f\u9806\u65b9\u5411\u306e\u307f\u3067\u3059\u3002
   12.21  cachedrowsetimpl.type = \u578b : {0}
   12.22 +cachedrowsetimpl.opnotysupp = \u3053\u306e\u64cd\u4f5c\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
   12.23 +cachedrowsetimpl.featnotsupp = \u3053\u306e\u6a5f\u80fd\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
   12.24  
   12.25  # WebRowSetImpl exceptions
   12.26  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
   12.27 @@ -83,7 +85,7 @@
   12.28  webrowsetimpl.invalidrd = \u7121\u52b9\u306a\u30ea\u30fc\u30c0\u30fc
   12.29  
   12.30  #FilteredRowSetImpl exceptions
   12.31 -filteredrowsetimpl.relative = relative : \u7121\u52b9\u306a\u30ab\u30fc\u30bd\u30eb\u64cd\u4f5c
   12.32 +filteredrowsetimpl.relative = relative : \u7121\u52b9\u306a\u30ab\u30fc\u30bd\u30eb\u64cd\u4f5c 
   12.33  filteredrowsetimpl.absolute = absolute : \u7121\u52b9\u306a\u30ab\u30fc\u30bd\u30eb\u64cd\u4f5c
   12.34  filteredrowsetimpl.notallowed = \u3053\u306e\u5024\u306f\u30d5\u30a3\u30eb\u30bf\u3067\u8a31\u5bb9\u3055\u308c\u307e\u305b\u3093\u3002
   12.35  
   12.36 @@ -95,6 +97,7 @@
   12.37  joinrowsetimpl.notsupported = \u3053\u306e\u578b\u306e\u7d50\u5408\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
   12.38  joinrowsetimpl.initerror = JoinRowSet \u521d\u671f\u5316\u30a8\u30e9\u30fc
   12.39  joinrowsetimpl.genericerr = \u6c4e\u7528 joinrowset \u306e\u521d\u671f\u30a8\u30e9\u30fc
   12.40 +joinrowsetimpl.emptyrowset = \u3053\u306e JoinRowSet \u306b\u306f\u7a7a\u306e\u884c\u30bb\u30c3\u30c8\u3092\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3002
   12.41  
   12.42  #JdbcRowSetImpl exceptions
   12.43  jdbcrowsetimpl.invalstate = \u7121\u52b9\u306a\u72b6\u614b
   12.44 @@ -108,22 +111,28 @@
   12.45  jdbcrowsetimpl.usecolname = unsetMatchColumn \u3078\u306e\u5f15\u6570\u3068\u3057\u3066\u5217\u540d\u3092\u4f7f\u7528\u3066\u304f\u3060\u3055\u3044\u3002
   12.46  jdbcrowsetimpl.usecolid = unsetMatchColumn \u3078\u306e\u5f15\u6570\u3068\u3057\u3066\u5217 ID \u3092\u4f7f\u7528\u3066\u304f\u3060\u3055\u3044\u3002
   12.47  jdbcrowsetimpl.resnotupd = ResultSet \u306f\u66f4\u65b0\u3067\u304d\u307e\u305b\u3093\u3002
   12.48 +jdbcrowsetimpl.opnotysupp = \u3053\u306e\u64cd\u4f5c\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
   12.49 +jdbcrowsetimpl.featnotsupp = \u3053\u306e\u6a5f\u80fd\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
   12.50  
   12.51  #CachedRowSetReader exceptions
   12.52  crsreader.connect = (JNDI) \u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3002
   12.53  crsreader.paramtype = \u30d1\u30e9\u30e1\u30fc\u30bf\u578b\u3092\u63a8\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002
   12.54 +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
   12.55 +crsreader.datedetected = \u65e5\u4ed8\u3092\u691c\u51fa\u3057\u307e\u3057\u305f\u3002
   12.56 +crsreader.caldetected = \u30ab\u30ec\u30f3\u30c0\u3092\u691c\u51fa\u3057\u307e\u3057\u305f\u3002
   12.57  
   12.58  #CachedRowSetWriter exceptions
   12.59  crswriter.connect = \u63a5\u7d9a\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3002
   12.60  crswriter.tname = writeData \u304c\u8868\u540d\u3092\u5224\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002
   12.61  crswriter.params1 = params1 \u306e\u5024 : {0} 
   12.62  crswriter.params2 = params2 \u306e\u5024 : {0} 
   12.63 +crswriter.conflictsno =  \u540c\u671f\u4e2d\u306b\u885d\u7a81\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 
   12.64  
   12.65  #InsertRow exceptions
   12.66  insertrow.novalue = \u5024\u306f\u633f\u5165\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
   12.67  
   12.68  #SyncResolverImpl exceptions
   12.69 -syncrsimpl.indexval = \u7bc4\u56f2\u5916\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5024
   12.70 +syncrsimpl.indexval = \u7bc4\u56f2\u5916\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5024  
   12.71  syncrsimpl.noconflict = \u3053\u306e\u5217\u306f\u7af6\u5408\u3057\u3066\u3044\u307e\u305b\u3093\u3002
   12.72  syncrsimpl.syncnotpos = \u540c\u671f\u3067\u304d\u307e\u305b\u3093\u3002
   12.73  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
   12.74 @@ -132,31 +141,27 @@
   12.75  wrsxmlreader.invalidcp = RowSet \u306e\u6700\u5f8c\u306b\u5230\u9054\u3057\u307e\u3057\u305f\u3002\u7121\u52b9\u306a\u30ab\u30fc\u30bd\u30eb\u4f4d\u7f6e
   12.76  wrsxmlreader.readxml = readXML : {0}
   12.77  wrsxmlreader.parseerr = ** \u69cb\u6587\u89e3\u6790\u30a8\u30e9\u30fc
   12.78 -wrsxmlreader.line =  , \u884c 
   12.79 -wrsxmlreader.uri =  , uri 
   12.80  
   12.81  #WebRowSetXmlWriter exceptions
   12.82  wrsxmlwriter.ioex = IOException : {0}
   12.83 -wrsxmlwriter.sqlex = SQLException : {0} 
   12.84 +wrsxmlwriter.sqlex = SQLException : {0}
   12.85  wrsxmlwriter.failedwrite = \u5024\u306e\u66f8\u304d\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
   12.86  wsrxmlwriter.notproper = \u9069\u5207\u306a\u578b\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
   12.87  
   12.88 -#XmlReaderContentHandle exceptions
   12.89 -xmlrch.errmap = Map \u8a2d\u5b9a\u30a8\u30e9\u30fc : {0} 
   12.90 -xmlrch.errmetadata = \u30e1\u30bf\u30c7\u30fc\u30bf\u8a2d\u5b9a\u30a8\u30e9\u30fc : {0} 
   12.91 +#XmlReaderContentHandler exceptions
   12.92 +xmlrch.errmap = Map \u8a2d\u5b9a\u30a8\u30e9\u30fc : {0}
   12.93 +xmlrch.errmetadata = \u30e1\u30bf\u30c7\u30fc\u30bf\u8a2d\u5b9a\u30a8\u30e9\u30fc : {0}
   12.94  xmlrch.errinsert = \u5024\u306e\u633f\u5165\u30a8\u30e9\u30fc : {0}
   12.95  xmlrch.errconstr = \u884c\u306e\u751f\u6210\u30a8\u30e9\u30fc : {0}
   12.96  xmlrch.errdel = \u884c\u306e\u524a\u9664\u30a8\u30e9\u30fc : {0}
   12.97  xmlrch.errinsert = \u633f\u5165\u884c\u306e\u751f\u6210\u30a8\u30e9\u30fc : {0}
   12.98  xmlrch.errinsdel = insdel \u884c\u306e\u751f\u6210\u30a8\u30e9\u30fc : {0}
   12.99  xmlrch.errupdate = \u66f4\u65b0\u884c\u306e\u751f\u6210\u30a8\u30e9\u30fc : {0}
  12.100 -xmlrch errupdrow = \u884c\u306e\u66f4\u65b0\u30a8\u30e9\u30fc : {0}
  12.101 +xmlrch.errupdrow = \u884c\u306e\u66f4\u65b0\u30a8\u30e9\u30fc: {0}
  12.102  xmlrch.chars = \u6587\u5b57 :
  12.103 -xmlrch.badvalue = \u4e0d\u6b63\u306a\u5024 ; null \u306b\u3067\u304d\u306a\u3044\u30d7\u30ed\u30d1\u30c6\u30a3
  12.104 +xmlrch.badvalue = \u4e0d\u6b63\u306a\u5024 ; null \u306b\u3067\u304d\u306a\u3044\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc
  12.105  xmlrch.badvalue1 = \u4e0d\u6b63\u306a\u5024 ; null \u306b\u3067\u304d\u306a\u3044\u30e1\u30bf\u30c7\u30fc\u30bf
  12.106 -xmlrch.warning = ** \u8b66\u544a
  12.107 -xmlrch.line =  , \u884c 
  12.108 -xmlrch.uri =  , uri 
  12.109 +xmlrch.warning =  ** \u8b66\u544a
  12.110  
  12.111  #RIOptimisticProvider Exceptions
  12.112  riop.locking = \u30ed\u30c3\u30af\u306e\u5206\u985e\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
    13.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties	Thu Apr 22 16:54:34 2010 -0700
    13.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties	Thu Apr 29 13:53:09 2010 -0700
    13.3 @@ -1,5 +1,5 @@
    13.4  #
    13.5 -# Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
    13.6 +# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    13.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    13.8  #
    13.9  # This code is free software; you can redistribute it and/or modify it
   13.10 @@ -41,7 +41,7 @@
   13.11  cachedrowsetimpl.longfail = \uc5f4 {1}\uc758 \uac12({0})\uc5d0\uc11c getLong\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
   13.12  cachedrowsetimpl.floatfail = \uc5f4 {1}\uc758 \uac12({0})\uc5d0\uc11c getFloat\uac00 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
   13.13  cachedrowsetimpl.doublefail = \uc5f4 {1}\uc758 \uac12({0})\uc5d0\uc11c getDouble\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
   13.14 -cachedrowsetimpl.dtypemismt = \ub370\uc774\ud130 \uc720\ud615\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
   13.15 +cachedrowsetimpl.dtypemismt = \ub370\uc774\ud130 \uc720\ud615\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. 
   13.16  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.
   13.17  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.
   13.18  cachedrowsetimpl.posupdate = \uc704\uce58 \uc9c0\uc815 \uc5c5\ub370\uc774\ud2b8\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
   13.19 @@ -71,11 +71,13 @@
   13.20  cachedrowsetimpl.unsetmatch2 = \uc5f4 ID\ub97c unsetMatchColumn\uc758 \uc778\uc218\ub85c \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.
   13.21  cachedrowsetimpl.numrows = \ud589 \uac1c\uc218\uac00 0\ubcf4\ub2e4 \uc791\uac70\ub098 \ubc18\uc785 \ud06c\uae30\ubcf4\ub2e4 \uc791\uc2b5\ub2c8\ub2e4.
   13.22  cachedrowsetimpl.startpos = \uc2dc\uc791 \uc704\uce58\ub294 \uc74c\uc218\uc77c \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.23 -cachedrowsetimpl.nextpage = \ud638\ucd9c\ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\ub97c \ucc44\uc6b0\uc2ed\uc2dc\uc624.
   13.24 +cachedrowsetimpl.nextpage = \ud638\ucd9c\ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\ub97c \ucc44\uc6b0\uc2ed\uc2dc\uc624. 
   13.25  cachedrowsetimpl.pagesize = \ud398\uc774\uc9c0 \ud06c\uae30\ub294 0\ubcf4\ub2e4 \uc791\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.26  cachedrowsetimpl.pagesize1 = \ud398\uc774\uc9c0 \ud06c\uae30\ub294 maxRows\ubcf4\ub2e4 \ud074 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.27  cachedrowsetimpl.fwdonly = ResultSet\ub294 \uc804\ub2ec \uc804\uc6a9\uc785\ub2c8\ub2e4.
   13.28  cachedrowsetimpl.type = \uc720\ud615: {0}
   13.29 +cachedrowsetimpl.opnotysupp = \uc791\uc5c5\uc774 \uc544\uc9c1 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
   13.30 +cachedrowsetimpl.featnotsupp = \uae30\ub2a5\uc774 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
   13.31  
   13.32  # WebRowSetImpl exceptions
   13.33  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.
   13.34 @@ -83,7 +85,7 @@
   13.35  webrowsetimpl.invalidrd = \uc798\ubabb\ub41c \ud310\ub3c5\uae30\uc785\ub2c8\ub2e4.
   13.36  
   13.37  #FilteredRowSetImpl exceptions
   13.38 -filteredrowsetimpl.relative = \uc0c1\ub300: \uc798\ubabb\ub41c \ucee4\uc11c \uc791\uc5c5\uc785\ub2c8\ub2e4.
   13.39 +filteredrowsetimpl.relative = \uc0c1\ub300: \uc798\ubabb\ub41c \ucee4\uc11c \uc791\uc5c5\uc785\ub2c8\ub2e4. 
   13.40  filteredrowsetimpl.absolute = \uc808\ub300: \uc798\ubabb\ub41c \ucee4\uc11c \uc791\uc5c5\uc785\ub2c8\ub2e4.
   13.41  filteredrowsetimpl.notallowed = \uc774 \uac12\uc740 \ud544\ud130\ub97c \ud1b5\uacfc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.42  
   13.43 @@ -95,6 +97,7 @@
   13.44  joinrowsetimpl.notsupported = \uc774 \uacb0\ud569 \uc720\ud615\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
   13.45  joinrowsetimpl.initerror = JoinRowSet \ucd08\uae30\ud654 \uc624\ub958
   13.46  joinrowsetimpl.genericerr = \uc77c\ubc18 joinrowset \ucd08\uae30 \uc624\ub958
   13.47 +joinrowsetimpl.emptyrowset = \uc774 JoinRowSet\uc5d0 \ube48 rowset\uc744 \ucd94\uac00\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.48  
   13.49  #JdbcRowSetImpl exceptions
   13.50  jdbcrowsetimpl.invalstate = \uc798\ubabb\ub41c \uc0c1\ud0dc\uc785\ub2c8\ub2e4.
   13.51 @@ -108,22 +111,28 @@
   13.52  jdbcrowsetimpl.usecolname = \uc5f4 \uc774\ub984\uc744 unsetMatchColumn\uc758 \uc778\uc218\ub85c \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.
   13.53  jdbcrowsetimpl.usecolid = \uc5f4 ID\ub97c unsetMatchColumn\uc758 \uc778\uc218\ub85c \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.
   13.54  jdbcrowsetimpl.resnotupd = ResultSet\uc740 \uc5c5\ub370\uc774\ud2b8\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.55 +jdbcrowsetimpl.opnotysupp = \uc791\uc5c5\uc774 \uc544\uc9c1 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
   13.56 +jdbcrowsetimpl.featnotsupp = \uae30\ub2a5\uc774 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
   13.57  
   13.58  #CachedRowSetReader exceptions
   13.59  crsreader.connect = (JNDI) \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.60  crsreader.paramtype = \ub9e4\uac1c \ubcc0\uc218 \uc720\ud615\uc744 \ucd94\ub860\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.61 +crsreader.connecterr = RowSetReader \ub0b4\ubd80 \uc624\ub958: \uc5f0\uacb0 \ub610\ub294 \uba85\ub839\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.62 +crsreader.datedetected = \ub0a0\uc9dc\uac00 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
   13.63 +crsreader.caldetected = \ub2ec\ub825\uc774 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
   13.64  
   13.65  #CachedRowSetWriter exceptions
   13.66  crswriter.connect = \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.67  crswriter.tname = writeData\uc5d0\uc11c \ud14c\uc774\ube14 \uc774\ub984\uc744 \ud655\uc778\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.68 -crswriter.params1 = params1\uc758 \uac12: {0}
   13.69 -crswriter.params2 = params2\uc758 \uac12: {0}
   13.70 +crswriter.params1 = params1\uc758 \uac12: {0} 
   13.71 +crswriter.params2 = params2\uc758 \uac12: {0} 
   13.72 +crswriter.conflictsno =  \ub3d9\uae30\ud654\ud558\ub294 \ub3d9\uc548 \ucda9\ub3cc\ud569\ub2c8\ub2e4. 
   13.73  
   13.74  #InsertRow exceptions
   13.75  insertrow.novalue = \uac12\uc774 \uc0bd\uc785\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
   13.76  
   13.77  #SyncResolverImpl exceptions
   13.78 -syncrsimpl.indexval = \uc0c9\uc778 \uac12\uc774 \ubc94\uc704\ub97c \ubc97\uc5b4\ub0ac\uc2b5\ub2c8\ub2e4.
   13.79 +syncrsimpl.indexval = \uc0c9\uc778 \uac12\uc774 \ubc94\uc704\ub97c \ubc97\uc5b4\ub0ac\uc2b5\ub2c8\ub2e4.  
   13.80  syncrsimpl.noconflict = \uc774 \uc5f4\uc740 \ucda9\ub3cc\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
   13.81  syncrsimpl.syncnotpos = \ub3d9\uae30\ud654\ub97c \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   13.82  syncrsimpl.valtores = \ud655\uc778\ud560 \uac12\uc774 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub098 cachedrowset\uc5d0 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
   13.83 @@ -132,31 +141,27 @@
   13.84  wrsxmlreader.invalidcp = RowSet\uc758 \ub05d\uc5d0 \ub3c4\ub2ec\ud588\uc2b5\ub2c8\ub2e4. \uc798\ubabb\ub41c \ucee4\uc11c \uc704\uce58\uc785\ub2c8\ub2e4.
   13.85  wrsxmlreader.readxml = readXML: {0}
   13.86  wrsxmlreader.parseerr = ** \uad6c\ubb38 \ubd84\uc11d \uc624\ub958
   13.87 -wrsxmlreader.line =  , \uc904 
   13.88 -wrsxmlreader.uri =  , uri 
   13.89  
   13.90  #WebRowSetXmlWriter exceptions
   13.91  wrsxmlwriter.ioex = IOException: {0}
   13.92 -wrsxmlwriter.sqlex = SQLException: {0} 
   13.93 +wrsxmlwriter.sqlex = SQLException: {0}
   13.94  wrsxmlwriter.failedwrite = \uac12\uc744 \uc4f0\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
   13.95  wsrxmlwriter.notproper = \uc62c\ubc14\ub978 \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4.
   13.96  
   13.97 -#XmlReaderContentHandle exceptions
   13.98 -xmlrch.errmap = \ub9e4\ud551\uc744 \uc124\uc815\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0} 
   13.99 -xmlrch.errmetadata = \uba54\ud0c0\ub370\uc774\ud130\ub97c \uc124\uc815\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0} 
  13.100 -xmlrch.errinsert = \uac12\uc744 \uc0bd\uc785\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.101 +#XmlReaderContentHandler exceptions
  13.102 +xmlrch.errmap = \ub9e4\ud551\uc744 \uc124\uc815\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.103 +xmlrch.errmetadata = \uba54\ud0c0\ub370\uc774\ud130\ub97c \uc124\uc815\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.104 +xmlrch.errinsert = \ub2e4\uc74c \uac12\uc744 \uc0bd\uc785\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd : {0}
  13.105  xmlrch.errconstr = \ud589\uc744 \ub9cc\ub4dc\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.106  xmlrch.errdel = \ud589\uc744 \uc81c\uac70\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.107  xmlrch.errinsert = insert \ud589\uc744 \ub9cc\ub4dc\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.108  xmlrch.errinsdel = insdel \ud589\uc744 \ub9cc\ub4dc\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.109  xmlrch.errupdate = update \ud589\uc744 \ub9cc\ub4dc\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.110 -xmlrch errupdrow = \ud589\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \uc911 \uc624\ub958 \ubc1c\uc0dd: {0}
  13.111 +xmlrch.errupdrow = \ud589 \uc5c5\ub370\uc774\ud2b8 \uc624\ub958: {0}
  13.112  xmlrch.chars = \ubb38\uc790:
  13.113  xmlrch.badvalue = \uc798\ubabb\ub41c \uac12; \ub110\uc77c \uc218 \uc5c6\ub294 \ub4f1\ub85d \uc815\ubcf4
  13.114  xmlrch.badvalue1 = \uc798\ubabb\ub41c \uac12; \ub110\uc77c \uc218 \uc5c6\ub294 \uba54\ud0c0\ub370\uc774\ud130
  13.115 -xmlrch.warning = ** \uacbd\uace0
  13.116 -xmlrch.line =  , \uc904 
  13.117 -xmlrch.uri =  , uri 
  13.118 +xmlrch.warning =  ** \uacbd\uace0
  13.119  
  13.120  #RIOptimisticProvider Exceptions
  13.121  riop.locking = \ub4f1\uae09 \uc7a0\uae08\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
    14.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties	Thu Apr 22 16:54:34 2010 -0700
    14.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties	Thu Apr 29 13:53:09 2010 -0700
    14.3 @@ -1,5 +1,5 @@
    14.4  #
    14.5 -# Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
    14.6 +# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    14.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    14.8  #
    14.9  # This code is free software; you can redistribute it and/or modify it
   14.10 @@ -41,7 +41,7 @@
   14.11  cachedrowsetimpl.longfail = getLong misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}
   14.12  cachedrowsetimpl.floatfail = getFloat misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}
   14.13  cachedrowsetimpl.doublefail = getDouble misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}
   14.14 -cachedrowsetimpl.dtypemismt = Inkompatibel datatyp
   14.15 +cachedrowsetimpl.dtypemismt = Inkompatibel datatyp 
   14.16  cachedrowsetimpl.datefail = getDate misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}, ingen konvertering tillg\u00e4nglig
   14.17  cachedrowsetimpl.timefail = getTime misslyckades f\u00f6r v\u00e4rdet ({0}) i kolumnen {1}, ingen konvertering tillg\u00e4nglig
   14.18  cachedrowsetimpl.posupdate = Det finns inte st\u00f6d f\u00f6r positionerad uppdatering
   14.19 @@ -71,11 +71,13 @@
   14.20  cachedrowsetimpl.unsetmatch2 = Anv\u00e4nd kolumnn-id som argument f\u00f6r unsetMatchColumn
   14.21  cachedrowsetimpl.numrows = Antalet rader understiger noll eller \u00e4r mindre \u00e4n h\u00e4mtningsstorleken
   14.22  cachedrowsetimpl.startpos = Startpositionen f\u00e5r inte vara negativ
   14.23 -cachedrowsetimpl.nextpage = Fyll i data innan anrop
   14.24 +cachedrowsetimpl.nextpage = Fyll i data innan anrop 
   14.25  cachedrowsetimpl.pagesize = Sidstorleken f\u00e5r inte understiga noll
   14.26  cachedrowsetimpl.pagesize1 = Sidstorleken f\u00e5r inte \u00f6verstiga maxRows
   14.27  cachedrowsetimpl.fwdonly = ResultSet kan endast g\u00e5 fram\u00e5t
   14.28  cachedrowsetimpl.type = Typ: {0}
   14.29 +cachedrowsetimpl.opnotysupp = Det finns \u00e4nnu inte st\u00f6d f\u00f6r \u00e5tg\u00e4rden
   14.30 +cachedrowsetimpl.featnotsupp = Funktionen st\u00f6ds inte
   14.31  
   14.32  # WebRowSetImpl exceptions
   14.33  webrowsetimpl.nullhash = Det g\u00e5r inte att skapa instansen WebRowSetImpl. Tom hashtabell skickades till konstrukt\u00f6r.
   14.34 @@ -95,6 +97,7 @@
   14.35  joinrowsetimpl.notsupported = Det finns inget st\u00f6d f\u00f6r denna kopplingstyp
   14.36  joinrowsetimpl.initerror = Initieringsfel f\u00f6r JoinRowSet
   14.37  joinrowsetimpl.genericerr = Allm\u00e4nt initieringsfel f\u00f6r JoinRowSet
   14.38 +joinrowsetimpl.emptyrowset = Det g\u00e5r inte att l\u00e4gga till tom rowset i denna JoinRowSet
   14.39  
   14.40  #JdbcRowSetImpl exceptions
   14.41  jdbcrowsetimpl.invalstate = Ogiltig status
   14.42 @@ -108,22 +111,28 @@
   14.43  jdbcrowsetimpl.usecolname = Anv\u00e4nd kolumnnamn som argument f\u00f6r unsetMatchColumn
   14.44  jdbcrowsetimpl.usecolid = Anv\u00e4nd kolumnn-id som argument f\u00f6r unsetMatchColumn
   14.45  jdbcrowsetimpl.resnotupd = ResultSet \u00e4r inte uppdateringsbart
   14.46 +jdbcrowsetimpl.opnotysupp = Det finns \u00e4nnu inte st\u00f6d f\u00f6r \u00e5tg\u00e4rden
   14.47 +jdbcrowsetimpl.featnotsupp = Funktionen st\u00f6ds inte
   14.48  
   14.49  #CachedRowSetReader exceptions
   14.50  crsreader.connect = (JNDI) kan inte anslutas
   14.51  crsreader.paramtype = Det g\u00e5r inte att fastst\u00e4lla parametertypen
   14.52 +crsreader.connecterr = Internfel i RowSetReader: ingen anslutning eller inget kommando
   14.53 +crsreader.datedetected = Ett datum uppt\u00e4cktes
   14.54 +crsreader.caldetected = En kalender uppt\u00e4cktes
   14.55  
   14.56  #CachedRowSetWriter exceptions
   14.57  crswriter.connect = Det g\u00e5r inte att uppr\u00e4tta n\u00e5gon anslutning
   14.58  crswriter.tname = writeData kan inte fastst\u00e4lla tabellnamnet
   14.59  crswriter.params1 = Parameterv\u00e4rde1: {0} 
   14.60  crswriter.params2 = Parameterv\u00e4rde2: {0} 
   14.61 +crswriter.conflictsno =  konflikter uppstod vid synkronisering 
   14.62  
   14.63  #InsertRow exceptions
   14.64  insertrow.novalue = Inget v\u00e4rde har infogats
   14.65  
   14.66  #SyncResolverImpl exceptions
   14.67 -syncrsimpl.indexval = Indexv\u00e4rdet ligger utanf\u00f6r intervallet
   14.68 +syncrsimpl.indexval = Indexv\u00e4rdet ligger utanf\u00f6r intervallet  
   14.69  syncrsimpl.noconflict = Denna kolumn st\u00e5r inte i konflikt
   14.70  syncrsimpl.syncnotpos = Synkronisering \u00e4r inte m\u00f6jlig
   14.71  syncrsimpl.valtores = V\u00e4rdet som ska analyseras kan antingen finnas i databasen eller i cachedrowset
   14.72 @@ -132,31 +141,27 @@
   14.73  wrsxmlreader.invalidcp = Slutet p\u00e5 RowSet har n\u00e5tts. Mark\u00f6rpositionen \u00e4r ogiltig.
   14.74  wrsxmlreader.readxml = readXML: {0}
   14.75  wrsxmlreader.parseerr = ** Tolkningsfel
   14.76 -wrsxmlreader.line =  , rad
   14.77 -wrsxmlreader.uri =  , URI 
   14.78  
   14.79  #WebRowSetXmlWriter exceptions
   14.80  wrsxmlwriter.ioex = IOException: {0}
   14.81 -wrsxmlwriter.sqlex = SQLException: {0} 
   14.82 +wrsxmlwriter.sqlex = SQLException: {0}
   14.83  wrsxmlwriter.failedwrite = Det gick inte att skriva v\u00e4rdet
   14.84  wsrxmlwriter.notproper = Ingen riktig typ
   14.85  
   14.86 -#XmlReaderContentHandle exceptions
   14.87 -xmlrch.errmap = Ett fel uppstod vid inst\u00e4llningen av f\u00f6ljande bild: {0} 
   14.88 -xmlrch.errmetadata = Ett fel uppstod vid inst\u00e4llningen av f\u00f6ljande metadata: {0} 
   14.89 +#XmlReaderContentHandler exceptions
   14.90 +xmlrch.errmap = Ett fel uppstod vid inst\u00e4llningen av f\u00f6ljande bild: {0}
   14.91 +xmlrch.errmetadata = Ett fel uppstod vid inst\u00e4llningen av f\u00f6ljande metadata: {0}
   14.92  xmlrch.errinsert = Ett fel uppstod n\u00e4r f\u00f6ljande v\u00e4rden skulle infogas: {0}
   14.93  xmlrch.errconstr = Ett fel uppstod n\u00e4r f\u00f6ljande rad skulle skapas: {0}
   14.94  xmlrch.errdel = Ett fel uppstod n\u00e4r f\u00f6ljande rad skulle raderas: {0}
   14.95  xmlrch.errinsert = Ett fel uppstod n\u00e4r f\u00f6ljande infogningsrad skulle skapas: {0}
   14.96  xmlrch.errinsdel = Ett fel uppstod n\u00e4r raden insdel skulle skapas: {0}
   14.97  xmlrch.errupdate = Ett fel uppstod n\u00e4r f\u00f6ljande uppdateringsrad skulle skapas: {0}
   14.98 -xmlrch errupdrow = Ett fel uppstod n\u00e4r f\u00f6ljande rad skulle uppdateras: {0}
   14.99 +xmlrch.errupdrow = Det gick inte att uppdatera raden:  {0}
  14.100  xmlrch.chars = tecken:
  14.101  xmlrch.badvalue = Felaktigt v\u00e4rde; egenskapen kan inte ha ett tomt v\u00e4rde
  14.102  xmlrch.badvalue1 = Felaktigt v\u00e4rde; metadatan kan inte ha ett tomt v\u00e4rde
  14.103 -xmlrch.warning = ** Varning!
  14.104 -xmlrch.line =  , rad
  14.105 -xmlrch.uri =  , URI 
  14.106 +xmlrch.warning =  ** Varning!
  14.107  
  14.108  #RIOptimisticProvider Exceptions
  14.109  riop.locking = Det finns inte st\u00f6d f\u00f6r denna l\u00e5sningsklassifikation
    15.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_CN.properties	Thu Apr 22 16:54:34 2010 -0700
    15.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_CN.properties	Thu Apr 29 13:53:09 2010 -0700
    15.3 @@ -1,5 +1,5 @@
    15.4  #
    15.5 -# Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
    15.6 +# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    15.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.8  #
    15.9  # This code is free software; you can redistribute it and/or modify it
   15.10 @@ -41,7 +41,7 @@
   15.11  cachedrowsetimpl.longfail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getLong \u5931\u8d25
   15.12  cachedrowsetimpl.floatfail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getFloat \u5931\u8d25
   15.13  cachedrowsetimpl.doublefail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getDouble \u5931\u8d25
   15.14 -cachedrowsetimpl.dtypemismt = \u6570\u636e\u7c7b\u578b\u4e0d\u5339\u914d
   15.15 +cachedrowsetimpl.dtypemismt = \u6570\u636e\u7c7b\u578b\u4e0d\u5339\u914d 
   15.16  cachedrowsetimpl.datefail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getDate \u5931\u8d25\uff0c\u65e0\u53ef\u7528\u8f6c\u6362
   15.17  cachedrowsetimpl.timefail = \u5bf9\u5217 {1} \u4e2d\u7684\u503c ({0}) \u6267\u884c getTime \u5931\u8d25\uff0c\u65e0\u53ef\u7528\u8f6c\u6362
   15.18  cachedrowsetimpl.posupdate = \u4e0d\u652f\u6301\u5b9a\u4f4d\u66f4\u65b0
   15.19 @@ -71,11 +71,13 @@
   15.20  cachedrowsetimpl.unsetmatch2 = \u4f7f\u7528\u5217 ID \u4f5c\u4e3a unsetMatchColumn \u7684\u53c2\u6570
   15.21  cachedrowsetimpl.numrows = \u884c\u6570\u5c0f\u4e8e\u96f6\u6216\u5c0f\u4e8e\u8981\u63d0\u53d6\u7684\u884c\u6570
   15.22  cachedrowsetimpl.startpos = \u8d77\u59cb\u4f4d\u7f6e\u4e0d\u80fd\u4e3a\u8d1f\u6570
   15.23 -cachedrowsetimpl.nextpage = \u5728\u8c03\u7528\u4e4b\u524d\u5148\u586b\u5145\u6570\u636e
   15.24 +cachedrowsetimpl.nextpage = \u5728\u8c03\u7528\u4e4b\u524d\u5148\u586b\u5145\u6570\u636e 
   15.25  cachedrowsetimpl.pagesize = \u9875\u9762\u5927\u5c0f\u4e0d\u80fd\u5c0f\u4e8e\u96f6
   15.26  cachedrowsetimpl.pagesize1 = \u9875\u9762\u5927\u5c0f\u4e0d\u80fd\u5927\u4e8e maxRows
   15.27  cachedrowsetimpl.fwdonly = ResultSet \u7684\u7c7b\u578b\u4e3a\u4ec5\u5411\u524d\u7c7b\u578b
   15.28  cachedrowsetimpl.type = \u7c7b\u578b\u4e3a: {0}
   15.29 +cachedrowsetimpl.opnotysupp = \u5c1a\u4e0d\u652f\u6301\u64cd\u4f5c
   15.30 +cachedrowsetimpl.featnotsupp = \u4e0d\u652f\u6301\u529f\u80fd
   15.31  
   15.32  # WebRowSetImpl exceptions
   15.33  webrowsetimpl.nullhash = \u65e0\u6cd5\u5b9e\u4f8b\u5316 WebRowSetImpl \u5b9e\u4f8b\u3002\u63d0\u4f9b\u7ed9\u6784\u9020\u51fd\u6570\u7684 Hashtable \u4e3a Null
   15.34 @@ -83,7 +85,7 @@
   15.35  webrowsetimpl.invalidrd = \u8bfb\u53d6\u5668\u65e0\u6548
   15.36  
   15.37  #FilteredRowSetImpl exceptions
   15.38 -filteredrowsetimpl.relative = relative: \u5149\u6807\u64cd\u4f5c\u65e0\u6548
   15.39 +filteredrowsetimpl.relative = relative: \u5149\u6807\u64cd\u4f5c\u65e0\u6548 
   15.40  filteredrowsetimpl.absolute = absolute: \u5149\u6807\u64cd\u4f5c\u65e0\u6548
   15.41  filteredrowsetimpl.notallowed = \u4e0d\u5141\u8bb8\u6b64\u503c\u901a\u8fc7\u8fc7\u6ee4\u5668
   15.42  
   15.43 @@ -95,6 +97,7 @@
   15.44  joinrowsetimpl.notsupported = \u4e0d\u652f\u6301\u6b64\u8fde\u63a5\u7c7b\u578b
   15.45  joinrowsetimpl.initerror = JoinRowSet \u521d\u59cb\u5316\u9519\u8bef
   15.46  joinrowsetimpl.genericerr = \u4e00\u822c JoinRowSet \u521d\u59cb\u5316\u9519\u8bef
   15.47 +joinrowsetimpl.emptyrowset = \u65e0\u6cd5\u5c06\u7a7a\u7684 rowset \u6dfb\u52a0\u5230\u6b64 JoinRowSet
   15.48  
   15.49  #JdbcRowSetImpl exceptions
   15.50  jdbcrowsetimpl.invalstate = \u72b6\u6001\u65e0\u6548
   15.51 @@ -108,22 +111,28 @@
   15.52  jdbcrowsetimpl.usecolname = \u4f7f\u7528\u5217\u540d\u4f5c\u4e3a unsetMatchColumn \u7684\u53c2\u6570
   15.53  jdbcrowsetimpl.usecolid = \u4f7f\u7528\u5217 ID \u4f5c\u4e3a unsetMatchColumn \u7684\u53c2\u6570
   15.54  jdbcrowsetimpl.resnotupd = ResultSet \u4e0d\u53ef\u66f4\u65b0
   15.55 +jdbcrowsetimpl.opnotysupp = \u5c1a\u4e0d\u652f\u6301\u64cd\u4f5c
   15.56 +jdbcrowsetimpl.featnotsupp = \u4e0d\u652f\u6301\u529f\u80fd
   15.57  
   15.58  #CachedRowSetReader exceptions
   15.59  crsreader.connect = (JNDI) \u65e0\u6cd5\u8fde\u63a5
   15.60  crsreader.paramtype = \u65e0\u6cd5\u63a8\u65ad\u53c2\u6570\u7c7b\u578b
   15.61 +crsreader.connecterr = RowSetReader \u53d1\u751f\u5185\u90e8\u9519\u8bef\uff1a\u6ca1\u6709\u8fde\u63a5\u6216\u547d\u4ee4
   15.62 +crsreader.datedetected = \u68c0\u6d4b\u5230\u65e5\u671f
   15.63 +crsreader.caldetected = \u68c0\u6d4b\u5230\u65e5\u5386
   15.64  
   15.65  #CachedRowSetWriter exceptions
   15.66  crswriter.connect = \u65e0\u6cd5\u8fdb\u884c\u8fde\u63a5
   15.67  crswriter.tname = writeData \u65e0\u6cd5\u786e\u5b9a\u8868\u540d
   15.68  crswriter.params1 = params1 \u7684\u503c: {0} 
   15.69  crswriter.params2 = params2 \u7684\u503c: {0} 
   15.70 +crswriter.conflictsno =  \u540c\u6b65\u65f6\u53d1\u751f\u51b2\u7a81 
   15.71  
   15.72  #InsertRow exceptions
   15.73  insertrow.novalue = \u5c1a\u672a\u63d2\u5165\u4efb\u4f55\u503c
   15.74  
   15.75  #SyncResolverImpl exceptions
   15.76 -syncrsimpl.indexval = \u7d22\u5f15\u503c\u8d85\u51fa\u8303\u56f4
   15.77 +syncrsimpl.indexval = \u7d22\u5f15\u503c\u8d85\u51fa\u8303\u56f4  
   15.78  syncrsimpl.noconflict = \u6b64\u5217\u4e0d\u51b2\u7a81
   15.79  syncrsimpl.syncnotpos = \u4e0d\u80fd\u540c\u6b65
   15.80  syncrsimpl.valtores = \u8981\u89e3\u6790\u7684\u503c\u53ef\u4ee5\u5728\u6570\u636e\u5e93\u4e2d\uff0c\u4e5f\u53ef\u4ee5\u5728 CachedRowSet \u4e2d
   15.81 @@ -132,37 +141,30 @@
   15.82  wrsxmlreader.invalidcp = \u5df2\u5230\u8fbe RowSet \u7684\u7ed3\u5c3e\u3002\u5149\u6807\u4f4d\u7f6e\u65e0\u6548
   15.83  wrsxmlreader.readxml = readXML: {0}
   15.84  wrsxmlreader.parseerr = ** \u8bed\u6cd5\u89e3\u6790\u9519\u8bef
   15.85 -wrsxmlreader.line =  \uff0c\u884c 
   15.86 -wrsxmlreader.uri =  \uff0curi 
   15.87  
   15.88  #WebRowSetXmlWriter exceptions
   15.89  wrsxmlwriter.ioex = IOException: {0}
   15.90 -wrsxmlwriter.sqlex = SQLException: {0} 
   15.91 +wrsxmlwriter.sqlex = SQLException: {0}
   15.92  wrsxmlwriter.failedwrite = \u65e0\u6cd5\u5199\u5165\u503c
   15.93  wsrxmlwriter.notproper = \u7c7b\u578b\u4e0d\u6b63\u786e
   15.94  
   15.95 -#XmlReaderContentHandle exceptions
   15.96 -xmlrch.errmap = \u8bbe\u7f6e\u6620\u5c04\u65f6\u51fa\u9519: {0} 
   15.97 -xmlrch.errmetadata = \u8bbe\u7f6e\u5143\u6570\u636e\u65f6\u51fa\u9519: {0} 
   15.98 +#XmlReaderContentHandler exceptions
   15.99 +xmlrch.errmap = \u8bbe\u7f6e\u6620\u5c04\u65f6\u51fa\u9519: {0}
  15.100 +xmlrch.errmetadata = \u8bbe\u7f6e\u5143\u6570\u636e\u65f6\u51fa\u9519: {0}
  15.101  xmlrch.errinsert = \u63d2\u5165\u503c\u65f6\u51fa\u9519: {0}
  15.102  xmlrch.errconstr = \u6784\u9020\u884c\u65f6\u51fa\u9519: {0}
  15.103  xmlrch.errdel = \u5220\u9664\u884c\u65f6\u51fa\u9519: {0}
  15.104  xmlrch.errinsert = \u6784\u9020\u63d2\u5165\u884c\u65f6\u51fa\u9519: {0}
  15.105  xmlrch.errinsdel = \u6784\u9020 insdel \u884c\u65f6\u51fa\u9519: {0}
  15.106  xmlrch.errupdate = \u6784\u9020\u66f4\u65b0\u884c\u65f6\u51fa\u9519: {0}
  15.107 -xmlrch errupdrow = \u66f4\u65b0\u884c\u65f6\u51fa\u9519: {0}
  15.108 +xmlrch.errupdrow = \u66f4\u65b0\u884c\u65f6\u51fa\u9519\uff1a{0}
  15.109  xmlrch.chars = \u5b57\u7b26:
  15.110  xmlrch.badvalue = \u503c\u9519\u8bef\uff1b\u5c5e\u6027\u4e0d\u53ef\u4e3a Null
  15.111  xmlrch.badvalue1 = \u503c\u9519\u8bef\uff1b\u5143\u6570\u636e\u4e0d\u53ef\u4e3a Null
  15.112 -xmlrch.warning = ** \u8b66\u544a
  15.113 -xmlrch.line =  \uff0c\u884c 
  15.114 -xmlrch.uri =  \uff0curi 
  15.115 +xmlrch.warning =  ** \u8b66\u544a
  15.116  
  15.117  #RIOptimisticProvider Exceptions
  15.118  riop.locking = \u4e0d\u652f\u6301\u9501\u5b9a\u5206\u7c7b
  15.119  
  15.120  #RIXMLProvider exceptions
  15.121  rixml.unsupp = \u4e0d\u652f\u6301 RIXMLProvider
  15.122 -
  15.123 -
  15.124 -
    16.1 --- a/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_TW.properties	Thu Apr 22 16:54:34 2010 -0700
    16.2 +++ b/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_TW.properties	Thu Apr 29 13:53:09 2010 -0700
    16.3 @@ -1,5 +1,5 @@
    16.4  #
    16.5 -# Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
    16.6 +# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    16.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    16.8  #
    16.9  # This code is free software; you can redistribute it and/or modify it
   16.10 @@ -41,7 +41,7 @@
   16.11  cachedrowsetimpl.longfail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getLong \u5931\u6557
   16.12  cachedrowsetimpl.floatfail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getFloat \u5931\u6557
   16.13  cachedrowsetimpl.doublefail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getDouble \u5931\u6557
   16.14 -cachedrowsetimpl.dtypemismt = \u8cc7\u6599\u985e\u578b\u4e0d\u5339\u914d
   16.15 +cachedrowsetimpl.dtypemismt = \u8cc7\u6599\u985e\u578b\u4e0d\u5339\u914d 
   16.16  cachedrowsetimpl.datefail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getDate \u5931\u6557\uff0c\u672a\u9032\u884c\u8f49\u63db
   16.17  cachedrowsetimpl.timefail = \u5c0d\u6b04 {1} \u4e2d\u7684\u503c ( {0} ) \u57f7\u884c getTime \u5931\u6557\uff0c\u672a\u9032\u884c\u8f49\u63db
   16.18  cachedrowsetimpl.posupdate = \u4e0d\u652f\u63f4\u5b9a\u4f4d\u7684\u66f4\u65b0
   16.19 @@ -71,11 +71,13 @@
   16.20  cachedrowsetimpl.unsetmatch2 = \u4f7f\u7528\u6b04 ID \u505a\u70ba unsetMatchColumn \u7684\u5f15\u6578
   16.21  cachedrowsetimpl.numrows = \u5217\u6578\u5c0f\u65bc\u96f6\u6216\u5c0f\u65bc\u64f7\u53d6\u5927\u5c0f
   16.22  cachedrowsetimpl.startpos = \u8d77\u59cb\u4f4d\u7f6e\u4e0d\u80fd\u70ba\u8ca0
   16.23 -cachedrowsetimpl.nextpage = \u5728\u547c\u53eb\u4e4b\u524d\u690d\u5165\u8cc7\u6599
   16.24 +cachedrowsetimpl.nextpage = \u5728\u547c\u53eb\u4e4b\u524d\u690d\u5165\u8cc7\u6599 
   16.25  cachedrowsetimpl.pagesize = \u9801\u9762\u5927\u5c0f\u4e0d\u80fd\u5c0f\u65bc\u96f6
   16.26  cachedrowsetimpl.pagesize1 = \u9801\u9762\u5927\u5c0f\u4e0d\u80fd\u5927\u65bc maxRows
   16.27  cachedrowsetimpl.fwdonly = ResultSet \u53ea\u80fd\u5411\u524d\u9032\u884c
   16.28  cachedrowsetimpl.type = \u985e\u578b\u662f\uff1a{0}
   16.29 +cachedrowsetimpl.opnotysupp = \u5c1a\u672a\u652f\u63f4\u6b64\u4f5c\u696d
   16.30 +cachedrowsetimpl.featnotsupp = \u4e0d\u652f\u63f4\u6b64\u529f\u80fd
   16.31  
   16.32  # WebRowSetImpl exceptions
   16.33  webrowsetimpl.nullhash = \u7121\u6cd5\u5275\u8a2d WebRowSetImpl \u5be6\u4f8b\u3002\u70ba\u5efa\u69cb\u5b50\u63d0\u4f9b\u7684 Hashtable \u70ba\u7a7a
   16.34 @@ -83,7 +85,7 @@
   16.35  webrowsetimpl.invalidrd = \u8b80\u53d6\u5668\u7121\u6548
   16.36  
   16.37  #FilteredRowSetImpl exceptions
   16.38 -filteredrowsetimpl.relative = relative\uff1a\u6e38\u6a19\u4f5c\u696d\u7121\u6548
   16.39 +filteredrowsetimpl.relative = relative\uff1a\u6e38\u6a19\u4f5c\u696d\u7121\u6548 
   16.40  filteredrowsetimpl.absolute = absolute\uff1a\u6e38\u6a19\u4f5c\u696d\u7121\u6548
   16.41  filteredrowsetimpl.notallowed = \u4e0d\u5141\u8a31\u6b64\u503c\u901a\u904e\u904e\u6ffe\u5668
   16.42  
   16.43 @@ -95,6 +97,7 @@
   16.44  joinrowsetimpl.notsupported = \u4e0d\u652f\u63f4\u6b64\u985e\u9023\u7d50
   16.45  joinrowsetimpl.initerror = JoinRowSet \u521d\u59cb\u5316\u932f\u8aa4
   16.46  joinrowsetimpl.genericerr = \u5e38\u898f\u7684 joinrowset \u521d\u59cb\u5316\u932f\u8aa4
   16.47 +joinrowsetimpl.emptyrowset = \u4e0d\u53ef\u5c07\u7a7a\u767d\u7684 rowset \u589e\u52a0\u81f3\u6b64 JoinRowSet
   16.48  
   16.49  #JdbcRowSetImpl exceptions
   16.50  jdbcrowsetimpl.invalstate = \u72c0\u614b\u7121\u6548
   16.51 @@ -108,22 +111,28 @@
   16.52  jdbcrowsetimpl.usecolname = \u4f7f\u7528\u6b04\u540d\u505a\u70ba unsetMatchColumn \u7684\u5f15\u6578
   16.53  jdbcrowsetimpl.usecolid = \u4f7f\u7528\u6b04 ID \u505a\u70ba unsetMatchColumn \u7684\u5f15\u6578
   16.54  jdbcrowsetimpl.resnotupd = ResultSet \u4e0d\u53ef\u66f4\u65b0
   16.55 +jdbcrowsetimpl.opnotysupp = \u5c1a\u672a\u652f\u63f4\u6b64\u4f5c\u696d
   16.56 +jdbcrowsetimpl.featnotsupp = \u4e0d\u652f\u63f4\u6b64\u529f\u80fd
   16.57  
   16.58  #CachedRowSetReader exceptions
   16.59  crsreader.connect = (JNDI) \u7121\u6cd5\u9023\u7dda
   16.60  crsreader.paramtype = \u7121\u6cd5\u63a8\u65b7\u53c3\u6578\u985e\u578b
   16.61 +crsreader.connecterr = RowSetReader \u767c\u751f\u5167\u90e8\u932f\u8aa4\uff1a\u6c92\u6709\u9023\u7dda\u6216\u6307\u4ee4
   16.62 +crsreader.datedetected = \u5075\u6e2c\u5230\u65e5\u671f
   16.63 +crsreader.caldetected = \u5075\u6e2c\u5230\u884c\u4e8b\u66c6
   16.64  
   16.65  #CachedRowSetWriter exceptions
   16.66  crswriter.connect = \u7121\u6cd5\u5efa\u7acb\u9023\u7dda
   16.67  crswriter.tname = writeData \u4e0d\u80fd\u6c7a\u5b9a\u8868\u540d\u7a31
   16.68 -crswriter.params1 = params1 \u7684\u503c\uff1a{0}
   16.69 -crswriter.params2 = params2 \u7684\u503c\uff1a{0}
   16.70 +crswriter.params1 = params1 \u7684\u503c\uff1a{0} 
   16.71 +crswriter.params2 = params2 \u7684\u503c\uff1a{0} 
   16.72 +crswriter.conflictsno =  \u540c\u6b65\u5316\u6642\u767c\u751f\u885d\u7a81 
   16.73  
   16.74  #InsertRow exceptions
   16.75  insertrow.novalue = \u5c1a\u672a\u63d2\u5165\u503c
   16.76  
   16.77  #SyncResolverImpl exceptions
   16.78 -syncrsimpl.indexval = \u7d22\u5f15\u503c\u8d85\u51fa\u7bc4\u570d
   16.79 +syncrsimpl.indexval = \u7d22\u5f15\u503c\u8d85\u51fa\u7bc4\u570d  
   16.80  syncrsimpl.noconflict = \u6b64\u6b04\u4e0d\u885d\u7a81
   16.81  syncrsimpl.syncnotpos = \u4e0d\u53ef\u80fd\u540c\u6b65\u5316
   16.82  syncrsimpl.valtores = \u8981\u89e3\u6790\u7684\u503c\u53ef\u4f4d\u65bc\u8cc7\u6599\u5eab\u6216 cachedrowset \u4e2d
   16.83 @@ -132,8 +141,6 @@
   16.84  wrsxmlreader.invalidcp = \u5df2\u5230\u9054 RowSet \u672b\u5c3e\u3002\u6e38\u6a19\u4f4d\u7f6e\u7121\u6548
   16.85  wrsxmlreader.readxml = readXML\uff1a{0}
   16.86  wrsxmlreader.parseerr = ** \u5256\u6790\u932f\u8aa4
   16.87 -wrsxmlreader.line =  , \u884c
   16.88 -wrsxmlreader.uri =  , uri
   16.89  
   16.90  #WebRowSetXmlWriter exceptions
   16.91  wrsxmlwriter.ioex = IOException\uff1a{0}
   16.92 @@ -141,28 +148,23 @@
   16.93  wrsxmlwriter.failedwrite = \u5beb\u5165\u503c\u5931\u6557
   16.94  wsrxmlwriter.notproper = \u4e0d\u662f\u6b63\u78ba\u985e\u578b
   16.95  
   16.96 -#XmlReaderContentHandle exceptions
   16.97 +#XmlReaderContentHandler exceptions
   16.98  xmlrch.errmap = \u8a2d\u5b9a\u5c0d\u6620\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
   16.99  xmlrch.errmetadata = \u8a2d\u5b9a\u5143\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
  16.100 -xmlrch.errinsert = \u63d2\u5165\u503c\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
  16.101 +xmlrch.errinsert = \u63d2\u5165\u503c\u6642\u767c\u751f\u932f\u8aa4: {0}
  16.102  xmlrch.errconstr = \u5efa\u69cb\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
  16.103  xmlrch.errdel = \u522a\u9664\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
  16.104  xmlrch.errinsert = \u5efa\u69cb\u63d2\u5165\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
  16.105  xmlrch.errinsdel = \u5efa\u69cb insdel \u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
  16.106  xmlrch.errupdate = \u5efa\u69cb\u66f4\u65b0\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
  16.107 -xmlrch errupdrow = \u66f4\u65b0\u5217\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
  16.108 +xmlrch.errupdrow = \u66f4\u65b0\u5217\u6642\u767c\u751f\u932f\u8aa4: {0}
  16.109  xmlrch.chars = \u5b57\u5143\uff1a
  16.110  xmlrch.badvalue = \u932f\u8aa4\u7684\u503c\uff1b\u7279\u6027\u4e0d\u80fd\u70ba\u7a7a
  16.111  xmlrch.badvalue1 = \u932f\u8aa4\u7684\u503c\uff1b\u5143\u8cc7\u6599\u4e0d\u80fd\u70ba\u7a7a
  16.112 -xmlrch.warning = ** \u8b66\u544a
  16.113 -xmlrch.line =  , \u884c
  16.114 -xmlrch.uri =  , uri
  16.115 +xmlrch.warning =  ** \u8b66\u544a
  16.116  
  16.117  #RIOptimisticProvider Exceptions
  16.118  riop.locking = \u4e0d\u652f\u63f4\u9396\u5b9a\u5206\u985e
  16.119  
  16.120  #RIXMLProvider exceptions
  16.121  rixml.unsupp = RIXMLProvider \u4e0d\u652f\u63f4
  16.122 -
  16.123 -
  16.124 -
    17.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties	Thu Apr 22 16:54:34 2010 -0700
    17.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties	Thu Apr 29 13:53:09 2010 -0700
    17.3 @@ -49,12 +49,11 @@
    17.4  FileChooser.directoryDescriptionText=Verzeichnis
    17.5  FileChooser.newFolderErrorText=Fehler beim Erstellen eines neuen Ordners
    17.6  FileChooser.newFolderErrorSeparator= : 
    17.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    17.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    17.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   17.10 -FileChooser.renameErrorText=Cannot rename {0}
   17.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   17.12 -  Specify a different file name.
   17.13 +FileChooser.newFolderParentDoesntExistTitleText=Ordner kann nicht erstellt werden
   17.14 +FileChooser.newFolderParentDoesntExistText=Der Ordner kann nicht erstellt werden.\n\nDas System kann den angegebenen Pfad nicht finden.
   17.15 +FileChooser.renameErrorTitleText=Fehler beim Umbenennen der Datei oder des Ordners
   17.16 +FileChooser.renameErrorText={0} kann nicht umbenannt werden
   17.17 +FileChooser.renameErrorFileExistsText={0} kann nicht umbenannt werden: Es ist bereits eine Datei mit diesem Namen vorhanden. Geben Sie einen anderen Dateinamen an. 
   17.18  FileChooser.acceptAllFileFilterText=Alle Dateien
   17.19  FileChooser.cancelButtonText=Abbrechen
   17.20  FileChooser.cancelButtonMnemonic=65
   17.21 @@ -108,16 +107,16 @@
   17.22  # xxxDisplayedMnemonicIndex.
   17.23  ColorChooser.hsvNameText=HSV
   17.24  ColorChooser.hsvMnemonic=72
   17.25 -ColorChooser.hsvHueText=Hue
   17.26 -ColorChooser.hsvSaturationText=Saturation
   17.27 -ColorChooser.hsvValueText=Value
   17.28 -ColorChooser.hsvTransparencyText=Transparency
   17.29 +ColorChooser.hsvHueText=Farbton
   17.30 +ColorChooser.hsvSaturationText=S\u00e4ttigung
   17.31 +ColorChooser.hsvValueText=Wert
   17.32 +ColorChooser.hsvTransparencyText=Transparenz
   17.33  ColorChooser.hslNameText=HSL
   17.34  ColorChooser.hslMnemonic=76
   17.35 -ColorChooser.hslHueText=Hue
   17.36 -ColorChooser.hslSaturationText=Saturation
   17.37 -ColorChooser.hslLightnessText=Lightness
   17.38 -ColorChooser.hslTransparencyText=Transparency
   17.39 +ColorChooser.hslHueText=Farbton
   17.40 +ColorChooser.hslSaturationText=S\u00e4ttigung
   17.41 +ColorChooser.hslLightnessText=Helligkeit
   17.42 +ColorChooser.hslTransparencyText=Transparenz
   17.43  ColorChooser.rgbNameText=RGB
   17.44  ColorChooser.rgbMnemonic=71
   17.45  ColorChooser.rgbRedText=Rot
   17.46 @@ -127,14 +126,14 @@
   17.47  ColorChooser.rgbBlueText=Blau
   17.48  ColorChooser.rgbBlueMnemonic=66
   17.49  ColorChooser.rgbAlphaText=Alpha
   17.50 -ColorChooser.rgbHexCodeText=Color Code
   17.51 +ColorChooser.rgbHexCodeText=Farbcode
   17.52  ColorChooser.rgbHexCodeMnemonic=67
   17.53  ColorChooser.cmykNameText=CMYK
   17.54  ColorChooser.cmykMnemonic=77
   17.55  ColorChooser.cmykCyanText=Cyan
   17.56  ColorChooser.cmykMagentaText=Magenta
   17.57 -ColorChooser.cmykYellowText=Yellow
   17.58 -ColorChooser.cmykBlackText=Black
   17.59 +ColorChooser.cmykYellowText=Gelb
   17.60 +ColorChooser.cmykBlackText=Schwarz
   17.61  ColorChooser.cmykAlphaText=Alpha
   17.62  
   17.63  ############ OPTION PANE STRINGS #############
    18.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties	Thu Apr 22 16:54:34 2010 -0700
    18.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties	Thu Apr 29 13:53:09 2010 -0700
    18.3 @@ -49,12 +49,11 @@
    18.4  FileChooser.directoryDescriptionText=Directorio
    18.5  FileChooser.newFolderErrorText=Error al crear una nueva carpeta
    18.6  FileChooser.newFolderErrorSeparator= : 
    18.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    18.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    18.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   18.10 -FileChooser.renameErrorText=Cannot rename {0}
   18.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   18.12 -  Specify a different file name.
   18.13 +FileChooser.newFolderParentDoesntExistTitleText=No se ha podido crear la carpeta
   18.14 +FileChooser.newFolderParentDoesntExistText=No se ha podido crear la carpeta.\n\nEl sistema no puede encontrar la ruta especificada.
   18.15 +FileChooser.renameErrorTitleText=Error al cambiar de nombre el archivo o la carpeta
   18.16 +FileChooser.renameErrorText=No se puede cambiar de nombre {0}
   18.17 +FileChooser.renameErrorFileExistsText=No se puede cambiar de nombre {0}: Ya existe un archivo con el nombre que ha especificado. Especifique otro nombre de archivo. 
   18.18  FileChooser.acceptAllFileFilterText=Todos los archivos
   18.19  FileChooser.cancelButtonText=Cancelar
   18.20  FileChooser.cancelButtonMnemonic=67
   18.21 @@ -108,16 +107,16 @@
   18.22  # xxxDisplayedMnemonicIndex.
   18.23  ColorChooser.hsvNameText=HSV
   18.24  ColorChooser.hsvMnemonic=72
   18.25 -ColorChooser.hsvHueText=Hue
   18.26 -ColorChooser.hsvSaturationText=Saturation
   18.27 -ColorChooser.hsvValueText=Value
   18.28 -ColorChooser.hsvTransparencyText=Transparency
   18.29 +ColorChooser.hsvHueText=Matriz
   18.30 +ColorChooser.hsvSaturationText=Saturaci\u00f3n
   18.31 +ColorChooser.hsvValueText=Valor
   18.32 +ColorChooser.hsvTransparencyText=Transparencia
   18.33  ColorChooser.hslNameText=HSL
   18.34  ColorChooser.hslMnemonic=76
   18.35 -ColorChooser.hslHueText=Hue
   18.36 -ColorChooser.hslSaturationText=Saturation
   18.37 -ColorChooser.hslLightnessText=Lightness
   18.38 -ColorChooser.hslTransparencyText=Transparency
   18.39 +ColorChooser.hslHueText=Matriz
   18.40 +ColorChooser.hslSaturationText=Saturaci\u00f3n
   18.41 +ColorChooser.hslLightnessText=Brillo
   18.42 +ColorChooser.hslTransparencyText=Transparencia
   18.43  ColorChooser.rgbNameText=RGB
   18.44  ColorChooser.rgbMnemonic=71
   18.45  ColorChooser.rgbRedText=Rojo
   18.46 @@ -127,14 +126,14 @@
   18.47  ColorChooser.rgbBlueText=Azul
   18.48  ColorChooser.rgbBlueMnemonic=76
   18.49  ColorChooser.rgbAlphaText=Alpha
   18.50 -ColorChooser.rgbHexCodeText=Color Code
   18.51 +ColorChooser.rgbHexCodeText=C\u00f3digo de color
   18.52  ColorChooser.rgbHexCodeMnemonic=67
   18.53  ColorChooser.cmykNameText=CMYK
   18.54  ColorChooser.cmykMnemonic=77
   18.55 -ColorChooser.cmykCyanText=Cyan
   18.56 +ColorChooser.cmykCyanText=Cian
   18.57  ColorChooser.cmykMagentaText=Magenta
   18.58 -ColorChooser.cmykYellowText=Yellow
   18.59 -ColorChooser.cmykBlackText=Black
   18.60 +ColorChooser.cmykYellowText=Amarillo
   18.61 +ColorChooser.cmykBlackText=Negro
   18.62  ColorChooser.cmykAlphaText=Alpha
   18.63  
   18.64  ############ OPTION PANE STRINGS #############
    19.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties	Thu Apr 22 16:54:34 2010 -0700
    19.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties	Thu Apr 29 13:53:09 2010 -0700
    19.3 @@ -49,12 +49,11 @@
    19.4  FileChooser.directoryDescriptionText=R\u00e9pertoire
    19.5  FileChooser.newFolderErrorText=Erreur lors de la cr\u00e9ation du nouveau dossier
    19.6  FileChooser.newFolderErrorSeparator= : 
    19.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    19.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    19.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   19.10 -FileChooser.renameErrorText=Cannot rename {0}
   19.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   19.12 -  Specify a different file name.
   19.13 +FileChooser.newFolderParentDoesntExistTitleText=Impossible de cr\u00e9er le dossier
   19.14 +FileChooser.newFolderParentDoesntExistText=Impossible de cr\u00e9er le dossier.\n\nLe syst\u00e8me ne trouve pas le chemin sp\u00e9cifi\u00e9.
   19.15 +FileChooser.renameErrorTitleText=Erreur lors de la modification du nom du fichier ou du dossier
   19.16 +FileChooser.renameErrorText=Impossible de renommer {0}
   19.17 +FileChooser.renameErrorFileExistsText=Impossible de renommer {0}\u00a0: un fichier portant ce nom existe d\u00e9j\u00e0. Choisissez un nom diff\u00e9rent. 
   19.18  FileChooser.acceptAllFileFilterText=Tous les fichiers
   19.19  FileChooser.cancelButtonText=Annuler
   19.20  FileChooser.cancelButtonMnemonic=65
   19.21 @@ -108,16 +107,16 @@
   19.22  # xxxDisplayedMnemonicIndex.
   19.23  ColorChooser.hsvNameText=HSV
   19.24  ColorChooser.hsvMnemonic=72
   19.25 -ColorChooser.hsvHueText=Hue
   19.26 +ColorChooser.hsvHueText=Teinte
   19.27  ColorChooser.hsvSaturationText=Saturation
   19.28 -ColorChooser.hsvValueText=Value
   19.29 -ColorChooser.hsvTransparencyText=Transparency
   19.30 +ColorChooser.hsvValueText=Valeur
   19.31 +ColorChooser.hsvTransparencyText=Transparence
   19.32  ColorChooser.hslNameText=HSL
   19.33  ColorChooser.hslMnemonic=76
   19.34 -ColorChooser.hslHueText=Hue
   19.35 +ColorChooser.hslHueText=Teinte
   19.36  ColorChooser.hslSaturationText=Saturation
   19.37 -ColorChooser.hslLightnessText=Lightness
   19.38 -ColorChooser.hslTransparencyText=Transparency
   19.39 +ColorChooser.hslLightnessText=Clart\u00e9
   19.40 +ColorChooser.hslTransparencyText=Transparence
   19.41  ColorChooser.rgbNameText=RVB
   19.42  ColorChooser.rgbMnemonic=86
   19.43  ColorChooser.rgbRedText=Rouge
   19.44 @@ -127,14 +126,14 @@
   19.45  ColorChooser.rgbBlueText=Bleu
   19.46  ColorChooser.rgbBlueMnemonic=66
   19.47  ColorChooser.rgbAlphaText=Alpha
   19.48 -ColorChooser.rgbHexCodeText=Color Code
   19.49 +ColorChooser.rgbHexCodeText=Code couleur
   19.50  ColorChooser.rgbHexCodeMnemonic=67
   19.51  ColorChooser.cmykNameText=CMYK
   19.52  ColorChooser.cmykMnemonic=77
   19.53  ColorChooser.cmykCyanText=Cyan
   19.54  ColorChooser.cmykMagentaText=Magenta
   19.55 -ColorChooser.cmykYellowText=Yellow
   19.56 -ColorChooser.cmykBlackText=Black
   19.57 +ColorChooser.cmykYellowText=Jaune
   19.58 +ColorChooser.cmykBlackText=Noir
   19.59  ColorChooser.cmykAlphaText=Alpha
   19.60  
   19.61  ############ OPTION PANE STRINGS #############
    20.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties	Thu Apr 22 16:54:34 2010 -0700
    20.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties	Thu Apr 29 13:53:09 2010 -0700
    20.3 @@ -49,12 +49,11 @@
    20.4  FileChooser.directoryDescriptionText=Directory
    20.5  FileChooser.newFolderErrorText=Errore durante la creazione della nuova cartella
    20.6  FileChooser.newFolderErrorSeparator= : 
    20.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    20.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    20.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   20.10 -FileChooser.renameErrorText=Cannot rename {0}
   20.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   20.12 -  Specify a different file name.
   20.13 +FileChooser.newFolderParentDoesntExistTitleText=Impossibile creare la cartella
   20.14 +FileChooser.newFolderParentDoesntExistText=Impossibile creare  la cartella.\n\nPercorso specificato non trovato nel sistema.
   20.15 +FileChooser.renameErrorTitleText=Errore di ridenominazione del file o della cartella
   20.16 +FileChooser.renameErrorText=Impossibile rinominare {0}
   20.17 +FileChooser.renameErrorFileExistsText=Impossibile rinominare {0}: esiste gi\u00e0 un file con il nome specificato. Specificare un nome file alternativo. 
   20.18  FileChooser.acceptAllFileFilterText=Tutti i file
   20.19  FileChooser.cancelButtonText=Annulla
   20.20  FileChooser.cancelButtonMnemonic=65
   20.21 @@ -108,16 +107,16 @@
   20.22  # xxxDisplayedMnemonicIndex.
   20.23  ColorChooser.hsvNameText=HSV
   20.24  ColorChooser.hsvMnemonic=72
   20.25 -ColorChooser.hsvHueText=Hue
   20.26 -ColorChooser.hsvSaturationText=Saturation
   20.27 -ColorChooser.hsvValueText=Value
   20.28 -ColorChooser.hsvTransparencyText=Transparency
   20.29 +ColorChooser.hsvHueText=Tonalit\u00e0
   20.30 +ColorChooser.hsvSaturationText=Saturazione
   20.31 +ColorChooser.hsvValueText=Valore
   20.32 +ColorChooser.hsvTransparencyText=Trasparenza
   20.33  ColorChooser.hslNameText=HSL
   20.34  ColorChooser.hslMnemonic=76
   20.35 -ColorChooser.hslHueText=Hue
   20.36 -ColorChooser.hslSaturationText=Saturation
   20.37 -ColorChooser.hslLightnessText=Lightness
   20.38 -ColorChooser.hslTransparencyText=Transparency
   20.39 +ColorChooser.hslHueText=Tonalit\u00e0
   20.40 +ColorChooser.hslSaturationText=Saturazione
   20.41 +ColorChooser.hslLightnessText=Luminosit\u00e0
   20.42 +ColorChooser.hslTransparencyText=Trasparenza
   20.43  ColorChooser.rgbNameText=RGB
   20.44  ColorChooser.rgbMnemonic=71
   20.45  ColorChooser.rgbRedText=Rosso
   20.46 @@ -126,16 +125,16 @@
   20.47  ColorChooser.rgbGreenMnemonic=69
   20.48  ColorChooser.rgbBlueText=Blu
   20.49  ColorChooser.rgbBlueMnemonic=66
   20.50 -ColorChooser.rgbAlphaText=Alpha
   20.51 -ColorChooser.rgbHexCodeText=Color Code
   20.52 +ColorChooser.rgbAlphaText=Alfa
   20.53 +ColorChooser.rgbHexCodeText=Codice colore
   20.54  ColorChooser.rgbHexCodeMnemonic=67
   20.55  ColorChooser.cmykNameText=CMYK
   20.56  ColorChooser.cmykMnemonic=77
   20.57 -ColorChooser.cmykCyanText=Cyan
   20.58 +ColorChooser.cmykCyanText=Ciano
   20.59  ColorChooser.cmykMagentaText=Magenta
   20.60 -ColorChooser.cmykYellowText=Yellow
   20.61 -ColorChooser.cmykBlackText=Black
   20.62 -ColorChooser.cmykAlphaText=Alpha
   20.63 +ColorChooser.cmykYellowText=Giallo
   20.64 +ColorChooser.cmykBlackText=Nero
   20.65 +ColorChooser.cmykAlphaText=Alfa
   20.66  
   20.67  ############ OPTION PANE STRINGS #############
   20.68  # Mnemonic keys correspond to KeyEvent.VK_XXX constant
    21.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties	Thu Apr 22 16:54:34 2010 -0700
    21.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties	Thu Apr 29 13:53:09 2010 -0700
    21.3 @@ -49,12 +49,11 @@
    21.4  FileChooser.directoryDescriptionText=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea
    21.5  FileChooser.newFolderErrorText=\u65b0\u898f\u30d5\u30a9\u30eb\u30c0\u306e\u4f5c\u6210\u306b\u5931\u6557
    21.6  FileChooser.newFolderErrorSeparator= : 
    21.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    21.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    21.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   21.10 -FileChooser.renameErrorText=Cannot rename {0}
   21.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   21.12 -  Specify a different file name.
   21.13 +FileChooser.newFolderParentDoesntExistTitleText=\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093
   21.14 +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
   21.15 +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
   21.16 +FileChooser.renameErrorText={0} \u306e\u540d\u524d\u3092\u5909\u66f4\u3067\u304d\u307e\u305b\u3093\u3002
   21.17 +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 
   21.18  FileChooser.acceptAllFileFilterText=\u3059\u3079\u3066\u306e\u30d5\u30a1\u30a4\u30eb
   21.19  FileChooser.cancelButtonText=\u53d6\u6d88\u3057
   21.20  FileChooser.cancelButtonMnemonic=67
   21.21 @@ -108,16 +107,16 @@
   21.22  # xxxDisplayedMnemonicIndex.
   21.23  ColorChooser.hsvNameText=HSV
   21.24  ColorChooser.hsvMnemonic=72
   21.25 -ColorChooser.hsvHueText=Hue
   21.26 -ColorChooser.hsvSaturationText=Saturation
   21.27 -ColorChooser.hsvValueText=Value
   21.28 -ColorChooser.hsvTransparencyText=Transparency
   21.29 +ColorChooser.hsvHueText=\u8272\u5408\u3044
   21.30 +ColorChooser.hsvSaturationText=\u5f69\u5ea6
   21.31 +ColorChooser.hsvValueText=\u5024
   21.32 +ColorChooser.hsvTransparencyText=\u900f\u660e\u5ea6
   21.33  ColorChooser.hslNameText=HSL
   21.34  ColorChooser.hslMnemonic=76
   21.35 -ColorChooser.hslHueText=Hue
   21.36 -ColorChooser.hslSaturationText=Saturation
   21.37 -ColorChooser.hslLightnessText=Lightness
   21.38 -ColorChooser.hslTransparencyText=Transparency
   21.39 +ColorChooser.hslHueText=\u8272\u5408\u3044
   21.40 +ColorChooser.hslSaturationText=\u5f69\u5ea6
   21.41 +ColorChooser.hslLightnessText=\u660e\u5ea6
   21.42 +ColorChooser.hslTransparencyText=\u900f\u660e\u5ea6
   21.43  ColorChooser.rgbNameText=RGB
   21.44  ColorChooser.rgbMnemonic=71
   21.45  ColorChooser.rgbRedText=\u8d64(D)
   21.46 @@ -126,16 +125,16 @@
   21.47  ColorChooser.rgbGreenMnemonic=78
   21.48  ColorChooser.rgbBlueText=\u9752(B)
   21.49  ColorChooser.rgbBlueMnemonic=66
   21.50 -ColorChooser.rgbAlphaText=Alpha
   21.51 -ColorChooser.rgbHexCodeText=Color Code
   21.52 +ColorChooser.rgbAlphaText=\u30a2\u30eb\u30d5\u30a1
   21.53 +ColorChooser.rgbHexCodeText=\u8272\u30b3\u30fc\u30c9
   21.54  ColorChooser.rgbHexCodeMnemonic=67
   21.55  ColorChooser.cmykNameText=CMYK
   21.56  ColorChooser.cmykMnemonic=77
   21.57 -ColorChooser.cmykCyanText=Cyan
   21.58 -ColorChooser.cmykMagentaText=Magenta
   21.59 -ColorChooser.cmykYellowText=Yellow
   21.60 -ColorChooser.cmykBlackText=Black
   21.61 -ColorChooser.cmykAlphaText=Alpha
   21.62 +ColorChooser.cmykCyanText=\u30b7\u30a2\u30f3
   21.63 +ColorChooser.cmykMagentaText=\u30de\u30bc\u30f3\u30c0
   21.64 +ColorChooser.cmykYellowText=\u9ec4
   21.65 +ColorChooser.cmykBlackText=\u9ed2
   21.66 +ColorChooser.cmykAlphaText=\u30a2\u30eb\u30d5\u30a1
   21.67  
   21.68  ############ OPTION PANE STRINGS #############
   21.69  # Mnemonic keys correspond to KeyEvent.VK_XXX constant
    22.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties	Thu Apr 22 16:54:34 2010 -0700
    22.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties	Thu Apr 29 13:53:09 2010 -0700
    22.3 @@ -49,12 +49,11 @@
    22.4  FileChooser.directoryDescriptionText=\ub514\ub809\ud1a0\ub9ac
    22.5  FileChooser.newFolderErrorText=\uc0c8 \ud3f4\ub354 \uc791\uc131 \uc624\ub958
    22.6  FileChooser.newFolderErrorSeparator= : 
    22.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    22.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    22.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   22.10 -FileChooser.renameErrorText=Cannot rename {0}
   22.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   22.12 -  Specify a different file name.
   22.13 +FileChooser.newFolderParentDoesntExistTitleText=\ud3f4\ub354\ub97c \ub9cc\ub4e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   22.14 +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.
   22.15 +FileChooser.renameErrorTitleText=\ud30c\uc77c \ub610\ub294 \ud3f4\ub354 \uc774\ub984 \ubc14\uafb8\uae30 \uc624\ub958
   22.16 +FileChooser.renameErrorText={0}\uc758 \uc774\ub984\uc744 \ubc14\uafc0 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   22.17 +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. 
   22.18  FileChooser.acceptAllFileFilterText=\ubaa8\ub4e0 \ud30c\uc77c
   22.19  FileChooser.cancelButtonText=\ucde8\uc18c
   22.20  FileChooser.cancelButtonMnemonic=67
   22.21 @@ -108,16 +107,16 @@
   22.22  # xxxDisplayedMnemonicIndex.
   22.23  ColorChooser.hsvNameText=HSV
   22.24  ColorChooser.hsvMnemonic=72
   22.25 -ColorChooser.hsvHueText=Hue
   22.26 -ColorChooser.hsvSaturationText=Saturation
   22.27 -ColorChooser.hsvValueText=Value
   22.28 -ColorChooser.hsvTransparencyText=Transparency
   22.29 +ColorChooser.hsvHueText=\uc0c9\uc0c1
   22.30 +ColorChooser.hsvSaturationText=\ucc44\ub3c4
   22.31 +ColorChooser.hsvValueText=\uac12
   22.32 +ColorChooser.hsvTransparencyText=\ud22c\uba85\ub3c4
   22.33  ColorChooser.hslNameText=HSL
   22.34  ColorChooser.hslMnemonic=76
   22.35 -ColorChooser.hslHueText=Hue
   22.36 -ColorChooser.hslSaturationText=Saturation
   22.37 -ColorChooser.hslLightnessText=Lightness
   22.38 -ColorChooser.hslTransparencyText=Transparency
   22.39 +ColorChooser.hslHueText=\uc0c9\uc0c1
   22.40 +ColorChooser.hslSaturationText=\ucc44\ub3c4
   22.41 +ColorChooser.hslLightnessText=\ubc1d\uae30
   22.42 +ColorChooser.hslTransparencyText=\ud22c\uba85\ub3c4
   22.43  ColorChooser.rgbNameText=RGB
   22.44  ColorChooser.rgbMnemonic=71
   22.45  ColorChooser.rgbRedText=\ube68\uac04\uc0c9(D)
   22.46 @@ -126,16 +125,16 @@
   22.47  ColorChooser.rgbGreenMnemonic=78
   22.48  ColorChooser.rgbBlueText=\ud30c\ub780\uc0c9(B)
   22.49  ColorChooser.rgbBlueMnemonic=66
   22.50 -ColorChooser.rgbAlphaText=Alpha
   22.51 -ColorChooser.rgbHexCodeText=Color Code
   22.52 +ColorChooser.rgbAlphaText=\uc54c\ud30c
   22.53 +ColorChooser.rgbHexCodeText=\uceec\ub7ec \ucf54\ub4dc
   22.54  ColorChooser.rgbHexCodeMnemonic=67
   22.55  ColorChooser.cmykNameText=CMYK
   22.56  ColorChooser.cmykMnemonic=77
   22.57 -ColorChooser.cmykCyanText=Cyan
   22.58 -ColorChooser.cmykMagentaText=Magenta
   22.59 -ColorChooser.cmykYellowText=Yellow
   22.60 -ColorChooser.cmykBlackText=Black
   22.61 -ColorChooser.cmykAlphaText=Alpha
   22.62 +ColorChooser.cmykCyanText=\uccad\ub85d\uc0c9
   22.63 +ColorChooser.cmykMagentaText=\uc790\ud64d\uc0c9
   22.64 +ColorChooser.cmykYellowText=\ub178\ub780\uc0c9
   22.65 +ColorChooser.cmykBlackText=\ud751\uc0c9
   22.66 +ColorChooser.cmykAlphaText=\uc54c\ud30c
   22.67  
   22.68  ############ OPTION PANE STRINGS #############
   22.69  # Mnemonic keys correspond to KeyEvent.VK_XXX constant
    23.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties	Thu Apr 22 16:54:34 2010 -0700
    23.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties	Thu Apr 29 13:53:09 2010 -0700
    23.3 @@ -49,12 +49,11 @@
    23.4  FileChooser.directoryDescriptionText=Katalog
    23.5  FileChooser.newFolderErrorText=Fel d\u00e5 ny mapp skapades
    23.6  FileChooser.newFolderErrorSeparator= : 
    23.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    23.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    23.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   23.10 -FileChooser.renameErrorText=Cannot rename {0}
   23.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   23.12 -  Specify a different file name.
   23.13 +FileChooser.newFolderParentDoesntExistTitleText=Det gick inte att skapa mappen
   23.14 +FileChooser.newFolderParentDoesntExistText=Det gick inte att skapa mappen.\n\nSystemet hittade inte den angivna s\u00f6kv\u00e4gen.
   23.15 +FileChooser.renameErrorTitleText=Det gick inte att byta namn p\u00e5 filen eller mappen
   23.16 +FileChooser.renameErrorText=Det gick inte byta namn p\u00e5 {0}
   23.17 +FileChooser.renameErrorFileExistsText=Det gick inte byta namn p\u00e5 {0}: Det finns redan en fil med det namnet. Ge den ett annat namn. 
   23.18  FileChooser.acceptAllFileFilterText=Alla filer
   23.19  FileChooser.cancelButtonText=Avbryt
   23.20  FileChooser.cancelButtonMnemonic=65
   23.21 @@ -106,18 +105,18 @@
   23.22  # constant, and an index into the text to render the mnemonic as. The
   23.23  # mnemonic is xxxMnemonic and the index of the character to underline is
   23.24  # xxxDisplayedMnemonicIndex.
   23.25 -ColorChooser.hsvNameText=HSV
   23.26 +ColorChooser.hsvNameText=NMI
   23.27  ColorChooser.hsvMnemonic=72
   23.28 -ColorChooser.hsvHueText=Hue
   23.29 -ColorChooser.hsvSaturationText=Saturation
   23.30 -ColorChooser.hsvValueText=Value
   23.31 -ColorChooser.hsvTransparencyText=Transparency
   23.32 +ColorChooser.hsvHueText=Nyans
   23.33 +ColorChooser.hsvSaturationText=M\u00e4ttnad
   23.34 +ColorChooser.hsvValueText=V\u00e4rde
   23.35 +ColorChooser.hsvTransparencyText=Genomskinlighet
   23.36  ColorChooser.hslNameText=HSL
   23.37  ColorChooser.hslMnemonic=76
   23.38 -ColorChooser.hslHueText=Hue
   23.39 -ColorChooser.hslSaturationText=Saturation
   23.40 -ColorChooser.hslLightnessText=Lightness
   23.41 -ColorChooser.hslTransparencyText=Transparency
   23.42 +ColorChooser.hslHueText=Nyans
   23.43 +ColorChooser.hslSaturationText=M\u00e4ttnad
   23.44 +ColorChooser.hslLightnessText=Ljusstyrka
   23.45 +ColorChooser.hslTransparencyText=Genomskinlighet
   23.46  ColorChooser.rgbNameText=RGB
   23.47  ColorChooser.rgbMnemonic=71
   23.48  ColorChooser.rgbRedText=R\u00f6d
   23.49 @@ -126,16 +125,16 @@
   23.50  ColorChooser.rgbGreenMnemonic=71
   23.51  ColorChooser.rgbBlueText=Bl\u00e5
   23.52  ColorChooser.rgbBlueMnemonic=66
   23.53 -ColorChooser.rgbAlphaText=Alpha
   23.54 -ColorChooser.rgbHexCodeText=Color Code
   23.55 +ColorChooser.rgbAlphaText=Alfa
   23.56 +ColorChooser.rgbHexCodeText=F\u00e4rgkod
   23.57  ColorChooser.rgbHexCodeMnemonic=67
   23.58  ColorChooser.cmykNameText=CMYK
   23.59  ColorChooser.cmykMnemonic=77
   23.60 -ColorChooser.cmykCyanText=Cyan
   23.61 +ColorChooser.cmykCyanText=Cyanbl\u00e5
   23.62  ColorChooser.cmykMagentaText=Magenta
   23.63 -ColorChooser.cmykYellowText=Yellow
   23.64 -ColorChooser.cmykBlackText=Black
   23.65 -ColorChooser.cmykAlphaText=Alpha
   23.66 +ColorChooser.cmykYellowText=Gul
   23.67 +ColorChooser.cmykBlackText=Svart
   23.68 +ColorChooser.cmykAlphaText=Alfa
   23.69  
   23.70  ############ OPTION PANE STRINGS #############
   23.71  # Mnemonic keys correspond to KeyEvent.VK_XXX constant
    24.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties	Thu Apr 22 16:54:34 2010 -0700
    24.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties	Thu Apr 29 13:53:09 2010 -0700
    24.3 @@ -49,12 +49,11 @@
    24.4  FileChooser.directoryDescriptionText=\u76ee\u5f55
    24.5  FileChooser.newFolderErrorText=\u521b\u5efa\u65b0\u7684\u6587\u4ef6\u5939\u65f6\u53d1\u751f\u9519\u8bef
    24.6  FileChooser.newFolderErrorSeparator= : 
    24.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    24.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    24.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   24.10 -FileChooser.renameErrorText=Cannot rename {0}
   24.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   24.12 -  Specify a different file name.
   24.13 +FileChooser.newFolderParentDoesntExistTitleText=\u65e0\u6cd5\u521b\u5efa\u6587\u4ef6\u5939
   24.14 +FileChooser.newFolderParentDoesntExistText=\u65e0\u6cd5\u521b\u5efa\u6587\u4ef6\u5939\u3002\n\n\u7cfb\u7edf\u65e0\u6cd5\u627e\u5230\u6307\u5b9a\u7684\u8def\u5f84\u3002
   24.15 +FileChooser.renameErrorTitleText=\u91cd\u547d\u540d\u6587\u4ef6\u6216\u6587\u4ef6\u5939\u65f6\u51fa\u9519
   24.16 +FileChooser.renameErrorText=\u65e0\u6cd5\u91cd\u547d\u540d {0}
   24.17 +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 
   24.18  FileChooser.acceptAllFileFilterText=\u6240\u6709\u6587\u4ef6
   24.19  FileChooser.cancelButtonText=\u53d6\u6d88
   24.20  FileChooser.cancelButtonMnemonic=67
   24.21 @@ -108,16 +107,16 @@
   24.22  # xxxDisplayedMnemonicIndex.
   24.23  ColorChooser.hsvNameText=HSV
   24.24  ColorChooser.hsvMnemonic=72
   24.25 -ColorChooser.hsvHueText=Hue
   24.26 -ColorChooser.hsvSaturationText=Saturation
   24.27 -ColorChooser.hsvValueText=Value
   24.28 -ColorChooser.hsvTransparencyText=Transparency
   24.29 +ColorChooser.hsvHueText=\u8272\u8c03
   24.30 +ColorChooser.hsvSaturationText=\u9971\u548c
   24.31 +ColorChooser.hsvValueText=\u503c
   24.32 +ColorChooser.hsvTransparencyText=\u900f\u660e
   24.33  ColorChooser.hslNameText=HSL
   24.34  ColorChooser.hslMnemonic=76
   24.35 -ColorChooser.hslHueText=Hue
   24.36 -ColorChooser.hslSaturationText=Saturation
   24.37 -ColorChooser.hslLightnessText=Lightness
   24.38 -ColorChooser.hslTransparencyText=Transparency
   24.39 +ColorChooser.hslHueText=\u8272\u8c03
   24.40 +ColorChooser.hslSaturationText=\u9971\u548c
   24.41 +ColorChooser.hslLightnessText=\u4eae\u5ea6
   24.42 +ColorChooser.hslTransparencyText=\u900f\u660e
   24.43  ColorChooser.rgbNameText=RGB
   24.44  ColorChooser.rgbMnemonic=71
   24.45  ColorChooser.rgbRedText=\u7ea2
   24.46 @@ -127,14 +126,14 @@
   24.47  ColorChooser.rgbBlueText=\u84dd
   24.48  ColorChooser.rgbBlueMnemonic=66
   24.49  ColorChooser.rgbAlphaText=Alpha
   24.50 -ColorChooser.rgbHexCodeText=Color Code
   24.51 +ColorChooser.rgbHexCodeText=\u989c\u8272\u4ee3\u7801
   24.52  ColorChooser.rgbHexCodeMnemonic=67
   24.53  ColorChooser.cmykNameText=CMYK
   24.54  ColorChooser.cmykMnemonic=77
   24.55 -ColorChooser.cmykCyanText=Cyan
   24.56 -ColorChooser.cmykMagentaText=Magenta
   24.57 -ColorChooser.cmykYellowText=Yellow
   24.58 -ColorChooser.cmykBlackText=Black
   24.59 +ColorChooser.cmykCyanText=\u9752\u8272
   24.60 +ColorChooser.cmykMagentaText=\u54c1\u7ea2\u8272
   24.61 +ColorChooser.cmykYellowText=\u9ec4\u8272
   24.62 +ColorChooser.cmykBlackText=\u9ed1\u8272
   24.63  ColorChooser.cmykAlphaText=Alpha
   24.64  
   24.65  ############ OPTION PANE STRINGS #############
    25.1 --- a/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties	Thu Apr 22 16:54:34 2010 -0700
    25.2 +++ b/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties	Thu Apr 29 13:53:09 2010 -0700
    25.3 @@ -49,12 +49,11 @@
    25.4  FileChooser.directoryDescriptionText=\u76ee\u9304
    25.5  FileChooser.newFolderErrorText=\u5efa\u7acb\u65b0\u6a94\u6848\u593e\u6642\u767c\u751f\u932f\u8aa4
    25.6  FileChooser.newFolderErrorSeparator= : 
    25.7 -FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
    25.8 -FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
    25.9 -FileChooser.renameErrorTitleText=Error Renaming File or Folder
   25.10 -FileChooser.renameErrorText=Cannot rename {0}
   25.11 -FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
   25.12 -  Specify a different file name.
   25.13 +FileChooser.newFolderParentDoesntExistTitleText=\u7121\u6cd5\u5efa\u7acb\u8cc7\u6599\u593e
   25.14 +FileChooser.newFolderParentDoesntExistText=\u7121\u6cd5\u5efa\u7acb\u8cc7\u6599\u593e\u3002\n\n\u7cfb\u7d71\u627e\u4e0d\u5230\u6240\u6307\u5b9a\u7684\u8def\u5f91\u3002
   25.15 +FileChooser.renameErrorTitleText=\u91cd\u65b0\u547d\u540d\u6a94\u6848\u6216\u8cc7\u6599\u593e\u6642\u767c\u751f\u932f\u8aa4
   25.16 +FileChooser.renameErrorText=\u7121\u6cd5\u91cd\u65b0\u547d\u540d {0}
   25.17 +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 
   25.18  FileChooser.acceptAllFileFilterText=\u6240\u6709\u6a94\u6848
   25.19  FileChooser.cancelButtonText=\u53d6\u6d88
   25.20  FileChooser.cancelButtonMnemonic=67
   25.21 @@ -108,16 +107,16 @@
   25.22  # xxxDisplayedMnemonicIndex.
   25.23  ColorChooser.hsvNameText=HSV
   25.24  ColorChooser.hsvMnemonic=72
   25.25 -ColorChooser.hsvHueText=Hue
   25.26 -ColorChooser.hsvSaturationText=Saturation
   25.27 -ColorChooser.hsvValueText=Value
   25.28 -ColorChooser.hsvTransparencyText=Transparency
   25.29 +ColorChooser.hsvHueText=\u8272\u8abf
   25.30 +ColorChooser.hsvSaturationText=\u98fd\u548c\u5ea6
   25.31 +ColorChooser.hsvValueText=\u503c
   25.32 +ColorChooser.hsvTransparencyText=\u900f\u660e\u5ea6
   25.33  ColorChooser.hslNameText=HSL
   25.34  ColorChooser.hslMnemonic=76
   25.35 -ColorChooser.hslHueText=Hue
   25.36 -ColorChooser.hslSaturationText=Saturation
   25.37 -ColorChooser.hslLightnessText=Lightness
   25.38 -ColorChooser.hslTransparencyText=Transparency
   25.39 +ColorChooser.hslHueText=\u8272\u8abf
   25.40 +ColorChooser.hslSaturationText=\u98fd\u548c\u5ea6
   25.41 +ColorChooser.hslLightnessText=\u4eae\u5ea6
   25.42 +ColorChooser.hslTransparencyText=\u900f\u660e\u5ea6
   25.43  ColorChooser.rgbNameText=RGB
   25.44  ColorChooser.rgbMnemonic=71
   25.45  ColorChooser.rgbRedText=\u7d05\u8272(D)
   25.46 @@ -127,14 +126,14 @@
   25.47  ColorChooser.rgbBlueText=\u85cd\u8272(B)
   25.48  ColorChooser.rgbBlueMnemonic=66
   25.49  ColorChooser.rgbAlphaText=Alpha
   25.50 -ColorChooser.rgbHexCodeText=Color Code
   25.51 +ColorChooser.rgbHexCodeText=\u8272\u78bc
   25.52  ColorChooser.rgbHexCodeMnemonic=67
   25.53  ColorChooser.cmykNameText=CMYK
   25.54  ColorChooser.cmykMnemonic=77
   25.55 -ColorChooser.cmykCyanText=Cyan
   25.56 -ColorChooser.cmykMagentaText=Magenta
   25.57 -ColorChooser.cmykYellowText=Yellow
   25.58 -ColorChooser.cmykBlackText=Black
   25.59 +ColorChooser.cmykCyanText=\u85cd\u7da0\u8272
   25.60 +ColorChooser.cmykMagentaText=\u7d2b\u7d05\u8272
   25.61 +ColorChooser.cmykYellowText=\u9ec3\u8272
   25.62 +ColorChooser.cmykBlackText=\u9ed1\u8272
   25.63  ColorChooser.cmykAlphaText=Alpha
   25.64  
   25.65  ############ OPTION PANE STRINGS #############
    26.1 --- a/src/share/classes/java/awt/Component.java	Thu Apr 22 16:54:34 2010 -0700
    26.2 +++ b/src/share/classes/java/awt/Component.java	Thu Apr 29 13:53:09 2010 -0700
    26.3 @@ -4941,9 +4941,13 @@
    26.4                  // If we dispatch the event to toplevel ancestor,
    26.5                  // this could encolse the loop: 6480024.
    26.6                  anc.dispatchEventToSelf(newMWE);
    26.7 -            }
    26.8 -        }
    26.9 -        return true;
   26.10 +                if (newMWE.isConsumed()) {
   26.11 +                    e.consume();
   26.12 +                }
   26.13 +                return true;
   26.14 +            }
   26.15 +        }
   26.16 +        return false;
   26.17      }
   26.18  
   26.19      boolean checkWindowClosingException() {
    27.1 --- a/src/share/classes/java/awt/Container.java	Thu Apr 22 16:54:34 2010 -0700
    27.2 +++ b/src/share/classes/java/awt/Container.java	Thu Apr 29 13:53:09 2010 -0700
    27.3 @@ -4492,7 +4492,10 @@
    27.4              retargetMouseEvent(mouseOver, id, e);
    27.5          break;
    27.6              }
    27.7 -            e.consume();
    27.8 +            //Consuming of wheel events is implemented in "retargetMouseEvent".
    27.9 +            if (id != MouseEvent.MOUSE_WHEEL) {
   27.10 +                e.consume();
   27.11 +            }
   27.12      }
   27.13      return e.isConsumed();
   27.14      }
   27.15 @@ -4800,6 +4803,12 @@
   27.16                      target.dispatchEvent(retargeted);
   27.17                  }
   27.18              }
   27.19 +            if (id == MouseEvent.MOUSE_WHEEL && retargeted.isConsumed()) {
   27.20 +                //An exception for wheel bubbling to the native system.
   27.21 +                //In "processMouseEvent" total event consuming for wheel events is skipped.
   27.22 +                //Protection from bubbling of Java-accepted wheel events.
   27.23 +                e.consume();
   27.24 +            }
   27.25          }
   27.26      }
   27.27  
    28.1 --- a/src/share/classes/java/awt/font/NumericShaper.java	Thu Apr 22 16:54:34 2010 -0700
    28.2 +++ b/src/share/classes/java/awt/font/NumericShaper.java	Thu Apr 29 13:53:09 2010 -0700
    28.3 @@ -129,6 +129,8 @@
    28.4       * @since 1.7
    28.5       */
    28.6      public static enum Range {
    28.7 +        // The order of EUROPEAN to MOGOLIAN must be consistent
    28.8 +        // with the bitmask-based constants.
    28.9          /**
   28.10           * The Latin (European) range with the Latin (ASCII) digits.
   28.11           */
   28.12 @@ -210,6 +212,9 @@
   28.13           * The Mongolian range with the Mongolian digits.
   28.14           */
   28.15          MONGOLIAN       ('\u1810', '\u1800', '\u1900'),
   28.16 +        // The order of EUROPEAN to MOGOLIAN must be consistent
   28.17 +        // with the bitmask-based constants.
   28.18 +
   28.19          /**
   28.20           * The N'Ko range with the N'Ko digits.
   28.21           */
   28.22 @@ -259,17 +264,6 @@
   28.23           */
   28.24          CHAM            ('\uaa50', '\uaa00', '\uaa60');
   28.25  
   28.26 -        private static final Range[] ranges = Range.class.getEnumConstants();
   28.27 -        static {
   28.28 -            // sort ranges[] by base for binary search
   28.29 -            Arrays.sort(ranges,
   28.30 -                        new Comparator<Range>() {
   28.31 -                            public int compare(Range s1, Range s2) {
   28.32 -                                return s1.base > s2.base ? 1 : s1.base == s2.base ? 0 : -1;
   28.33 -                            }
   28.34 -                        });
   28.35 -        }
   28.36 -
   28.37          private static int toRangeIndex(Range script) {
   28.38              int index = script.ordinal();
   28.39              return index < NUM_KEYS ? index : -1;
   28.40 @@ -346,11 +340,20 @@
   28.41      /**
   28.42       * {@code Set<Range>} indicating which Unicode ranges to
   28.43       * shape. {@code null} for the bit mask-based API.
   28.44 -     *
   28.45 -     * @since 1.7
   28.46       */
   28.47      private transient Set<Range> rangeSet;
   28.48  
   28.49 +    /**
   28.50 +     * rangeSet.toArray() value. Sorted by Range.base when the number
   28.51 +     * of elements is greater then BSEARCH_THRESHOLD.
   28.52 +     */
   28.53 +    private transient Range[] rangeArray;
   28.54 +
   28.55 +    /**
   28.56 +     * If more than BSEARCH_THRESHOLD ranges are specified, binary search is used.
   28.57 +     */
   28.58 +    private static final int BSEARCH_THRESHOLD = 3;
   28.59 +
   28.60      private static final long serialVersionUID = -8022764705923730308L;
   28.61  
   28.62      /** Identifies the Latin-1 (European) and extended range, and
   28.63 @@ -513,25 +516,32 @@
   28.64      // cache for the NumericShaper.Range version
   28.65      private transient volatile Range currentRange = Range.EUROPEAN;
   28.66  
   28.67 -    private Range rangeForCodePoint(int codepoint) {
   28.68 -        Range range = currentRange;
   28.69 -        if (range.inRange(codepoint)) {
   28.70 -            return range;
   28.71 +    private Range rangeForCodePoint(final int codepoint) {
   28.72 +        if (currentRange.inRange(codepoint)) {
   28.73 +            return currentRange;
   28.74          }
   28.75  
   28.76 -        final Range[] ranges = Range.ranges;
   28.77 -        int lo = 0;
   28.78 -        int hi = ranges.length - 1;
   28.79 -        while (lo <= hi) {
   28.80 -            int mid = (lo + hi) / 2;
   28.81 -            range = ranges[mid];
   28.82 -            if (codepoint < range.start) {
   28.83 -                hi = mid - 1;
   28.84 -            } else if (codepoint >= range.end) {
   28.85 -                lo = mid + 1;
   28.86 -            } else {
   28.87 -                currentRange = range;
   28.88 -                return range;
   28.89 +        final Range[] ranges = rangeArray;
   28.90 +        if (ranges.length > BSEARCH_THRESHOLD) {
   28.91 +            int lo = 0;
   28.92 +            int hi = ranges.length - 1;
   28.93 +            while (lo <= hi) {
   28.94 +                int mid = (lo + hi) / 2;
   28.95 +                Range range = ranges[mid];
   28.96 +                if (codepoint < range.start) {
   28.97 +                    hi = mid - 1;
   28.98 +                } else if (codepoint >= range.end) {
   28.99 +                    lo = mid + 1;
  28.100 +                } else {
  28.101 +                    currentRange = range;
  28.102 +                    return range;
  28.103 +                }
  28.104 +            }
  28.105 +        } else {
  28.106 +            for (int i = 0; i < ranges.length; i++) {
  28.107 +                if (ranges[i].inRange(codepoint)) {
  28.108 +                    return ranges[i];
  28.109 +                }
  28.110              }
  28.111          }
  28.112          return Range.EUROPEAN;
  28.113 @@ -928,8 +938,25 @@
  28.114      }
  28.115  
  28.116      private NumericShaper(Range defaultContext, Set<Range> ranges) {
  28.117 -        this.shapingRange = defaultContext;
  28.118 -        this.rangeSet = EnumSet.copyOf(ranges); // throws NPE if ranges is null.
  28.119 +        shapingRange = defaultContext;
  28.120 +        rangeSet = EnumSet.copyOf(ranges); // throws NPE if ranges is null.
  28.121 +
  28.122 +        // Give precedance to EASTERN_ARABIC if both ARABIC and
  28.123 +        // EASTERN_ARABIC are specified.
  28.124 +        if (rangeSet.contains(Range.EASTERN_ARABIC)
  28.125 +            && rangeSet.contains(Range.ARABIC)) {
  28.126 +            rangeSet.remove(Range.ARABIC);
  28.127 +        }
  28.128 +        rangeArray = rangeSet.toArray(new Range[rangeSet.size()]);
  28.129 +        if (rangeArray.length > BSEARCH_THRESHOLD) {
  28.130 +            // sort rangeArray for binary search
  28.131 +            Arrays.sort(rangeArray,
  28.132 +                        new Comparator<Range>() {
  28.133 +                            public int compare(Range s1, Range s2) {
  28.134 +                                return s1.base > s2.base ? 1 : s1.base == s2.base ? 0 : -1;
  28.135 +                            }
  28.136 +                        });
  28.137 +        }
  28.138      }
  28.139  
  28.140      /**
  28.141 @@ -1152,31 +1179,25 @@
  28.142      }
  28.143  
  28.144      private void shapeContextually(char[] text, int start, int count, Range ctxKey) {
  28.145 -        if (ctxKey == null) {
  28.146 +        // if we don't support the specified context, then don't shape.
  28.147 +        if (ctxKey == null || !rangeSet.contains(ctxKey)) {
  28.148              ctxKey = Range.EUROPEAN;
  28.149          }
  28.150  
  28.151          Range lastKey = ctxKey;
  28.152          int base = ctxKey.getDigitBase();
  28.153          char minDigit = (char)('0' + ctxKey.getNumericBase());
  28.154 -        for (int i = start, end = start + count; i < end; ++i) {
  28.155 +        final int end = start + count;
  28.156 +        for (int i = start; i < end; ++i) {
  28.157              char c = text[i];
  28.158              if (c >= minDigit && c <= '9') {
  28.159                  text[i] = (char)(c + base);
  28.160                  continue;
  28.161              }
  28.162              if (isStrongDirectional(c)) {
  28.163 -                Range newKey = rangeForCodePoint(c);
  28.164 -                if (newKey != lastKey) {
  28.165 -                    lastKey = newKey;
  28.166 -                    ctxKey = newKey;
  28.167 -                    if (rangeSet.contains(Range.EUROPEAN)
  28.168 -                        && (ctxKey == Range.ARABIC || ctxKey == Range.EASTERN_ARABIC)) {
  28.169 -                        ctxKey = Range.EASTERN_ARABIC;
  28.170 -                    } else if (!rangeSet.contains(ctxKey)) {
  28.171 -                        ctxKey = Range.EUROPEAN;
  28.172 -                    }
  28.173 -
  28.174 +                ctxKey = rangeForCodePoint(c);
  28.175 +                if (ctxKey != lastKey) {
  28.176 +                    lastKey = ctxKey;
  28.177                      base = ctxKey.getDigitBase();
  28.178                      minDigit = (char)('0' + ctxKey.getNumericBase());
  28.179                  }
    29.1 --- a/src/share/classes/java/net/NetworkInterface.java	Thu Apr 22 16:54:34 2010 -0700
    29.2 +++ b/src/share/classes/java/net/NetworkInterface.java	Thu Apr 29 13:53:09 2010 -0700
    29.3 @@ -221,11 +221,12 @@
    29.4       * A display name is a human readable String describing the network
    29.5       * device.
    29.6       *
    29.7 -     * @return the display name of this network interface,
    29.8 -     *         or null if no display name is available.
    29.9 +     * @return a non-empty string representing the display name of this network
   29.10 +     *         interface, or null if no display name is available.
   29.11       */
   29.12      public String getDisplayName() {
   29.13 -        return displayName;
   29.14 +        /* strict TCK conformance */
   29.15 +        return "".equals(displayName) ? null : displayName;
   29.16      }
   29.17  
   29.18      /**
    30.1 --- a/src/share/classes/java/text/DateFormat.java	Thu Apr 22 16:54:34 2010 -0700
    30.2 +++ b/src/share/classes/java/text/DateFormat.java	Thu Apr 29 13:53:09 2010 -0700
    30.3 @@ -53,20 +53,20 @@
    30.4  import sun.util.LocaleServiceProviderPool;
    30.5  
    30.6  /**
    30.7 - * DateFormat is an abstract class for date/time formatting subclasses which
    30.8 + * {@code DateFormat} is an abstract class for date/time formatting subclasses which
    30.9   * formats and parses dates or time in a language-independent manner.
   30.10 - * The date/time formatting subclass, such as SimpleDateFormat, allows for
   30.11 + * The date/time formatting subclass, such as {@link SimpleDateFormat}, allows for
   30.12   * formatting (i.e., date -> text), parsing (text -> date), and
   30.13   * normalization.  The date is represented as a <code>Date</code> object or
   30.14   * as the milliseconds since January 1, 1970, 00:00:00 GMT.
   30.15   *
   30.16 - * <p>DateFormat provides many class methods for obtaining default date/time
   30.17 + * <p>{@code DateFormat} provides many class methods for obtaining default date/time
   30.18   * formatters based on the default or a given locale and a number of formatting
   30.19 - * styles. The formatting styles include FULL, LONG, MEDIUM, and SHORT. More
   30.20 + * styles. The formatting styles include {@link #FULL}, {@link #LONG}, {@link #MEDIUM}, and {@link #SHORT}. More
   30.21   * detail and examples of using these styles are provided in the method
   30.22   * descriptions.
   30.23   *
   30.24 - * <p>DateFormat helps you to format and parse dates for any locale.
   30.25 + * <p>{@code DateFormat} helps you to format and parse dates for any locale.
   30.26   * Your code can be completely independent of the locale conventions for
   30.27   * months, days of the week, or even the calendar format: lunar vs. solar.
   30.28   *
   30.29 @@ -86,7 +86,7 @@
   30.30   *  }
   30.31   * </pre>
   30.32   * <p>To format a date for a different Locale, specify it in the
   30.33 - * call to getDateInstance().
   30.34 + * call to {@link #getDateInstance(int, Locale) getDateInstance()}.
   30.35   * <pre>
   30.36   *  DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
   30.37   * </pre>
   30.38 @@ -94,30 +94,30 @@
   30.39   * <pre>
   30.40   *  myDate = df.parse(myString);
   30.41   * </pre>
   30.42 - * <p>Use getDateInstance to get the normal date format for that country.
   30.43 + * <p>Use {@code getDateInstance} to get the normal date format for that country.
   30.44   * There are other static factory methods available.
   30.45 - * Use getTimeInstance to get the time format for that country.
   30.46 - * Use getDateTimeInstance to get a date and time format. You can pass in
   30.47 + * Use {@code getTimeInstance} to get the time format for that country.
   30.48 + * Use {@code getDateTimeInstance} to get a date and time format. You can pass in
   30.49   * different options to these factory methods to control the length of the
   30.50 - * result; from SHORT to MEDIUM to LONG to FULL. The exact result depends
   30.51 + * result; from {@link #SHORT} to {@link #MEDIUM} to {@link #LONG} to {@link #FULL}. The exact result depends
   30.52   * on the locale, but generally:
   30.53 - * <ul><li>SHORT is completely numeric, such as 12.13.52 or 3:30pm
   30.54 - * <li>MEDIUM is longer, such as Jan 12, 1952
   30.55 - * <li>LONG is longer, such as January 12, 1952 or 3:30:32pm
   30.56 - * <li>FULL is pretty completely specified, such as
   30.57 - * Tuesday, April 12, 1952 AD or 3:30:42pm PST.
   30.58 + * <ul><li>{@link #SHORT} is completely numeric, such as {@code 12.13.52} or {@code 3:30pm}
   30.59 + * <li>{@link #MEDIUM} is longer, such as {@code Jan 12, 1952}
   30.60 + * <li>{@link #LONG} is longer, such as {@code January 12, 1952} or {@code 3:30:32pm}
   30.61 + * <li>{@link #FULL} is pretty completely specified, such as
   30.62 + * {@code Tuesday, April 12, 1952 AD or 3:30:42pm PST}.
   30.63   * </ul>
   30.64   *
   30.65   * <p>You can also set the time zone on the format if you wish.
   30.66   * If you want even more control over the format or parsing,
   30.67   * (or want to give your users more control),
   30.68 - * you can try casting the DateFormat you get from the factory methods
   30.69 - * to a SimpleDateFormat. This will work for the majority
   30.70 - * of countries; just remember to put it in a try block in case you
   30.71 + * you can try casting the {@code DateFormat} you get from the factory methods
   30.72 + * to a {@link SimpleDateFormat}. This will work for the majority
   30.73 + * of countries; just remember to put it in a {@code try} block in case you
   30.74   * encounter an unusual one.
   30.75   *
   30.76   * <p>You can also use forms of the parse and format methods with
   30.77 - * ParsePosition and FieldPosition to
   30.78 + * {@link ParsePosition} and {@link FieldPosition} to
   30.79   * allow you to
   30.80   * <ul><li>progressively parse through pieces of a string.
   30.81   * <li>align any particular field, or find out where it is for selection
   30.82 @@ -143,10 +143,13 @@
   30.83  public abstract class DateFormat extends Format {
   30.84  
   30.85      /**
   30.86 -     * The calendar that <code>DateFormat</code> uses to produce the time field
   30.87 -     * values needed to implement date and time formatting.  Subclasses should
   30.88 -     * initialize this to a calendar appropriate for the locale associated with
   30.89 -     * this <code>DateFormat</code>.
   30.90 +     * The {@link Calendar} instance used for calculating the date-time fields
   30.91 +     * and the instant of time. This field is used for both formatting and
   30.92 +     * parsing.
   30.93 +     *
   30.94 +     * <p>Subclasses should initialize this field to a {@link Calendar}
   30.95 +     * appropriate for the {@link Locale} associated with this
   30.96 +     * <code>DateFormat</code>.
   30.97       * @serial
   30.98       */
   30.99      protected Calendar calendar;
  30.100 @@ -358,15 +361,21 @@
  30.101  
  30.102      /**
  30.103       * Parse a date/time string according to the given parse position.  For
  30.104 -     * example, a time text "07/10/96 4:5 PM, PDT" will be parsed into a Date
  30.105 -     * that is equivalent to Date(837039928046).
  30.106 +     * example, a time text {@code "07/10/96 4:5 PM, PDT"} will be parsed into a {@code Date}
  30.107 +     * that is equivalent to {@code Date(837039900000L)}.
  30.108       *
  30.109       * <p> By default, parsing is lenient: If the input is not in the form used
  30.110       * by this object's format method but can still be parsed as a date, then
  30.111       * the parse succeeds.  Clients may insist on strict adherence to the
  30.112 -     * format by calling setLenient(false).
  30.113 +     * format by calling {@link #setLenient(boolean) setLenient(false)}.
  30.114       *
  30.115 -     * @see java.text.DateFormat#setLenient(boolean)
  30.116 +     * <p>This parsing operation uses the {@link #calendar} to produce
  30.117 +     * a {@code Date}. As a result, the {@code calendar}'s date-time
  30.118 +     * fields and the {@code TimeZone} value may have been
  30.119 +     * overwritten, depending on subclass implementations. Any {@code
  30.120 +     * TimeZone} value that has previously been set by a call to
  30.121 +     * {@link #setTimeZone(java.util.TimeZone) setTimeZone} may need
  30.122 +     * to be restored for further operations.
  30.123       *
  30.124       * @param source  The date/time string to be parsed
  30.125       *
  30.126 @@ -374,7 +383,7 @@
  30.127       *              output, the position at which parsing terminated, or the
  30.128       *              start position if the parse failed.
  30.129       *
  30.130 -     * @return      A Date, or null if the input could not be parsed
  30.131 +     * @return      A {@code Date}, or {@code null} if the input could not be parsed
  30.132       */
  30.133      public abstract Date parse(String source, ParsePosition pos);
  30.134  
  30.135 @@ -569,7 +578,12 @@
  30.136      /**
  30.137       * Set the calendar to be used by this date format.  Initially, the default
  30.138       * calendar for the specified or default locale is used.
  30.139 -     * @param newCalendar the new Calendar to be used by the date format
  30.140 +     *
  30.141 +     * <p>Any {@link java.util.TimeZone TimeZone} and {@linkplain
  30.142 +     * #isLenient() leniency} values that have previously been set are
  30.143 +     * overwritten by {@code newCalendar}'s values.
  30.144 +     *
  30.145 +     * @param newCalendar the new {@code Calendar} to be used by the date format
  30.146       */
  30.147      public void setCalendar(Calendar newCalendar)
  30.148      {
  30.149 @@ -578,6 +592,7 @@
  30.150  
  30.151      /**
  30.152       * Gets the calendar associated with this date/time formatter.
  30.153 +     *
  30.154       * @return the calendar associated with this date/time formatter.
  30.155       */
  30.156      public Calendar getCalendar()
  30.157 @@ -605,7 +620,18 @@
  30.158      }
  30.159  
  30.160      /**
  30.161 -     * Sets the time zone for the calendar of this DateFormat object.
  30.162 +     * Sets the time zone for the calendar of this {@code DateFormat} object.
  30.163 +     * This method is equivalent to the following call.
  30.164 +     * <blockquote><pre>
  30.165 +     *  getCalendar().setTimeZone(zone)
  30.166 +     * </pre></blockquote>
  30.167 +     *
  30.168 +     * <p>The {@code TimeZone} set by this method is overwritten by a
  30.169 +     * {@link #setCalendar(java.util.Calendar) setCalendar} call.
  30.170 +     *
  30.171 +     * <p>The {@code TimeZone} set by this method may be overwritten as
  30.172 +     * a result of a call to the parse method.
  30.173 +     *
  30.174       * @param zone the given new time zone.
  30.175       */
  30.176      public void setTimeZone(TimeZone zone)
  30.177 @@ -615,6 +641,11 @@
  30.178  
  30.179      /**
  30.180       * Gets the time zone.
  30.181 +     * This method is equivalent to the following call.
  30.182 +     * <blockquote><pre>
  30.183 +     *  getCalendar().getTimeZone()
  30.184 +     * </pre></blockquote>
  30.185 +     *
  30.186       * @return the time zone associated with the calendar of DateFormat.
  30.187       */
  30.188      public TimeZone getTimeZone()
  30.189 @@ -627,8 +658,17 @@
  30.190       * lenient parsing, the parser may use heuristics to interpret inputs that
  30.191       * do not precisely match this object's format.  With strict parsing,
  30.192       * inputs must match this object's format.
  30.193 -     * @param lenient when true, parsing is lenient
  30.194 -     * @see java.util.Calendar#setLenient
  30.195 +     *
  30.196 +     * <p>This method is equivalent to the following call.
  30.197 +     * <blockquote><pre>
  30.198 +     *  getCalendar().setLenient(lenient)
  30.199 +     * </pre></blockquote>
  30.200 +     *
  30.201 +     * <p>This leniency value is overwritten by a call to {@link
  30.202 +     * #setCalendar(java.util.Calendar) setCalendar()}.
  30.203 +     *
  30.204 +     * @param lenient when {@code true}, parsing is lenient
  30.205 +     * @see java.util.Calendar#setLenient(boolean)
  30.206       */
  30.207      public void setLenient(boolean lenient)
  30.208      {
  30.209 @@ -637,6 +677,14 @@
  30.210  
  30.211      /**
  30.212       * Tell whether date/time parsing is to be lenient.
  30.213 +     * This method is equivalent to the following call.
  30.214 +     * <blockquote><pre>
  30.215 +     *  getCalendar().isLenient()
  30.216 +     * </pre></blockquote>
  30.217 +     *
  30.218 +     * @return {@code true} if the {@link #calendar} is lenient;
  30.219 +     *         {@code false} otherwise.
  30.220 +     * @see java.util.Calendar#isLenient()
  30.221       */
  30.222      public boolean isLenient()
  30.223      {
    31.1 --- a/src/share/classes/java/text/SimpleDateFormat.java	Thu Apr 22 16:54:34 2010 -0700
    31.2 +++ b/src/share/classes/java/text/SimpleDateFormat.java	Thu Apr 29 13:53:09 2010 -0700
    31.3 @@ -1235,6 +1235,20 @@
    31.4       * changed, the error index of <code>pos</code> is set to the index of
    31.5       * the character where the error occurred, and null is returned.
    31.6       *
    31.7 +     * <p>This parsing operation uses the {@link DateFormat#calendar
    31.8 +     * calendar} to produce a {@code Date}. All of the {@code
    31.9 +     * calendar}'s date-time fields are {@linkplain Calendar#clear()
   31.10 +     * cleared} before parsing, and the {@code calendar}'s default
   31.11 +     * values of the date-time fields are used for any missing
   31.12 +     * date-time information. For example, the year value of the
   31.13 +     * parsed {@code Date} is 1970 with {@link GregorianCalendar} if
   31.14 +     * no year value is given from the parsing operation.  The {@code
   31.15 +     * TimeZone} value may be overwritten, depending on the given
   31.16 +     * pattern and the time zone value in {@code text}. Any {@code
   31.17 +     * TimeZone} value that has previously been set by a call to
   31.18 +     * {@link #setTimeZone(java.util.TimeZone) setTimeZone} may need
   31.19 +     * to be restored for further operations.
   31.20 +     *
   31.21       * @param text  A <code>String</code>, part of which should be parsed.
   31.22       * @param pos   A <code>ParsePosition</code> object with index and error
   31.23       *              index information as described above.
    32.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java	Thu Apr 22 16:54:34 2010 -0700
    32.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java	Thu Apr 29 13:53:09 2010 -0700
    32.3 @@ -870,6 +870,8 @@
    32.4                      orientation = SwingConstants.HORIZONTAL;
    32.5                  }
    32.6  
    32.7 +                e.consume();
    32.8 +
    32.9                  if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
   32.10                      JViewport vp = scrollpane.getViewport();
   32.11                      if (vp == null) { return; }
    33.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java	Thu Apr 22 16:54:34 2010 -0700
    33.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java	Thu Apr 29 13:53:09 2010 -0700
    33.3 @@ -756,9 +756,8 @@
    33.4       * things.
    33.5       * <ol>
    33.6       * <li>
    33.7 -     * Sets the associated component to opaque (can be changed
    33.8 -     * easily by a subclass or on JTextComponent directly),
    33.9 -     * which is the most common case.  This will cause the
   33.10 +     * Sets the associated component to opaque if the opaque property
   33.11 +     * has not already been set by the client program. This will cause the
   33.12       * component's background color to be painted.
   33.13       * <li>
   33.14       * Installs the default caret and highlighter into the
    34.1 --- a/src/share/classes/sun/font/SunFontManager.java	Thu Apr 22 16:54:34 2010 -0700
    34.2 +++ b/src/share/classes/sun/font/SunFontManager.java	Thu Apr 29 13:53:09 2010 -0700
    34.3 @@ -2310,6 +2310,7 @@
    34.4                                     tgn != null;
    34.5                                     tg = tgn, tgn = tg.getParent());
    34.6                                fileCloser = new Thread(tg, fileCloserRunnable);
    34.7 +                              fileCloser.setContextClassLoader(null);
    34.8                                Runtime.getRuntime().addShutdownHook(fileCloser);
    34.9                                return null;
   34.10                            }
    35.1 --- a/src/share/classes/sun/java2d/Disposer.java	Thu Apr 22 16:54:34 2010 -0700
    35.2 +++ b/src/share/classes/sun/java2d/Disposer.java	Thu Apr 29 13:53:09 2010 -0700
    35.3 @@ -84,6 +84,7 @@
    35.4                           tg = tgn, tgn = tg.getParent());
    35.5                      Thread t =
    35.6                          new Thread(tg, disposerInstance, "Java2D Disposer");
    35.7 +                    t.setContextClassLoader(null);
    35.8                      t.setDaemon(true);
    35.9                      t.setPriority(Thread.MAX_PRIORITY);
   35.10                      t.start();
    36.1 --- a/src/share/classes/sun/java2d/loops/GraphicsPrimitive.java	Thu Apr 22 16:54:34 2010 -0700
    36.2 +++ b/src/share/classes/sun/java2d/loops/GraphicsPrimitive.java	Thu Apr 29 13:53:09 2010 -0700
    36.3 @@ -417,7 +417,9 @@
    36.4          public static void setShutdownHook() {
    36.5              AccessController.doPrivileged(new PrivilegedAction() {
    36.6                  public Object run() {
    36.7 -                    Runtime.getRuntime().addShutdownHook(new TraceReporter());
    36.8 +                    TraceReporter t = new TraceReporter();
    36.9 +                    t.setContextClassLoader(null);
   36.10 +                    Runtime.getRuntime().addShutdownHook(t);
   36.11                      return null;
   36.12                  }
   36.13              });
    37.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.2 +++ b/src/share/classes/sun/launcher/resources/launcher_de.properties	Thu Apr 29 13:53:09 2010 -0700
    37.3 @@ -0,0 +1,47 @@
    37.4 +#
    37.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    37.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    37.7 +#
    37.8 +# This code is free software; you can redistribute it and/or modify it
    37.9 +# under the terms of the GNU General Public License version 2 only, as
   37.10 +# published by the Free Software Foundation.  Sun designates this
   37.11 +# particular file as subject to the "Classpath" exception as provided
   37.12 +# by Sun in the LICENSE file that accompanied this code.
   37.13 +#
   37.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   37.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   37.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   37.17 +# version 2 for more details (a copy is included in the LICENSE file that
   37.18 +# accompanied this code).
   37.19 +#
   37.20 +# You should have received a copy of the GNU General Public License version
   37.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   37.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   37.23 +#
   37.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   37.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   37.26 +# have any questions.
   37.27 +#
   37.28 +
   37.29 +# Translators please note do not translate the options themselves
   37.30 +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
   37.31 +
   37.32 +java.launcher.opt.datamodel  =\    -d{0}\t  zur Verwendung eines  {0}-Bit-Datenmodells, falls verf\u00fcgbar\n
   37.33 +java.launcher.opt.vmselect   =\    {0}\t  zur Auswahl von "{1}" VM\n
   37.34 +java.launcher.opt.hotspot    =\    {0}\t  ist ein Synonym f\u00fcr  "{1}" VM  [deprecated]\n
   37.35 +
   37.36 +java.launcher.ergo.message1  =\                  Standard-VM ist {0}, 
   37.37 +java.launcher.ergo.message2  =\                  da Sie auf einem Server-Class-Computer ausf\u00fchren.\n
   37.38 +
   37.39 +# Translators please note do not translate the options themselves
   37.40 +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.
   37.41 +
   37.42 +# Translators please note do not translate the options themselves
   37.43 +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
   37.44 +
   37.45 +java.launcher.cls.error1=Fehler: Hauptklasse {0} wurde nicht gefunden 
   37.46 +java.launcher.cls.error2=Fehler: Hauptmethode in Klasse {1} ist nicht {0}. Definieren Sie die folgende Hauptmethode:\n\  public static void main(String[] args)  
   37.47 +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)  
   37.48 +java.launcher.cls.error4=Fehler: Hauptmethode in Klasse {0} nicht gefunden. Definieren Sie die folgende Hauptmethode:\n\  public static void main(String[] args) 
   37.49 +
   37.50 +
    38.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.2 +++ b/src/share/classes/sun/launcher/resources/launcher_es.properties	Thu Apr 29 13:53:09 2010 -0700
    38.3 @@ -0,0 +1,47 @@
    38.4 +#
    38.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    38.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    38.7 +#
    38.8 +# This code is free software; you can redistribute it and/or modify it
    38.9 +# under the terms of the GNU General Public License version 2 only, as
   38.10 +# published by the Free Software Foundation.  Sun designates this
   38.11 +# particular file as subject to the "Classpath" exception as provided
   38.12 +# by Sun in the LICENSE file that accompanied this code.
   38.13 +#
   38.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   38.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   38.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   38.17 +# version 2 for more details (a copy is included in the LICENSE file that
   38.18 +# accompanied this code).
   38.19 +#
   38.20 +# You should have received a copy of the GNU General Public License version
   38.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   38.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   38.23 +#
   38.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   38.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   38.26 +# have any questions.
   38.27 +#
   38.28 +
   38.29 +# Translators please note do not translate the options themselves
   38.30 +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
   38.31 +
   38.32 +java.launcher.opt.datamodel  =\    -d{0}\t  usar un modelo de datos de {0}-bits si est\u00e1 disponible\n
   38.33 +java.launcher.opt.vmselect   =\    {0}\t  para seleccionar "{1}" VM\n
   38.34 +java.launcher.opt.hotspot    =\    {0}\t  es un sin\u00f3nimo para la m\u00e1quina virtual "{1}"  [deprecated]\n
   38.35 +
   38.36 +java.launcher.ergo.message1  =\                  La m\u00e1quina virtual predeterminada es {0}
   38.37 +java.launcher.ergo.message2  =\                  porque est\u00e1 trabajando en una m\u00e1quina de clase servidor.\n
   38.38 +
   38.39 +# Translators please note do not translate the options themselves
   38.40 +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.
   38.41 +
   38.42 +# Translators please note do not translate the options themselves
   38.43 +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
   38.44 +
   38.45 +java.launcher.cls.error1=Error: no se pudo encontrar la clase principal {0}
   38.46 +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)
   38.47 +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)
   38.48 +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)
   38.49 +
   38.50 +
    39.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.2 +++ b/src/share/classes/sun/launcher/resources/launcher_fr.properties	Thu Apr 29 13:53:09 2010 -0700
    39.3 @@ -0,0 +1,47 @@
    39.4 +#
    39.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    39.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    39.7 +#
    39.8 +# This code is free software; you can redistribute it and/or modify it
    39.9 +# under the terms of the GNU General Public License version 2 only, as
   39.10 +# published by the Free Software Foundation.  Sun designates this
   39.11 +# particular file as subject to the "Classpath" exception as provided
   39.12 +# by Sun in the LICENSE file that accompanied this code.
   39.13 +#
   39.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   39.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   39.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   39.17 +# version 2 for more details (a copy is included in the LICENSE file that
   39.18 +# accompanied this code).
   39.19 +#
   39.20 +# You should have received a copy of the GNU General Public License version
   39.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   39.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   39.23 +#
   39.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   39.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   39.26 +# have any questions.
   39.27 +#
   39.28 +
   39.29 +# Translators please note do not translate the options themselves
   39.30 +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
   39.31 +
   39.32 +java.launcher.opt.datamodel  =\    -d{0}\t  utiliser un mod\u00e8le de donn\u00e9es {0}\u00a0bits, le cas \u00e9ch\u00e9ant\n
   39.33 +java.launcher.opt.vmselect   =\    {0}\t  s\u00e9lectionner la machine virtuelle "{1}"\n
   39.34 +java.launcher.opt.hotspot    =\    {0}\t  est un synonyme de la machine virtuelle "{1}" [\u00e0 \u00e9viter]\n
   39.35 +
   39.36 +java.launcher.ergo.message1  =\                  La machine virtuelle par d\u00e9faut est {0}
   39.37 +java.launcher.ergo.message2  =\                  car vous utilisez une machine de type serveur.\n
   39.38 +
   39.39 +# Translators please note do not translate the options themselves
   39.40 +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.
   39.41 +
   39.42 +# Translators please note do not translate the options themselves
   39.43 +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
   39.44 +
   39.45 +java.launcher.cls.error1=Erreur\u00a0: Impossible de trouver la classe {0} principale
   39.46 +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)
   39.47 +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)
   39.48 +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)
   39.49 +
   39.50 +
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/src/share/classes/sun/launcher/resources/launcher_it.properties	Thu Apr 29 13:53:09 2010 -0700
    40.3 @@ -0,0 +1,47 @@
    40.4 +#
    40.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    40.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    40.7 +#
    40.8 +# This code is free software; you can redistribute it and/or modify it
    40.9 +# under the terms of the GNU General Public License version 2 only, as
   40.10 +# published by the Free Software Foundation.  Sun designates this
   40.11 +# particular file as subject to the "Classpath" exception as provided
   40.12 +# by Sun in the LICENSE file that accompanied this code.
   40.13 +#
   40.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   40.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   40.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   40.17 +# version 2 for more details (a copy is included in the LICENSE file that
   40.18 +# accompanied this code).
   40.19 +#
   40.20 +# You should have received a copy of the GNU General Public License version
   40.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   40.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   40.23 +#
   40.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   40.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   40.26 +# have any questions.
   40.27 +#
   40.28 +
   40.29 +# Translators please note do not translate the options themselves
   40.30 +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
   40.31 +
   40.32 +java.launcher.opt.datamodel  =\    -d{0}\t  utilizzo di un modello di dati a {0} bit, se disponibile\n
   40.33 +java.launcher.opt.vmselect   =\    {0}\t  per selezionare la macchina virtuale "{1}"\n
   40.34 +java.launcher.opt.hotspot    =\    {0}\t  \u00e8 sinonimo della macchina virtuale "{1}" [obsoleta]\n
   40.35 +
   40.36 +java.launcher.ergo.message1  =\                  La macchina virtuale predefinita \u00e8 {0}
   40.37 +java.launcher.ergo.message2  =\                  perch\u00e9 l'esecuzione avviene su una macchina di classe server.\n
   40.38 +
   40.39 +# Translators please note do not translate the options themselves
   40.40 +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.
   40.41 +
   40.42 +# Translators please note do not translate the options themselves
   40.43 +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
   40.44 +
   40.45 +java.launcher.cls.error1=Errore: Classe principale {0} non trovata.
   40.46 +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)
   40.47 +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)
   40.48 +java.launcher.cls.error4=Errore: Metodo principale non trovato nella classe {0}. Definire il metodo principale come:\n\   public static void main(String[] args)
   40.49 +
   40.50 +
    41.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.2 +++ b/src/share/classes/sun/launcher/resources/launcher_ja.properties	Thu Apr 29 13:53:09 2010 -0700
    41.3 @@ -0,0 +1,47 @@
    41.4 +#
    41.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    41.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    41.7 +#
    41.8 +# This code is free software; you can redistribute it and/or modify it
    41.9 +# under the terms of the GNU General Public License version 2 only, as
   41.10 +# published by the Free Software Foundation.  Sun designates this
   41.11 +# particular file as subject to the "Classpath" exception as provided
   41.12 +# by Sun in the LICENSE file that accompanied this code.
   41.13 +#
   41.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   41.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   41.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   41.17 +# version 2 for more details (a copy is included in the LICENSE file that
   41.18 +# accompanied this code).
   41.19 +#
   41.20 +# You should have received a copy of the GNU General Public License version
   41.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   41.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   41.23 +#
   41.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   41.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   41.26 +# have any questions.
   41.27 +#
   41.28 +
   41.29 +# Translators please note do not translate the options themselves
   41.30 +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
   41.31 +
   41.32 +java.launcher.opt.datamodel  =\    -d{0}\t  {0}-bit \u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u3092\u4f7f\u7528 (\u53ef\u80fd\u306a\u5834\u5408)\n
   41.33 +java.launcher.opt.vmselect   =\    {0}\t  "{1}" VM \u3092\u9078\u629e\n
   41.34 +java.launcher.opt.hotspot    =\    {0}\t  "{1}" VM \u306e\u540c\u7fa9\u8a9e\u3067\u3059 [\u975e\u63a8\u5968]\n
   41.35 +
   41.36 +java.launcher.ergo.message1  =\                  \u30c7\u30d5\u30a9\u30eb\u30c8 VM \u306f {0} \u3067\u3059
   41.37 +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
   41.38 +
   41.39 +# Translators please note do not translate the options themselves
   41.40 +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
   41.41 +
   41.42 +# Translators please note do not translate the options themselves
   41.43 +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
   41.44 +
   41.45 +java.launcher.cls.error1=\u30a8\u30e9\u30fc: \u30e1\u30a4\u30f3\u30af\u30e9\u30b9 {0} \u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002
   41.46 +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)
   41.47 +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)
   41.48 +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)
   41.49 +
   41.50 +
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/src/share/classes/sun/launcher/resources/launcher_ko.properties	Thu Apr 29 13:53:09 2010 -0700
    42.3 @@ -0,0 +1,47 @@
    42.4 +#
    42.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    42.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    42.7 +#
    42.8 +# This code is free software; you can redistribute it and/or modify it
    42.9 +# under the terms of the GNU General Public License version 2 only, as
   42.10 +# published by the Free Software Foundation.  Sun designates this
   42.11 +# particular file as subject to the "Classpath" exception as provided
   42.12 +# by Sun in the LICENSE file that accompanied this code.
   42.13 +#
   42.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   42.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   42.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   42.17 +# version 2 for more details (a copy is included in the LICENSE file that
   42.18 +# accompanied this code).
   42.19 +#
   42.20 +# You should have received a copy of the GNU General Public License version
   42.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   42.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   42.23 +#
   42.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   42.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   42.26 +# have any questions.
   42.27 +#
   42.28 +
   42.29 +# Translators please note do not translate the options themselves
   42.30 +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
   42.31 +
   42.32 +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
   42.33 +java.launcher.opt.vmselect   =\    {0}\t  "{1}" VM \uc120\ud0dd \uc2dc\n
   42.34 +java.launcher.opt.hotspot    =\    {0}\t  "{1}" VM[\ub354 \uc774\uc0c1 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc74c]\uacfc \ub3d9\uc77c \n
   42.35 +
   42.36 +java.launcher.ergo.message1  =\                  \uae30\ubcf8 VM\uc740 {0}\uc784
   42.37 +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
   42.38 +
   42.39 +# Translators please note do not translate the options themselves
   42.40 +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.
   42.41 +
   42.42 +# Translators please note do not translate the options themselves
   42.43 +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
   42.44 +
   42.45 +java.launcher.cls.error1=\uc624\ub958: \uae30\ubcf8 \ud074\ub798\uc2a4 {0}\uc744(\ub97c) \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   42.46 +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)
   42.47 +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)
   42.48 +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)
   42.49 +
   42.50 +
    43.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.2 +++ b/src/share/classes/sun/launcher/resources/launcher_sv.properties	Thu Apr 29 13:53:09 2010 -0700
    43.3 @@ -0,0 +1,47 @@
    43.4 +#
    43.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    43.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    43.7 +#
    43.8 +# This code is free software; you can redistribute it and/or modify it
    43.9 +# under the terms of the GNU General Public License version 2 only, as
   43.10 +# published by the Free Software Foundation.  Sun designates this
   43.11 +# particular file as subject to the "Classpath" exception as provided
   43.12 +# by Sun in the LICENSE file that accompanied this code.
   43.13 +#
   43.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   43.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   43.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   43.17 +# version 2 for more details (a copy is included in the LICENSE file that
   43.18 +# accompanied this code).
   43.19 +#
   43.20 +# You should have received a copy of the GNU General Public License version
   43.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   43.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   43.23 +#
   43.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   43.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   43.26 +# have any questions.
   43.27 +#
   43.28 +
   43.29 +# Translators please note do not translate the options themselves
   43.30 +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
   43.31 +
   43.32 +java.launcher.opt.datamodel  =\    -d{0}\t  anv\u00e4nd en {0}-bitars datamodell om den finns tillg\u00e4nglig\n
   43.33 +java.launcher.opt.vmselect   =\    {0}\t  f\u00f6r att v\u00e4lja "{1}" VM\n
   43.34 +java.launcher.opt.hotspot    =\    {0}\t  \u00e4r liktydigt med "{1}"-VM  [utfasad]\n
   43.35 +
   43.36 +java.launcher.ergo.message1  =\                  Standard-VM \u00e4r {0}
   43.37 +java.launcher.ergo.message2  =\                  eftersom du k\u00f6r p\u00e5 en dator med server-klass.\n
   43.38 +
   43.39 +# Translators please note do not translate the options themselves
   43.40 +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.
   43.41 +
   43.42 +# Translators please note do not translate the options themselves
   43.43 +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
   43.44 +
   43.45 +java.launcher.cls.error1=Fel: Det g\u00e5r inte att hitta klassen main {0}
   43.46 +java.launcher.cls.error2=Fel: Metoden i main \u00e4r inte {0} i klass {1}. Ange huvudmetoden som:\n\   public static void main(String[] args)
   43.47 +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)
   43.48 +java.launcher.cls.error4=Fel: Klass {0} saknar metod i main. Definiera metoden som:\n\   public static void main(String[] args)
   43.49 +
   43.50 +
    44.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.2 +++ b/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties	Thu Apr 29 13:53:09 2010 -0700
    44.3 @@ -0,0 +1,47 @@
    44.4 +#
    44.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    44.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    44.7 +#
    44.8 +# This code is free software; you can redistribute it and/or modify it
    44.9 +# under the terms of the GNU General Public License version 2 only, as
   44.10 +# published by the Free Software Foundation.  Sun designates this
   44.11 +# particular file as subject to the "Classpath" exception as provided
   44.12 +# by Sun in the LICENSE file that accompanied this code.
   44.13 +#
   44.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   44.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   44.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   44.17 +# version 2 for more details (a copy is included in the LICENSE file that
   44.18 +# accompanied this code).
   44.19 +#
   44.20 +# You should have received a copy of the GNU General Public License version
   44.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   44.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   44.23 +#
   44.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   44.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   44.26 +# have any questions.
   44.27 +#
   44.28 +
   44.29 +# Translators please note do not translate the options themselves
   44.30 +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
   44.31 +
   44.32 +java.launcher.opt.datamodel  =\    -d{0}\t  \u4f7f\u7528\u4e00\u4e2a {0} \u4f4d\u6570\u636e\u6a21\u578b\uff08\u5982\u679c\u53ef\u7528\uff09\n
   44.33 +java.launcher.opt.vmselect   =\    {0}\t  \u9009\u62e9 "{1}" VM\n
   44.34 +java.launcher.opt.hotspot    =\    {0}\t  \u4e3a "{1}" VM \u7684\u540c\u4e49\u8bcd [\u5df2\u8fc7\u65f6]\n
   44.35 +
   44.36 +java.launcher.ergo.message1  =\                  \u9ed8\u8ba4\u7684 VM \u4e3a {0}
   44.37 +java.launcher.ergo.message2  =\                  \u56e0\u4e3a\u60a8\u662f\u5728\u670d\u52a1\u5668\u7c7b\u8ba1\u7b97\u673a\u4e0a\u8fd0\u884c\u3002\n
   44.38 +
   44.39 +# Translators please note do not translate the options themselves
   44.40 +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
   44.41 +
   44.42 +# Translators please note do not translate the options themselves
   44.43 +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
   44.44 +
   44.45 +java.launcher.cls.error1=\u9519\u8bef\uff1a\u627e\u4e0d\u5230\u4e3b\u7c7b {0}
   44.46 +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)
   44.47 +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)
   44.48 +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)
   44.49 +
   44.50 +
    45.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.2 +++ b/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties	Thu Apr 29 13:53:09 2010 -0700
    45.3 @@ -0,0 +1,47 @@
    45.4 +#
    45.5 +# Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
    45.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    45.7 +#
    45.8 +# This code is free software; you can redistribute it and/or modify it
    45.9 +# under the terms of the GNU General Public License version 2 only, as
   45.10 +# published by the Free Software Foundation.  Sun designates this
   45.11 +# particular file as subject to the "Classpath" exception as provided
   45.12 +# by Sun in the LICENSE file that accompanied this code.
   45.13 +#
   45.14 +# This code is distributed in the hope that it will be useful, but WITHOUT
   45.15 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   45.16 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   45.17 +# version 2 for more details (a copy is included in the LICENSE file that
   45.18 +# accompanied this code).
   45.19 +#
   45.20 +# You should have received a copy of the GNU General Public License version
   45.21 +# 2 along with this work; if not, write to the Free Software Foundation,
   45.22 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   45.23 +#
   45.24 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   45.25 +# CA 95054 USA or visit www.sun.com if you need additional information or
   45.26 +# have any questions.
   45.27 +#
   45.28 +
   45.29 +# Translators please note do not translate the options themselves
   45.30 +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
   45.31 +
   45.32 +java.launcher.opt.datamodel  =\    -d{0}\t  \u4f7f\u7528 {0} \u4f4d\u5143\u8cc7\u6599\u6a21\u5f0f (\u5982\u679c\u53ef\u7528)\n
   45.33 +java.launcher.opt.vmselect   =\    {0}\t  \u9078\u53d6\u300c{1}\u300dVM\n
   45.34 +java.launcher.opt.hotspot    =\    {0}\t  \u662f\u300c{1}\u300dVM [\u5df2\u505c\u7528] \u7684\u540c\u7fa9\u8a5e\n
   45.35 +
   45.36 +java.launcher.ergo.message1  =\                  \u9810\u8a2d VM \u70ba {0}
   45.37 +java.launcher.ergo.message2  =\                  \u56e0\u70ba\u60a8\u6b63\u57f7\u884c\u65bc\u4f3a\u670d\u5668\u7d1a\u7684\u6a5f\u5668\u4e0a\u3002\n
   45.38 +
   45.39 +# Translators please note do not translate the options themselves
   45.40 +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
   45.41 +
   45.42 +# Translators please note do not translate the options themselves
   45.43 +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
   45.44 +
   45.45 +java.launcher.cls.error1=\u932f\u8aa4\uff1a\u627e\u4e0d\u5230\u4e3b\u985e\u5225 {0}
   45.46 +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)
   45.47 +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)
   45.48 +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)
   45.49 +
   45.50 +
    46.1 --- a/src/share/classes/sun/management/resources/agent_de.properties	Thu Apr 22 16:54:34 2010 -0700
    46.2 +++ b/src/share/classes/sun/management/resources/agent_de.properties	Thu Apr 29 13:53:09 2010 -0700
    46.3 @@ -46,6 +46,12 @@
    46.4  
    46.5  agent.err.invalid.jmxremote.port   = Ung\u00fcltige Nummer f\u00fcr com.sun.management.jmxremote.port
    46.6  
    46.7 +agent.err.file.not.set               = Datei nicht angegeben
    46.8 +agent.err.file.not.readable          = Datei nicht lesbar
    46.9 +agent.err.file.read.failed           = Datei konnte nicht gelesen werden
   46.10 +agent.err.file.not.found             = Datei wurde nicht gefunden 
   46.11 +agent.err.file.access.not.restricted = Lesezugriff auf die Datei muss eingeschr\u00e4nkt sein
   46.12 +
   46.13  agent.err.password.file.notset     = Es wurde keine Passwortdatei angegeben, obwohl com.sun.management.jmxremote.authenticate auf \"true\" gesetzt ist.
   46.14  agent.err.password.file.not.readable = Passwortdatei kann nicht gelesen werden.
   46.15  agent.err.password.file.read.failed = Passwortdatei konnte nicht gelesen werden.
   46.16 @@ -76,6 +82,7 @@
   46.17  jmxremote.ConnectorBootstrap.initialize.noAuthentication = Keine Authentifizierung
   46.18  jmxremote.ConnectorBootstrap.initialize.ready = JMX-Anschluss bereit unter: {0}
   46.19  jmxremote.ConnectorBootstrap.initialize.password.readonly = Lesezugriff auf Passwortdatei muss eingeschr\u00e4nkt sein. {0}
   46.20 +jmxremote.ConnectorBootstrap.initialize.file.readonly = Lesezugriff auf die Datei muss eingeschr\u00e4nkt sein: {0}
   46.21  
   46.22  jmxremote.AdaptorBootstrap.getTargetList.processing = ACL verarbeiten
   46.23  jmxremote.AdaptorBootstrap.getTargetList.adding = Ziel hinzuf\u00fcgen: {0}
    47.1 --- a/src/share/classes/sun/management/resources/agent_es.properties	Thu Apr 22 16:54:34 2010 -0700
    47.2 +++ b/src/share/classes/sun/management/resources/agent_es.properties	Thu Apr 29 13:53:09 2010 -0700
    47.3 @@ -46,6 +46,12 @@
    47.4  
    47.5  agent.err.invalid.jmxremote.port   = N\u00famero com.sun.management.jmxremote.port no v\u00e1lido
    47.6  
    47.7 +agent.err.file.not.set               = Archivo no especificado
    47.8 +agent.err.file.not.readable          = Archivo ilegible
    47.9 +agent.err.file.read.failed           = Error al leer el archivo
   47.10 +agent.err.file.not.found             = Archivo no encontrado
   47.11 +agent.err.file.access.not.restricted = Se debe restringir el acceso de lectura al archivo
   47.12 +
   47.13  agent.err.password.file.notset     = El archivo de contrase\u00f1as no se ha especificado, pero com.sun.management.jmxremote.authenticate=true
   47.14  agent.err.password.file.not.readable = No se puede leer el archivo de contrase\u00f1as
   47.15  agent.err.password.file.read.failed = Error al leer el archivo de contrase\u00f1as
   47.16 @@ -76,6 +82,7 @@
   47.17  jmxremote.ConnectorBootstrap.initialize.noAuthentication = Sin autenticaci\u00f3n
   47.18  jmxremote.ConnectorBootstrap.initialize.ready = Conector JMX listo en: {0}
   47.19  jmxremote.ConnectorBootstrap.initialize.password.readonly = Se debe restringir el acceso de lectura al archivo de contrase\u00f1as: {0}
   47.20 +jmxremote.ConnectorBootstrap.initialize.file.readonly = Se debe restringir el acceso de lectura al archivo: {0}
   47.21  
   47.22  jmxremote.AdaptorBootstrap.getTargetList.processing = Procesando ACL
   47.23  jmxremote.AdaptorBootstrap.getTargetList.adding = Agregando destino: {0}
    48.1 --- a/src/share/classes/sun/management/resources/agent_fr.properties	Thu Apr 22 16:54:34 2010 -0700
    48.2 +++ b/src/share/classes/sun/management/resources/agent_fr.properties	Thu Apr 29 13:53:09 2010 -0700
    48.3 @@ -46,6 +46,12 @@
    48.4  
    48.5  agent.err.invalid.jmxremote.port   = Num\u00e9ro com.sun.management.jmxremote.port incorrect
    48.6  
    48.7 +agent.err.file.not.set               = Fichier non sp\u00e9cifi\u00e9
    48.8 +agent.err.file.not.readable          = Fichier illisible
    48.9 +agent.err.file.read.failed           = Impossible de lire le fichier
   48.10 +agent.err.file.not.found             = Fichier introuvable
   48.11 +agent.err.file.access.not.restricted = L'acc\u00e8s \u00e0 la lecture du fichier doit \u00eatre limit\u00e9
   48.12 +
   48.13  agent.err.password.file.notset     = Le fichier de mots de passe n'est pas sp\u00e9cifi\u00e9 mais com.sun.management.jmxremote.authenticate=true
   48.14  agent.err.password.file.not.readable = Fichier de mots de passe illisible
   48.15  agent.err.password.file.read.failed = Impossible de lire le fichier de mots de passe
   48.16 @@ -76,6 +82,7 @@
   48.17  jmxremote.ConnectorBootstrap.initialize.noAuthentication = Pas d'authentification
   48.18  jmxremote.ConnectorBootstrap.initialize.ready = Connecteur JMX pr\u00eat \u00e0 : {0}
   48.19  jmxremote.ConnectorBootstrap.initialize.password.readonly = L''acc\u00e8s \u00e0 la lecture du fichier de mots de passe doit \u00eatre limit\u00e9 : {0}
   48.20 +jmxremote.ConnectorBootstrap.initialize.file.readonly = L''acc\u00e8s \u00e0 la lecture du fichier doit \u00eatre limit\u00e9\u00a0: {0}
   48.21  
   48.22  jmxremote.AdaptorBootstrap.getTargetList.processing = Traitement d'ACL
   48.23  jmxremote.AdaptorBootstrap.getTargetList.adding = Ajout de la cible : {0}
    49.1 --- a/src/share/classes/sun/management/resources/agent_it.properties	Thu Apr 22 16:54:34 2010 -0700
    49.2 +++ b/src/share/classes/sun/management/resources/agent_it.properties	Thu Apr 29 13:53:09 2010 -0700
    49.3 @@ -46,6 +46,12 @@
    49.4  
    49.5  agent.err.invalid.jmxremote.port   = Numero com.sun.management.jmxremote.port non valido
    49.6  
    49.7 +agent.err.file.not.set               = File non specificato
    49.8 +agent.err.file.not.readable          = File non leggibile
    49.9 +agent.err.file.read.failed           = Lettura del file non riuscita
   49.10 +agent.err.file.not.found             = File non trovato
   49.11 +agent.err.file.access.not.restricted = L'accesso in lettura al file deve essere limitato
   49.12 +
   49.13  agent.err.password.file.notset     = Il file password non \u00e8 specificato ma com.sun.management.jmxremote.authenticate=true
   49.14  agent.err.password.file.not.readable = File password non leggibile
   49.15  agent.err.password.file.read.failed = Errore di lettura file password
   49.16 @@ -76,6 +82,7 @@
   49.17  jmxremote.ConnectorBootstrap.initialize.noAuthentication = Nessuna autenticazione
   49.18  jmxremote.ConnectorBootstrap.initialize.ready = Connettore JMX pronto in: {0}
   49.19  jmxremote.ConnectorBootstrap.initialize.password.readonly = Limitare l''accesso in lettura al file password: {0}
   49.20 +jmxremote.ConnectorBootstrap.initialize.file.readonly = Limitare l''accesso in lettura al file: {0}
   49.21  
   49.22  jmxremote.AdaptorBootstrap.getTargetList.processing = Elaborazione ACL
   49.23  jmxremote.AdaptorBootstrap.getTargetList.adding = Aggiunta della destinazione: {0}
    50.1 --- a/src/share/classes/sun/management/resources/agent_ja.properties	Thu Apr 22 16:54:34 2010 -0700
    50.2 +++ b/src/share/classes/sun/management/resources/agent_ja.properties	Thu Apr 29 13:53:09 2010 -0700
    50.3 @@ -42,10 +42,16 @@
    50.4  agent.err.agentclass.failed        = \u7ba1\u7406\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30af\u30e9\u30b9\u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002 
    50.5  agent.err.premain.notfound         = premain(String) \u304c\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30af\u30e9\u30b9\u306b\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
    50.6  agent.err.agentclass.access.denied = premain(String) \u3078\u306e\u30a2\u30af\u30bb\u30b9\u304c\u62d2\u5426\u3055\u308c\u307e\u3057\u305f\u3002
    50.7 -agent.err.invalid.agentclass       = com.sun.management.agent.class \u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u5024\u304c\u4e0d\u6b63\u3067\u3059\u3002
    50.8 +agent.err.invalid.agentclass       = com.sun.management.agent.class \u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u5024\u304c\u4e0d\u6b63\u3067\u3059\u3002
    50.9  
   50.10  agent.err.invalid.jmxremote.port   = com.sun.management.jmxremote.port \u306e\u756a\u53f7\u304c\u4e0d\u6b63\u3067\u3059\u3002
   50.11  
   50.12 +agent.err.file.not.set               = \u30d5\u30a1\u30a4\u30eb\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
   50.13 +agent.err.file.not.readable          = \u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
   50.14 +agent.err.file.read.failed           = \u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u53d6\u308a\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
   50.15 +agent.err.file.not.found             = \u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
   50.16 +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
   50.17 +
   50.18  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
   50.19  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
   50.20  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
   50.21 @@ -76,6 +82,7 @@
   50.22  jmxremote.ConnectorBootstrap.initialize.noAuthentication = \u8a8d\u8a3c\u306a\u3057
   50.23  jmxremote.ConnectorBootstrap.initialize.ready = JMX \u30b3\u30cd\u30af\u30bf\u306e\u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f: {0}
   50.24  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}
   50.25 +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}
   50.26  
   50.27  jmxremote.AdaptorBootstrap.getTargetList.processing = ACL \u3092\u51e6\u7406\u3057\u3066\u3044\u307e\u3059
   50.28  jmxremote.AdaptorBootstrap.getTargetList.adding = \u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059: {0}
    51.1 --- a/src/share/classes/sun/management/resources/agent_ko.properties	Thu Apr 22 16:54:34 2010 -0700
    51.2 +++ b/src/share/classes/sun/management/resources/agent_ko.properties	Thu Apr 29 13:53:09 2010 -0700
    51.3 @@ -46,6 +46,12 @@
    51.4  
    51.5  agent.err.invalid.jmxremote.port   = \uc798\ubabb\ub41c com.sun.management.jmxremote.port \ubc88\ud638
    51.6  
    51.7 +agent.err.file.not.set               = \ud30c\uc77c\uc774 \uc9c0\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
    51.8 +agent.err.file.not.readable          = \ud30c\uc77c\uc744 \uc77d\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
    51.9 +agent.err.file.read.failed           = \ud30c\uc77c\uc744 \uc77d\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
   51.10 +agent.err.file.not.found             = \ud30c\uc77c\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   51.11 +agent.err.file.access.not.restricted = \ud30c\uc77c \uc77d\uae30 \uc561\uc138\uc2a4\ub294 \uc81c\ud55c\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.
   51.12 +
   51.13  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.
   51.14  agent.err.password.file.not.readable = \ube44\ubc00\ubc88\ud638 \ud30c\uc77c\uc744 \uc77d\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
   51.15  agent.err.password.file.read.failed = \ube44\ubc00\ubc88\ud638 \ud30c\uc77c\uc744 \uc77d\ub294 \ub370 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
   51.16 @@ -76,6 +82,7 @@
   51.17  jmxremote.ConnectorBootstrap.initialize.noAuthentication = \uc778\uc99d \uc5c6\uc74c
   51.18  jmxremote.ConnectorBootstrap.initialize.ready = \ub2e4\uc74c\uc5d0\uc11c JMX \ucee4\ub125\ud130 \uc900\ube44: {0}
   51.19  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}
   51.20 +jmxremote.ConnectorBootstrap.initialize.file.readonly = \ud30c\uc77c \uc77d\uae30 \uc561\uc138\uc2a4\ub294 \uc81c\ud55c\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4. {0}
   51.21  
   51.22  jmxremote.AdaptorBootstrap.getTargetList.processing = ACL \ucc98\ub9ac
   51.23  jmxremote.AdaptorBootstrap.getTargetList.adding = \ub300\uc0c1 \ucd94\uac00: {0}
    52.1 --- a/src/share/classes/sun/management/resources/agent_sv.properties	Thu Apr 22 16:54:34 2010 -0700
    52.2 +++ b/src/share/classes/sun/management/resources/agent_sv.properties	Thu Apr 29 13:53:09 2010 -0700
    52.3 @@ -46,6 +46,12 @@
    52.4  
    52.5  agent.err.invalid.jmxremote.port   = Ogiltigt com.sun.management.jmxremote.port-nummer
    52.6  
    52.7 +agent.err.file.not.set               = Filen har inte angetts.
    52.8 +agent.err.file.not.readable          = Filen g\u00e5r inte att l\u00e4sa.
    52.9 +agent.err.file.read.failed           = Det gick inte att l\u00e4sa filen
   52.10 +agent.err.file.not.found             = Filen hittades inte
   52.11 +agent.err.file.access.not.restricted = L\u00e4sbeh\u00f6righeten f\u00f6r filen m\u00e5ste begr\u00e4nsas
   52.12 +
   52.13  agent.err.password.file.notset     = L\u00f6senordsfilen har inte angetts men com.sun.management.jmxremote.authenticate=true
   52.14  agent.err.password.file.not.readable = L\u00f6senordsfilen \u00e4r inte l\u00e4sbar
   52.15  agent.err.password.file.read.failed = Det g\u00e5r inte att l\u00e4sa l\u00f6senordsfilen
   52.16 @@ -76,6 +82,7 @@
   52.17  jmxremote.ConnectorBootstrap.initialize.noAuthentication = Ingen autentisering
   52.18  jmxremote.ConnectorBootstrap.initialize.ready = JMX Connector redo p\u00e5: {0}
   52.19  jmxremote.ConnectorBootstrap.initialize.password.readonly = L\u00e4sbeh\u00f6righeten f\u00f6r l\u00f6senordsfilen m\u00e5ste begr\u00e4nsas: {0}
   52.20 +jmxremote.ConnectorBootstrap.initialize.file.readonly = L\u00e4sbeh\u00f6righeten f\u00f6r filen m\u00e5ste begr\u00e4nsas: {0}
   52.21  
   52.22  jmxremote.AdaptorBootstrap.getTargetList.processing = ACL bearbetas
   52.23  jmxremote.AdaptorBootstrap.getTargetList.adding = M\u00e5l l\u00e4ggs till: {0}
    53.1 --- a/src/share/classes/sun/management/resources/agent_zh_CN.properties	Thu Apr 22 16:54:34 2010 -0700
    53.2 +++ b/src/share/classes/sun/management/resources/agent_zh_CN.properties	Thu Apr 29 13:53:09 2010 -0700
    53.3 @@ -1,6 +1,6 @@
    53.4  #
    53.5  #
    53.6 -# Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
    53.7 +# Copyright 2004-2005 Sun Microsystems, Inc.  All Rights Reserved.
    53.8  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    53.9  #
   53.10  # This code is free software; you can redistribute it and/or modify it
   53.11 @@ -46,6 +46,12 @@
   53.12  
   53.13  agent.err.invalid.jmxremote.port   = com.sun.management.jmxremote.port \u7f16\u53f7\u65e0\u6548
   53.14  
   53.15 +agent.err.file.not.set               = \u672a\u6307\u5b9a\u6587\u4ef6
   53.16 +agent.err.file.not.readable          = \u65e0\u6cd5\u8bfb\u53d6\u6587\u4ef6
   53.17 +agent.err.file.read.failed           = \u8bfb\u53d6\u6587\u4ef6\u5931\u8d25
   53.18 +agent.err.file.not.found             = \u627e\u4e0d\u5230\u6587\u4ef6
   53.19 +agent.err.file.access.not.restricted = \u5fc5\u987b\u9650\u5236\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee
   53.20 +
   53.21  agent.err.password.file.notset     = \u672a\u6307\u5b9a\u53e3\u4ee4\u6587\u4ef6\uff0c\u4f46 com.sun.management.jmxremote.authenticate=true
   53.22  agent.err.password.file.not.readable = \u65e0\u6cd5\u8bfb\u53d6\u53e3\u4ee4\u6587\u4ef6
   53.23  agent.err.password.file.read.failed = \u8bfb\u53d6\u53e3\u4ee4\u6587\u4ef6\u5931\u8d25
   53.24 @@ -76,6 +82,7 @@
   53.25  jmxremote.ConnectorBootstrap.initialize.noAuthentication = \u65e0\u9a8c\u8bc1
   53.26  jmxremote.ConnectorBootstrap.initialize.ready = \u4f4d\u4e8e {0} \u7684 JMX \u8fde\u63a5\u5668\u5c31\u7eea
   53.27  jmxremote.ConnectorBootstrap.initialize.password.readonly = \u5fc5\u987b\u9650\u5236\u53e3\u4ee4\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee\uff1a{0}
   53.28 +jmxremote.ConnectorBootstrap.initialize.file.readonly = \u5fc5\u987b\u9650\u5236\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee\uff1a{0}
   53.29  
   53.30  jmxremote.AdaptorBootstrap.getTargetList.processing = \u6b63\u5728\u5904\u7406 ACL
   53.31  jmxremote.AdaptorBootstrap.getTargetList.adding = \u6b63\u5728\u6dfb\u52a0\u76ee\u6807\uff1a{0}
    54.1 --- a/src/share/classes/sun/management/resources/agent_zh_TW.properties	Thu Apr 22 16:54:34 2010 -0700
    54.2 +++ b/src/share/classes/sun/management/resources/agent_zh_TW.properties	Thu Apr 29 13:53:09 2010 -0700
    54.3 @@ -46,6 +46,12 @@
    54.4  
    54.5  agent.err.invalid.jmxremote.port   = com.sun.management.jmxremote.port \u7de8\u865f\u7121\u6548
    54.6  
    54.7 +agent.err.file.not.set               = \u672a\u6307\u5b9a\u6a94\u6848
    54.8 +agent.err.file.not.readable          = \u6a94\u6848\u4e0d\u53ef\u8b80
    54.9 +agent.err.file.read.failed           = \u7121\u6cd5\u8b80\u53d6\u6a94\u6848
   54.10 +agent.err.file.not.found             = \u627e\u4e0d\u5230\u6a94\u6848
   54.11 +agent.err.file.access.not.restricted = \u5fc5\u9808\u9650\u5236\u6a94\u6848\u8b80\u53d6\u5b58\u53d6
   54.12 +
   54.13  agent.err.password.file.notset     = \u672a\u6307\u5b9a\u5bc6\u78bc\u6a94\u6848\uff0c\u4f46 com.sun.management.jmxremote.authenticate=true
   54.14  agent.err.password.file.not.readable = \u5bc6\u78bc\u6a94\u6848\u4e0d\u53ef\u8b80
   54.15  agent.err.password.file.read.failed = \u7121\u6cd5\u8b80\u53d6\u5bc6\u78bc\u6a94\u6848
   54.16 @@ -76,6 +82,7 @@
   54.17  jmxremote.ConnectorBootstrap.initialize.noAuthentication = \u7121\u8a8d\u8b49
   54.18  jmxremote.ConnectorBootstrap.initialize.ready = JMX \u9023\u63a5\u5668\u5c31\u7dd2\uff0c\u4f4d\u65bc\ufe30{0}
   54.19  jmxremote.ConnectorBootstrap.initialize.password.readonly = \u5fc5\u9808\u9650\u5236\u5bc6\u78bc\u6a94\u6848\u8b80\u53d6\u5b58\u53d6\ufe30{0}
   54.20 +jmxremote.ConnectorBootstrap.initialize.file.readonly = \u5fc5\u9808\u9650\u5236\u6a94\u6848\u8b80\u53d6\u5b58\u53d6: {0}
   54.21  
   54.22  jmxremote.AdaptorBootstrap.getTargetList.processing = \u6b63\u5728\u8655\u7406 ACL
   54.23  jmxremote.AdaptorBootstrap.getTargetList.adding = \u6b63\u5728\u589e\u52a0\u76ee\u6a19\ufe30{0}
    55.1 --- a/src/share/classes/sun/misc/SharedSecrets.java	Thu Apr 22 16:54:34 2010 -0700
    55.2 +++ b/src/share/classes/sun/misc/SharedSecrets.java	Thu Apr 29 13:53:09 2010 -0700
    55.3 @@ -1,5 +1,5 @@
    55.4  /*
    55.5 - * Copyright 2002-2009 Sun Microsystems, Inc.  All Rights Reserved.
    55.6 + * Copyright 2002-2010 Sun Microsystems, Inc.  All Rights Reserved.
    55.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    55.8   *
    55.9   * This code is free software; you can redistribute it and/or modify it
   55.10 @@ -29,6 +29,7 @@
   55.11  import java.io.Console;
   55.12  import java.io.File;
   55.13  import java.io.FileDescriptor;
   55.14 +import java.security.ProtectionDomain;
   55.15  
   55.16  /** A repository of "shared secrets", which are a mechanism for
   55.17      calling implementation-private methods in another package without
   55.18 @@ -121,6 +122,8 @@
   55.19  
   55.20      public static JavaSecurityProtectionDomainAccess
   55.21          getJavaSecurityProtectionDomainAccess() {
   55.22 +            if (javaSecurityProtectionDomainAccess == null)
   55.23 +                unsafe.ensureClassInitialized(ProtectionDomain.class);
   55.24              return javaSecurityProtectionDomainAccess;
   55.25      }
   55.26  }
    56.1 --- a/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java	Thu Apr 22 16:54:34 2010 -0700
    56.2 +++ b/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java	Thu Apr 29 13:53:09 2010 -0700
    56.3 @@ -1,5 +1,5 @@
    56.4  /*
    56.5 - * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    56.6 + * Copyright 2005-2010 Sun Microsystems, Inc.  All Rights Reserved.
    56.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    56.8   *
    56.9   * This code is free software; you can redistribute it and/or modify it
   56.10 @@ -77,26 +77,34 @@
   56.11                              if (DEBUG) err.printStackTrace();
   56.12                              return null;
   56.13                          }
   56.14 -                        String gssLib = System.getProperty(LIB_PROP);
   56.15 -                        if (gssLib == null || gssLib.trim().equals("")) {
   56.16 +                        String gssLibs[] = new String[0];
   56.17 +                        String defaultLib = System.getProperty(LIB_PROP);
   56.18 +                        if (defaultLib == null || defaultLib.trim().equals("")) {
   56.19                              String osname = System.getProperty("os.name");
   56.20                              if (osname.startsWith("SunOS")) {
   56.21 -                                gssLib = "libgss.so";
   56.22 +                                gssLibs = new String[]{ "libgss.so" };
   56.23                              } else if (osname.startsWith("Linux")) {
   56.24 -                                gssLib = "libgssapi.so";
   56.25 +                                gssLibs = new String[]{
   56.26 +                                    "libgssapi.so",
   56.27 +                                    "libgssapi_krb5.so",
   56.28 +                                };
   56.29                              }
   56.30 +                        } else {
   56.31 +                            gssLibs = new String[]{ defaultLib };
   56.32                          }
   56.33 -                        if (GSSLibStub.init(gssLib)) {
   56.34 -                            debug("Loaded GSS library: " + gssLib);
   56.35 -                            Oid[] mechs = GSSLibStub.indicateMechs();
   56.36 -                            HashMap<String, String> map =
   56.37 -                                        new HashMap<String, String>();
   56.38 -                            for (int i = 0; i < mechs.length; i++) {
   56.39 -                                debug("Native MF for " + mechs[i]);
   56.40 -                                map.put("GssApiMechanism." + mechs[i],
   56.41 -                                        MF_CLASS);
   56.42 +                        for (String libName: gssLibs) {
   56.43 +                            if (GSSLibStub.init(libName)) {
   56.44 +                                debug("Loaded GSS library: " + libName);
   56.45 +                                Oid[] mechs = GSSLibStub.indicateMechs();
   56.46 +                                HashMap<String, String> map =
   56.47 +                                            new HashMap<String, String>();
   56.48 +                                for (int i = 0; i < mechs.length; i++) {
   56.49 +                                    debug("Native MF for " + mechs[i]);
   56.50 +                                    map.put("GssApiMechanism." + mechs[i],
   56.51 +                                            MF_CLASS);
   56.52 +                                }
   56.53 +                                return map;
   56.54                              }
   56.55 -                            return map;
   56.56                          }
   56.57                          return null;
   56.58                      }
    57.1 --- a/src/share/classes/sun/security/pkcs11/P11Cipher.java	Thu Apr 22 16:54:34 2010 -0700
    57.2 +++ b/src/share/classes/sun/security/pkcs11/P11Cipher.java	Thu Apr 29 13:53:09 2010 -0700
    57.3 @@ -1,5 +1,5 @@
    57.4  /*
    57.5 - * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    57.6 + * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
    57.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    57.8   *
    57.9   * This code is free software; you can redistribute it and/or modify it
   57.10 @@ -192,7 +192,6 @@
   57.11              // should not happen
   57.12              throw new ProviderException(nspe);
   57.13          }
   57.14 -        session = token.getOpSession();
   57.15      }
   57.16  
   57.17      protected void engineSetMode(String mode) throws NoSuchAlgorithmException {
   57.18 @@ -847,18 +846,6 @@
   57.19          return n;
   57.20      }
   57.21  
   57.22 -    @Override
   57.23 -    protected void finalize() throws Throwable {
   57.24 -        try {
   57.25 -            if ((session != null) && token.isValid()) {
   57.26 -                cancelOperation();
   57.27 -                session = token.releaseSession(session);
   57.28 -            }
   57.29 -        } finally {
   57.30 -            super.finalize();
   57.31 -        }
   57.32 -    }
   57.33 -
   57.34      private final void bufferInputBytes(byte[] in, int inOfs, int len) {
   57.35          System.arraycopy(in, inOfs, padBuffer, padBufferLen, len);
   57.36          padBufferLen += len;
    58.1 --- a/src/share/classes/sun/security/pkcs11/P11Digest.java	Thu Apr 22 16:54:34 2010 -0700
    58.2 +++ b/src/share/classes/sun/security/pkcs11/P11Digest.java	Thu Apr 29 13:53:09 2010 -0700
    58.3 @@ -1,5 +1,5 @@
    58.4  /*
    58.5 - * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
    58.6 + * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
    58.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    58.8   *
    58.9   * This code is free software; you can redistribute it and/or modify it
   58.10 @@ -308,16 +308,4 @@
   58.11              throw new ProviderException("update() failed", e);
   58.12          }
   58.13      }
   58.14 -
   58.15 -    protected void finalize() throws Throwable {
   58.16 -        try {
   58.17 -            if ((session != null) && token.isValid()) {
   58.18 -                cancelOperation();
   58.19 -                session = token.releaseSession(session);
   58.20 -            }
   58.21 -        } finally {
   58.22 -            super.finalize();
   58.23 -        }
   58.24 -    }
   58.25 -
   58.26  }
    59.1 --- a/src/share/classes/sun/security/pkcs11/P11Key.java	Thu Apr 22 16:54:34 2010 -0700
    59.2 +++ b/src/share/classes/sun/security/pkcs11/P11Key.java	Thu Apr 29 13:53:09 2010 -0700
    59.3 @@ -1,5 +1,5 @@
    59.4  /*
    59.5 - * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
    59.6 + * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
    59.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    59.8   *
    59.9   * This code is free software; you can redistribute it and/or modify it
   59.10 @@ -85,7 +85,7 @@
   59.11      // flags indicating whether the key is a token object, sensitive, extractable
   59.12      final boolean tokenObject, sensitive, extractable;
   59.13  
   59.14 -    // weak reference notification clean up for session keys
   59.15 +    // phantom reference notification clean up for session keys
   59.16      private final SessionKeyRef sessionKeyRef;
   59.17  
   59.18      P11Key(String type, Session session, long keyID, String algorithm,
   59.19 @@ -1051,7 +1051,12 @@
   59.20      }
   59.21  }
   59.22  
   59.23 -final class SessionKeyRef extends WeakReference<P11Key>
   59.24 +/*
   59.25 + * NOTE: Must use PhantomReference here and not WeakReference
   59.26 + * otherwise the key maybe cleared before other objects which
   59.27 + * still use these keys during finalization such as SSLSocket.
   59.28 + */
   59.29 +final class SessionKeyRef extends PhantomReference<P11Key>
   59.30      implements Comparable<SessionKeyRef> {
   59.31      private static ReferenceQueue<P11Key> refQueue =
   59.32          new ReferenceQueue<P11Key>();
   59.33 @@ -1062,14 +1067,11 @@
   59.34          return refQueue;
   59.35      }
   59.36  
   59.37 -    static final private int MAX_ITERATIONS = 2;
   59.38 -
   59.39      private static void drainRefQueueBounded() {
   59.40 -        int iterations = 0;
   59.41 -        while (iterations < MAX_ITERATIONS) {
   59.42 +        while (true) {
   59.43              SessionKeyRef next = (SessionKeyRef) refQueue.poll();
   59.44 -            if (next != null) next.dispose();
   59.45 -            ++iterations;
   59.46 +            if (next == null) break;
   59.47 +            next.dispose();
   59.48          }
   59.49      }
   59.50  
   59.51 @@ -1087,7 +1089,7 @@
   59.52          drainRefQueueBounded();
   59.53      }
   59.54  
   59.55 -    void dispose() {
   59.56 +    private void dispose() {
   59.57          refList.remove(this);
   59.58          if (session.token.isValid()) {
   59.59              Session newSession = null;
   59.60 @@ -1097,6 +1099,7 @@
   59.61              } catch (PKCS11Exception e) {
   59.62                  // ignore
   59.63              } finally {
   59.64 +                this.clear();
   59.65                  session.token.releaseSession(newSession);
   59.66                  session.removeObject();
   59.67              }
    60.1 --- a/src/share/classes/sun/security/pkcs11/P11Mac.java	Thu Apr 22 16:54:34 2010 -0700
    60.2 +++ b/src/share/classes/sun/security/pkcs11/P11Mac.java	Thu Apr 29 13:53:09 2010 -0700
    60.3 @@ -1,5 +1,5 @@
    60.4  /*
    60.5 - * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
    60.6 + * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
    60.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    60.8   *
    60.9   * This code is free software; you can redistribute it and/or modify it
   60.10 @@ -263,16 +263,4 @@
   60.11              throw new ProviderException("update() failed", e);
   60.12          }
   60.13      }
   60.14 -
   60.15 -    protected void finalize() throws Throwable {
   60.16 -        try {
   60.17 -            if ((session != null) && token.isValid()) {
   60.18 -                cancelOperation();
   60.19 -                session = token.releaseSession(session);
   60.20 -            }
   60.21 -        } finally {
   60.22 -            super.finalize();
   60.23 -        }
   60.24 -    }
   60.25 -
   60.26  }
    61.1 --- a/src/share/classes/sun/security/pkcs11/P11RSACipher.java	Thu Apr 22 16:54:34 2010 -0700
    61.2 +++ b/src/share/classes/sun/security/pkcs11/P11RSACipher.java	Thu Apr 29 13:53:09 2010 -0700
    61.3 @@ -1,5 +1,5 @@
    61.4  /*
    61.5 - * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
    61.6 + * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
    61.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    61.8   *
    61.9   * This code is free software; you can redistribute it and/or modify it
   61.10 @@ -485,18 +485,6 @@
   61.11          int n = P11KeyFactory.convertKey(token, key, algorithm).keyLength();
   61.12          return n;
   61.13      }
   61.14 -
   61.15 -    protected void finalize() throws Throwable {
   61.16 -        try {
   61.17 -            if ((session != null) && token.isValid()) {
   61.18 -                cancelOperation();
   61.19 -                session = token.releaseSession(session);
   61.20 -            }
   61.21 -        } finally {
   61.22 -            super.finalize();
   61.23 -        }
   61.24 -    }
   61.25 -
   61.26  }
   61.27  
   61.28  final class ConstructKeys {
    62.1 --- a/src/share/classes/sun/security/pkcs11/P11Signature.java	Thu Apr 22 16:54:34 2010 -0700
    62.2 +++ b/src/share/classes/sun/security/pkcs11/P11Signature.java	Thu Apr 29 13:53:09 2010 -0700
    62.3 @@ -226,7 +226,6 @@
    62.4          this.buffer = buffer;
    62.5          this.digestOID = digestOID;
    62.6          this.md = md;
    62.7 -        session = token.getOpSession();
    62.8      }
    62.9  
   62.10      private void ensureInitialized() {
   62.11 @@ -732,16 +731,4 @@
   62.12              throws InvalidParameterException {
   62.13          throw new UnsupportedOperationException("getParameter() not supported");
   62.14      }
   62.15 -
   62.16 -    protected void finalize() throws Throwable {
   62.17 -        try {
   62.18 -            if ((session != null) && token.isValid()) {
   62.19 -                cancelOperation();
   62.20 -                session = token.releaseSession(session);
   62.21 -            }
   62.22 -        } finally {
   62.23 -            super.finalize();
   62.24 -        }
   62.25 -    }
   62.26 -
   62.27  }
    63.1 --- a/src/share/classes/sun/security/pkcs11/Session.java	Thu Apr 22 16:54:34 2010 -0700
    63.2 +++ b/src/share/classes/sun/security/pkcs11/Session.java	Thu Apr 29 13:53:09 2010 -0700
    63.3 @@ -1,5 +1,5 @@
    63.4  /*
    63.5 - * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
    63.6 + * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
    63.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    63.8   *
    63.9   * This code is free software; you can redistribute it and/or modify it
   63.10 @@ -25,6 +25,7 @@
   63.11  
   63.12  package sun.security.pkcs11;
   63.13  
   63.14 +import java.lang.ref.*;
   63.15  import java.util.*;
   63.16  import java.util.concurrent.atomic.AtomicInteger;
   63.17  
   63.18 @@ -59,11 +60,14 @@
   63.19      // this could lead to idle sessions being closed early, but that is harmless
   63.20      private long lastAccess;
   63.21  
   63.22 +    private final SessionRef sessionRef;
   63.23 +
   63.24      Session(Token token, long id) {
   63.25          this.token = token;
   63.26          this.id = id;
   63.27          createdObjects = new AtomicInteger();
   63.28          id();
   63.29 +        sessionRef = new SessionRef(this, id, token);
   63.30      }
   63.31  
   63.32      public int compareTo(Session other) {
   63.33 @@ -108,4 +112,76 @@
   63.34          return createdObjects.get() != 0;
   63.35      }
   63.36  
   63.37 +    void close() {
   63.38 +        if (hasObjects()) {
   63.39 +            throw new ProviderException(
   63.40 +                "Internal error: close session with active objects");
   63.41 +        }
   63.42 +        sessionRef.dispose();
   63.43 +    }
   63.44  }
   63.45 +
   63.46 +/*
   63.47 + * NOTE: Use PhantomReference here and not WeakReference
   63.48 + * otherwise the sessions maybe closed before other objects
   63.49 + * which are still being finalized.
   63.50 + */
   63.51 +final class SessionRef extends PhantomReference<Session>
   63.52 +        implements Comparable<SessionRef> {
   63.53 +
   63.54 +    private static ReferenceQueue<Session> refQueue =
   63.55 +        new ReferenceQueue<Session>();
   63.56 +
   63.57 +    private static Set<SessionRef> refList =
   63.58 +        Collections.synchronizedSortedSet(new TreeSet<SessionRef>());
   63.59 +
   63.60 +    static ReferenceQueue<Session> referenceQueue() {
   63.61 +        return refQueue;
   63.62 +    }
   63.63 +
   63.64 +    static int totalCount() {
   63.65 +        return refList.size();
   63.66 +    }
   63.67 +
   63.68 +    private static void drainRefQueueBounded() {
   63.69 +        while (true) {
   63.70 +            SessionRef next = (SessionRef) refQueue.poll();
   63.71 +            if (next == null) break;
   63.72 +            next.dispose();
   63.73 +        }
   63.74 +    }
   63.75 +
   63.76 +    // handle to the native session
   63.77 +    private long id;
   63.78 +    private Token token;
   63.79 +
   63.80 +    SessionRef(Session session, long id, Token token) {
   63.81 +        super(session, refQueue);
   63.82 +        this.id = id;
   63.83 +        this.token = token;
   63.84 +        refList.add(this);
   63.85 +        // TBD: run at some interval and not every time?
   63.86 +        drainRefQueueBounded();
   63.87 +    }
   63.88 +
   63.89 +    void dispose() {
   63.90 +        refList.remove(this);
   63.91 +        try {
   63.92 +            token.p11.C_CloseSession(id);
   63.93 +        } catch (PKCS11Exception e1) {
   63.94 +            // ignore
   63.95 +        } catch (ProviderException e2) {
   63.96 +            // ignore
   63.97 +        } finally {
   63.98 +            this.clear();
   63.99 +        }
  63.100 +    }
  63.101 +
  63.102 +    public int compareTo(SessionRef other) {
  63.103 +        if (this.id == other.id) {
  63.104 +            return 0;
  63.105 +        } else {
  63.106 +            return (this.id < other.id) ? -1 : 1;
  63.107 +        }
  63.108 +    }
  63.109 +}
    64.1 --- a/src/share/classes/sun/security/pkcs11/SessionManager.java	Thu Apr 22 16:54:34 2010 -0700
    64.2 +++ b/src/share/classes/sun/security/pkcs11/SessionManager.java	Thu Apr 29 13:53:09 2010 -0700
    64.3 @@ -1,5 +1,5 @@
    64.4  /*
    64.5 - * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
    64.6 + * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
    64.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    64.8   *
    64.9   * This code is free software; you can redistribute it and/or modify it
   64.10 @@ -51,10 +51,12 @@
   64.11   * number of such sessions low. Note that we occasionally want to explicitly
   64.12   * close a session, see P11Signature.
   64.13   *
   64.14 - * NOTE that all sessions obtained from this class MUST be returned using
   64.15 - * either releaseSession() or closeSession() using a finally block or a
   64.16 - * finalizer where appropriate. Otherwise, they will be "lost", i.e. there
   64.17 - * will be a resource leak eventually leading to exhaustion.
   64.18 + * NOTE that sessions obtained from this class SHOULD be returned using
   64.19 + * either releaseSession() or closeSession() using a finally block when
   64.20 + * not needed anymore. Otherwise, they will be left for cleanup via the
   64.21 + * PhantomReference mechanism when GC kicks in, but it's best not to rely
   64.22 + * on that since GC may not run timely enough since the native PKCS11 library
   64.23 + * is also consuming memory.
   64.24   *
   64.25   * Note that sessions are automatically closed when they are not used for a
   64.26   * period of time, see Session.
   64.27 @@ -74,9 +76,6 @@
   64.28      // maximum number of sessions to open with this token
   64.29      private final int maxSessions;
   64.30  
   64.31 -    // total number of active sessions
   64.32 -    private int activeSessions;
   64.33 -
   64.34      // pool of available object sessions
   64.35      private final Pool objSessions;
   64.36  
   64.37 @@ -116,6 +115,11 @@
   64.38          return (maxSessions <= DEFAULT_MAX_SESSIONS);
   64.39      }
   64.40  
   64.41 +    // returns the total number of active sessions
   64.42 +    int totalSessionCount() {
   64.43 +        return SessionRef.totalCount();
   64.44 +    }
   64.45 +
   64.46      synchronized Session getObjSession() throws PKCS11Exception {
   64.47          Session session = objSessions.poll();
   64.48          if (session != null) {
   64.49 @@ -136,7 +140,8 @@
   64.50          }
   64.51          // create a new session rather than re-using an obj session
   64.52          // that avoids potential expensive cancels() for Signatures & RSACipher
   64.53 -        if (activeSessions < maxSessions) {
   64.54 +        if (maxSessions == Integer.MAX_VALUE ||
   64.55 +                totalSessionCount() < maxSessions) {
   64.56              session = openSession();
   64.57              return ensureValid(session);
   64.58          }
   64.59 @@ -159,14 +164,10 @@
   64.60          if (debug != null) {
   64.61              String location = new Exception().getStackTrace()[2].toString();
   64.62              System.out.println("Killing session (" + location + ") active: "
   64.63 -                + activeSessions);
   64.64 +                + totalSessionCount());
   64.65          }
   64.66 -        try {
   64.67 -            closeSession(session);
   64.68 -            return null;
   64.69 -        } catch (PKCS11Exception e) {
   64.70 -            throw new ProviderException(e);
   64.71 -        }
   64.72 +        closeSession(session);
   64.73 +        return null;
   64.74      }
   64.75  
   64.76      synchronized Session releaseSession(Session session) {
   64.77 @@ -187,7 +188,8 @@
   64.78              return;
   64.79          }
   64.80          if (debug != null) {
   64.81 -            System.out.println("Demoting session, active: " + activeSessions);
   64.82 +            System.out.println("Demoting session, active: " +
   64.83 +                totalSessionCount());
   64.84          }
   64.85          boolean present = objSessions.remove(session);
   64.86          if (present == false) {
   64.87 @@ -199,16 +201,17 @@
   64.88      }
   64.89  
   64.90      private Session openSession() throws PKCS11Exception {
   64.91 -        if (activeSessions >= maxSessions) {
   64.92 +        if ((maxSessions != Integer.MAX_VALUE) &&
   64.93 +                (totalSessionCount() >= maxSessions)) {
   64.94              throw new ProviderException("No more sessions available");
   64.95          }
   64.96          long id = token.p11.C_OpenSession
   64.97                      (token.provider.slotID, openSessionFlags, null, null);
   64.98          Session session = new Session(token, id);
   64.99 -        activeSessions++;
  64.100          if (debug != null) {
  64.101 -            if (activeSessions > maxActiveSessions) {
  64.102 -                maxActiveSessions = activeSessions;
  64.103 +            int currTotal = totalSessionCount();
  64.104 +            if (currTotal > maxActiveSessions) {
  64.105 +                maxActiveSessions = currTotal;
  64.106                  if (maxActiveSessions % 10 == 0) {
  64.107                      System.out.println("Open sessions: " + maxActiveSessions);
  64.108                  }
  64.109 @@ -217,13 +220,8 @@
  64.110          return session;
  64.111      }
  64.112  
  64.113 -    private void closeSession(Session session) throws PKCS11Exception {
  64.114 -        if (session.hasObjects()) {
  64.115 -            throw new ProviderException
  64.116 -                ("Internal error: close session with active objects");
  64.117 -        }
  64.118 -        token.p11.C_CloseSession(session.id());
  64.119 -        activeSessions--;
  64.120 +    private void closeSession(Session session) {
  64.121 +        session.close();
  64.122      }
  64.123  
  64.124      private static final class Pool {
  64.125 @@ -267,28 +265,20 @@
  64.126              }
  64.127              Collections.sort(pool);
  64.128              int i = 0;
  64.129 -            PKCS11Exception exc = null;
  64.130              while (i < n - 1) { // always keep at least 1 session open
  64.131                  oldestSession = pool.get(i);
  64.132                  if (oldestSession.isLive(time)) {
  64.133                      break;
  64.134                  }
  64.135                  i++;
  64.136 -                try {
  64.137 -                    mgr.closeSession(oldestSession);
  64.138 -                } catch (PKCS11Exception e) {
  64.139 -                    exc = e;
  64.140 -                }
  64.141 +                mgr.closeSession(oldestSession);
  64.142              }
  64.143              if (debug != null) {
  64.144                  System.out.println("Closing " + i + " idle sessions, active: "
  64.145 -                        + mgr.activeSessions);
  64.146 +                        + mgr.totalSessionCount());
  64.147              }
  64.148              List<Session> subList = pool.subList(0, i);
  64.149              subList.clear();
  64.150 -            if (exc != null) {
  64.151 -                throw new ProviderException(exc);
  64.152 -            }
  64.153          }
  64.154  
  64.155      }
    65.1 --- a/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java	Thu Apr 22 16:54:34 2010 -0700
    65.2 +++ b/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java	Thu Apr 29 13:53:09 2010 -0700
    65.3 @@ -148,6 +148,7 @@
    65.4              0x00000115,
    65.5              0x00000120,
    65.6              0x00000121,
    65.7 +            0x00000130,
    65.8              0x00000150,
    65.9              0x00000160,
   65.10              0x00000170,
   65.11 @@ -156,6 +157,7 @@
   65.12              0x00000191,
   65.13              0x000001A0,
   65.14              0x000001A1,
   65.15 +            0x00000200,
   65.16              0x80000000,
   65.17          };
   65.18          String[] errorMessages = new String[] {
   65.19 @@ -234,6 +236,7 @@
   65.20              "CKR_WRAPPING_KEY_TYPE_INCONSISTENT",
   65.21              "CKR_RANDOM_SEED_NOT_SUPPORTED",
   65.22              "CKR_RANDOM_NO_RNG",
   65.23 +            "CKR_DOMAIN_PARAMS_INVALID",
   65.24              "CKR_BUFFER_TOO_SMALL",
   65.25              "CKR_SAVED_STATE_INVALID",
   65.26              "CKR_INFORMATION_SENSITIVE",
   65.27 @@ -242,6 +245,7 @@
   65.28              "CKR_CRYPTOKI_ALREADY_INITIALIZED",
   65.29              "CKR_MUTEX_BAD",
   65.30              "CKR_MUTEX_NOT_LOCKED",
   65.31 +            "CKR_FUNCTION_REJECTED",
   65.32              "CKR_VENDOR_DEFINED",
   65.33          };
   65.34          errorMap = new HashMap<Long,String>();
    66.1 --- a/src/share/classes/sun/security/smartcardio/CardImpl.java	Thu Apr 22 16:54:34 2010 -0700
    66.2 +++ b/src/share/classes/sun/security/smartcardio/CardImpl.java	Thu Apr 29 13:53:09 2010 -0700
    66.3 @@ -1,5 +1,5 @@
    66.4  /*
    66.5 - * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    66.6 + * Copyright 2005-2010 Sun Microsystems, Inc.  All Rights Reserved.
    66.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    66.8   *
    66.9   * This code is free software; you can redistribute it and/or modify it
   66.10 @@ -214,7 +214,7 @@
   66.11              SCardEndTransaction(cardId, SCARD_LEAVE_CARD);
   66.12          } catch (PCSCException e) {
   66.13              handleError(e);
   66.14 -            throw new CardException("beginExclusive() failed", e);
   66.15 +            throw new CardException("endExclusive() failed", e);
   66.16          } finally {
   66.17              exclusiveThread = null;
   66.18          }
    67.1 --- a/src/share/classes/sun/security/tools/JarSignerResources_ja.java	Thu Apr 22 16:54:34 2010 -0700
    67.2 +++ b/src/share/classes/sun/security/tools/JarSignerResources_ja.java	Thu Apr 29 13:53:09 2010 -0700
    67.3 @@ -1,5 +1,5 @@
    67.4  /*
    67.5 - * Copyright 2001-2006 Sun Microsystems, Inc.  All Rights Reserved.
    67.6 + * Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
    67.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    67.8   *
    67.9   * This code is free software; you can redistribute it and/or modify it
   67.10 @@ -54,8 +54,8 @@
   67.11                   "\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"},
   67.12          {"Usage: jarsigner [options] jar-file alias",
   67.13                  "\u4f7f\u3044\u65b9: jarsigner [options] jar-file alias"},
   67.14 -        {"       jarsigner -verify [options] jar-file",
   67.15 -                "       jarsigner -verify [options] jar-file"},
   67.16 +        {"       jarsigner -verify [options] jar-file [alias...]",
   67.17 +                "       jarsigner -verify [options] jar-file [alias...]"},
   67.18          {"[-keystore <url>]           keystore location",
   67.19                  "[-keystore <url>]           \u30ad\u30fc\u30b9\u30c8\u30a2\u306e\u4f4d\u7f6e"},
   67.20          {"[-storepass <password>]     password for keystore integrity",
   67.21 @@ -64,6 +64,8 @@
   67.22                  "[-storetype <type>]         \u30ad\u30fc\u30b9\u30c8\u30a2\u306e\u578b"},
   67.23          {"[-keypass <password>]       password for private key (if different)",
   67.24                  "[-keypass <password>]       \u975e\u516c\u958b\u9375\u306e\u30d1\u30b9\u30ef\u30fc\u30c9 (\u7570\u306a\u308b\u5834\u5408)"},
   67.25 +        {"[-certchain <file>]         name of alternative certchain file",
   67.26 +                "[-certchain <file>]         \u4ee3\u66ff\u8a3c\u660e\u9023\u9396\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d"},
   67.27          {"[-sigfile <file>]           name of .SF/.DSA file",
   67.28                  "[-sigfile <file>]           .SF/.DSA \u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d"},
   67.29          {"[-signedjar <file>]         name of signed JAR file",
   67.30 @@ -74,8 +76,10 @@
   67.31                  "[-sigalg <algorithm>]       \u7f72\u540d\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u540d\u524d"},
   67.32          {"[-verify]                   verify a signed JAR file",
   67.33                  "[-verify]                   \u7f72\u540d\u4ed8\u304d JAR \u30d5\u30a1\u30a4\u30eb\u306e\u691c\u8a3c"},
   67.34 -        {"[-verbose]                  verbose output when signing/verifying",
   67.35 -                "[-verbose]                  \u7f72\u540d/\u691c\u8a3c\u6642\u306e\u8a73\u7d30\u51fa\u529b"},
   67.36 +        {"[-verbose[:suboptions]]     verbose output when signing/verifying.",
   67.37 +                "[-verbose[:suboptions]]     \u7f72\u540d/\u691c\u8a3c\u6642\u306e\u8a73\u7d30\u51fa\u529b"},
   67.38 +        {"                            suboptions can be all, grouped or summary",
   67.39 +                "                            \u30b5\u30d6\u30aa\u30d7\u30b7\u30e7\u30f3\u306f all\u3001grouped\u3001\u307e\u305f\u306f summary \u3067\u3059"},
   67.40          {"[-certs]                    display certificates when verbose and verifying",
   67.41                  "[-certs]                    \u8a73\u7d30\u51fa\u529b\u304a\u3088\u3073\u691c\u8a3c\u6642\u306b\u8a3c\u660e\u66f8\u3092\u8868\u793a"},
   67.42          {"[-tsa <url>]                location of the Timestamping Authority",
   67.43 @@ -98,10 +102,22 @@
   67.44                  "[-providerClass <class>     \u6697\u53f7\u5316\u30b5\u30fc\u30d3\u30b9\u30d7\u30ed\u30d0\u30a4\u30c0\u306e\u540d\u524d"},
   67.45          {"  [-providerArg <arg>]] ... master class file and constructor argument",
   67.46                  "  [-providerArg <arg>]] ... \u30de\u30b9\u30bf\u30fc\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3068\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u5f15\u6570"},
   67.47 +        {"[-strict]                   treat warnings as errors",
   67.48 +                "[-strict]                   \u8b66\u544a\u3092\u30a8\u30e9\u30fc\u3068\u3057\u3066\u53d6\u308a\u6271\u3044\u307e\u3059"},
   67.49 +        {"Option lacks argument", "\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u5f15\u6570\u304c\u3042\u308a\u307e\u305b\u3093\u3002"},
   67.50 +        {"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"},
   67.51 +        {"Please specify jarfile name", "jar \u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},
   67.52 +        {"Please specify alias name", "\u5225\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},
   67.53 +        {"Only one alias can be specified", "\u6307\u5b9a\u3067\u304d\u308b\u5225\u540d\u306f 1 \u3064\u3060\u3051\u3067\u3059\u3002"},
   67.54 +        {"This jar contains signed entries which is not signed by the specified alias(es).",
   67.55 +                 "\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"},
   67.56 +        {"This jar contains signed entries that's not signed by alias in this keystore.",
   67.57 +                  "\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"},
   67.58          {"s", "s"},
   67.59          {"m", "m"},
   67.60          {"k", "k"},
   67.61          {"i", "i"},
   67.62 +        {"(and %d more)", "(\u3055\u3089\u306b %d)"},
   67.63          {"  s = signature was verified ",
   67.64                  "  s = \u7f72\u540d\u304c\u691c\u8a3c\u3055\u308c\u307e\u3057\u305f\u3002"},
   67.65          {"  m = entry is listed in manifest",
   67.66 @@ -110,7 +126,11 @@
   67.67                  "  k = 1 \u3064\u4ee5\u4e0a\u306e\u8a3c\u660e\u66f8\u304c\u30ad\u30fc\u30b9\u30c8\u30a2\u3067\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002"},
   67.68          {"  i = at least one certificate was found in identity scope",
   67.69                  "  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"},
   67.70 +        {"  X = not signed by specified alias(es)",
   67.71 +                "X = \u6307\u5b9a\u3055\u308c\u305f\u5225\u540d\u3067\u7f72\u540d\u3055\u308c\u305f\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002"},
   67.72          {"no manifest.", "\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002"},
   67.73 +        {"(Signature related entries)","(\u7f72\u540d\u306b\u95a2\u9023\u3059\u308b\u30a8\u30f3\u30c8\u30ea)"},
   67.74 +        {"(Unsigned entries)", "(\u7f72\u540d\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30f3\u30c8\u30ea)"},
   67.75          {"jar is unsigned. (signatures missing or not parsable)",
   67.76                  "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)"},
   67.77          {"jar verified.", "jar \u304c\u691c\u8a3c\u3055\u308c\u307e\u3057\u305f\u3002"},
   67.78 @@ -134,6 +154,12 @@
   67.79                  "\u30ad\u30fc\u30b9\u30c8\u30a2\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u751f\u6210\u3067\u304d\u307e\u305b\u3093: "},
   67.80          {"Certificate chain not found for: alias.  alias must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.",
   67.81                  "\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"},
   67.82 +        {"File specified by -certchain does not exist",
   67.83 +                "-certchain \u3067\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002"},
   67.84 +        {"Cannot restore certchain from file specified",
   67.85 +                "\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u8a3c\u660e\u9023\u9396\u3092\u5fa9\u5143\u3067\u304d\u307e\u305b\u3093\u3002"},
   67.86 +        {"Certificate chain not found in the file specified.",
   67.87 +                "\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306b\u8a3c\u660e\u9023\u9396\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002"},
   67.88          {"found non-X.509 certificate in signer's chain",
   67.89                  "\u7f72\u540d\u8005\u306e\u9023\u9396\u5185\u3067\u975e X.509 \u8a3c\u660e\u66f8\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002"},
   67.90          {"incomplete certificate chain", "\u4e0d\u5b8c\u5168\u306a\u8a3c\u660e\u9023\u9396"},
   67.91 @@ -149,6 +175,7 @@
   67.92          {"certificate is not valid until",
   67.93                  "\u8a3c\u660e\u66f8\u306f {0} \u307e\u3067\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093"},
   67.94          {"certificate will expire on", "\u8a3c\u660e\u66f8\u306f {0} \u306b\u5931\u52b9\u3057\u307e\u3059"},
   67.95 +        {"[CertPath not validated: ", "[CertPath \u304c\u691c\u8a3c\u3055\u308c\u3066\u3044\u307e\u305b\u3093:"},
   67.96          {"requesting a signature timestamp",
   67.97                  "\u7f72\u540d\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u306e\u8981\u6c42"},
   67.98          {"TSA location: ", "TSA \u306e\u5834\u6240: "},
   67.99 @@ -189,14 +216,18 @@
  67.100                   "\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"},
  67.101          {"The signer certificate's NetscapeCertType extension doesn't allow code signing.",
  67.102                   "\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"},
  67.103 -         {"This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.",
  67.104 -                  "\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"},
  67.105 -         {"This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
  67.106 -                  "\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"},
  67.107 -         {"This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.",
  67.108 -                  "\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"},
  67.109 +        {"This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.",
  67.110 +                 "\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"},
  67.111 +        {"This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
  67.112 +                 "\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"},
  67.113 +        {"This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.",
  67.114 +                 "\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"},
  67.115          {"[{0} extension does not support code signing]",
  67.116                   "[{0} \u62e1\u5f35\u6a5f\u80fd\u306f\u30b3\u30fc\u30c9\u7f72\u540d\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093]"},
  67.117 +        {"The signer's certificate chain is not validated.",
  67.118 +                "\u7f72\u540d\u8005\u306e\u8a3c\u660e\u9023\u9396\u304c\u691c\u8a3c\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002"},
  67.119 +        {"This jar contains entries whose certificate chain is not validated.",
  67.120 +                 "\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"},
  67.121      };
  67.122  
  67.123      /**
    68.1 --- a/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java	Thu Apr 22 16:54:34 2010 -0700
    68.2 +++ b/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java	Thu Apr 29 13:53:09 2010 -0700
    68.3 @@ -1,5 +1,5 @@
    68.4  /*
    68.5 - * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    68.6 + * Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
    68.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    68.8   *
    68.9   * This code is free software; you can redistribute it and/or modify it
   68.10 @@ -51,11 +51,11 @@
   68.11          {"If -protected is specified, then -storepass and -keypass must not be specified",
   68.12                  "\u5982\u679c\u6307\u5b9a\u4e86 -protected\uff0c\u5219\u4e0d\u80fd\u6307\u5b9a -storepass \u548c -keypass"},
   68.13          {"If keystore is not password protected, then -storepass and -keypass must not be specified",
   68.14 -"\u5982\u679c\u5bc6\u94a5\u5e93\u672a\u53d7\u5bc6\u7801\u4fdd\u62a4\uff0c\u5219\u8bf7\u52ff\u6307\u5b9a -storepass \u548c -keypass"},
   68.15 +                 "\u5982\u679c\u5bc6\u94a5\u5e93\u672a\u53d7\u5bc6\u7801\u4fdd\u62a4\uff0c\u5219\u8bf7\u52ff\u6307\u5b9a -storepass \u548c -keypass"},
   68.16          {"Usage: jarsigner [options] jar-file alias",
   68.17                  "\u7528\u6cd5\uff1ajarsigner [\u9009\u9879] jar \u6587\u4ef6\u522b\u540d"},
   68.18 -        {"       jarsigner -verify [options] jar-file",
   68.19 -                "       jarsigner -verify [\u9009\u9879] jar \u6587\u4ef6"},
   68.20 +        {"       jarsigner -verify [options] jar-file [alias...]",
   68.21 +                "       jarsigner -verify [\u9009\u9879] jar \u6587\u4ef6 [\u522b\u540d...]"},
   68.22          {"[-keystore <url>]           keystore location",
   68.23                  "[-keystore <url>]           \u5bc6\u94a5\u5e93\u4f4d\u7f6e"},
   68.24          {"[-storepass <password>]     password for keystore integrity",
   68.25 @@ -64,6 +64,8 @@
   68.26                  "[-storetype <\u7c7b\u578b>]         \u5bc6\u94a5\u5e93\u7c7b\u578b"},
   68.27          {"[-keypass <password>]       password for private key (if different)",
   68.28                  "[-keypass <\u53e3\u4ee4>]           \u4e13\u7528\u5bc6\u94a5\u7684\u53e3\u4ee4\uff08\u5982\u679c\u4e0d\u540c\uff09"},
   68.29 +        {"[-certchain <file>]         name of alternative certchain file",
   68.30 +                "[-certchain <\u6587\u4ef6>]         \u66ff\u4ee3\u8bc1\u4e66\u94fe\u6587\u4ef6\u7684\u540d\u79f0"},
   68.31          {"[-sigfile <file>]           name of .SF/.DSA file",
   68.32                  "[-sigfile <\u6587\u4ef6>]           .SF/.DSA \u6587\u4ef6\u7684\u540d\u79f0"},
   68.33          {"[-signedjar <file>]         name of signed JAR file",
   68.34 @@ -74,8 +76,10 @@
   68.35                  "[-sigalg <\u7b97\u6cd5>]       \u7b7e\u540d\u7b97\u6cd5\u7684\u540d\u79f0"},
   68.36          {"[-verify]                   verify a signed JAR file",
   68.37                  "[-verify]                   \u9a8c\u8bc1\u5df2\u7b7e\u540d\u7684 JAR \u6587\u4ef6"},
   68.38 -        {"[-verbose]                  verbose output when signing/verifying",
   68.39 -                "[-verbose]                  \u7b7e\u540d/\u9a8c\u8bc1\u65f6\u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f"},
   68.40 +        {"[-verbose[:suboptions]]     verbose output when signing/verifying.",
   68.41 +                "[-verbose[:\u5b50\u9009\u9879]]     \u7b7e\u540d/\u9a8c\u8bc1\u65f6\u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f\u3002"},
   68.42 +        {"                            suboptions can be all, grouped or summary",
   68.43 +                "                            \u5b50\u9009\u9879\u53ef\u4ee5\u4e3a all\u3001grouped \u6216 summary"},
   68.44          {"[-certs]                    display certificates when verbose and verifying",
   68.45                  "[-certs]                    \u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f\u548c\u9a8c\u8bc1\u65f6\u663e\u793a\u8bc1\u4e66"},
   68.46          {"[-tsa <url>]                location of the Timestamping Authority",
   68.47 @@ -98,10 +102,22 @@
   68.48                  "[-providerClass <\u7c7b>        \u52a0\u5bc6\u670d\u52a1\u63d0\u4f9b\u8005\u7684\u540d\u79f0"},
   68.49          {"  [-providerArg <arg>]] ... master class file and constructor argument",
   68.50                  "  [-providerArg <\u53c2\u6570>]] ... \u4e3b\u7c7b\u6587\u4ef6\u548c\u6784\u9020\u51fd\u6570\u53c2\u6570"},
   68.51 +        {"[-strict]                   treat warnings as errors",
   68.52 +                "[-strict]                   \u5c06\u8b66\u544a\u89c6\u4e3a\u9519\u8bef"},
   68.53 +        {"Option lacks argument", "\u9009\u9879\u7f3a\u5c11\u53c2\u6570"},
   68.54 +        {"Please type jarsigner -help for usage", "\u6709\u5173\u7528\u6cd5\uff0c\u8bf7\u952e\u5165 jarsigner -help"},
   68.55 +        {"Please specify jarfile name", "\u8bf7\u6307\u5b9a jarfile \u540d\u79f0"},
   68.56 +        {"Please specify alias name", "\u8bf7\u6307\u5b9a\u522b\u540d"},
   68.57 +        {"Only one alias can be specified", "\u53ea\u80fd\u6307\u5b9a\u4e00\u4e2a\u522b\u540d"},
   68.58 +        {"This jar contains signed entries which is not signed by the specified alias(es).",
   68.59 +                 "\u6b64 jar \u5305\u542b\u6307\u5b9a\u522b\u540d\u672a\u7b7e\u540d\u7684\u7b7e\u540d\u6761\u76ee\u3002"},
   68.60 +        {"This jar contains signed entries that's not signed by alias in this keystore.",
   68.61 +                  "\u6b64 jar \u5305\u542b\u6b64\u5bc6\u94a5\u5e93\u4e2d\u522b\u540d\u672a\u7b7e\u540d\u7684\u7b7e\u540d\u6761\u76ee\u3002"},
   68.62          {"s", "s"},
   68.63          {"m", "m"},
   68.64          {"k", "k"},
   68.65          {"i", "i"},
   68.66 +        {"(and %d more)", "\uff08\u8fd8\u6709 %d\uff09"},
   68.67          {"  s = signature was verified ",
   68.68                  "  s = \u5df2\u9a8c\u8bc1\u7b7e\u540d "},
   68.69          {"  m = entry is listed in manifest",
   68.70 @@ -110,7 +126,11 @@
   68.71                  "  k = \u5728\u5bc6\u94a5\u5e93\u4e2d\u81f3\u5c11\u627e\u5230\u4e86\u4e00\u4e2a\u8bc1\u4e66"},
   68.72          {"  i = at least one certificate was found in identity scope",
   68.73                  "  i = \u5728\u8eab\u4efd\u4f5c\u7528\u57df\u5185\u81f3\u5c11\u627e\u5230\u4e86\u4e00\u4e2a\u8bc1\u4e66"},
   68.74 +        {"  X = not signed by specified alias(es)",
   68.75 +                "  X = \u672a\u7ecf\u6307\u5b9a\u522b\u540d\u7b7e\u540d"},
   68.76          {"no manifest.", "\u6ca1\u6709\u6e05\u5355\u3002"},
   68.77 +        {"(Signature related entries)","\uff08\u4e0e\u7b7e\u540d\u6709\u5173\u7684\u6761\u76ee\uff09"},
   68.78 +        {"(Unsigned entries)", "\uff08\u672a\u7b7e\u540d\u7684\u6761\u76ee\uff09"},
   68.79          {"jar is unsigned. (signatures missing or not parsable)",
   68.80                  "jar \u672a\u7b7e\u540d\u3002\uff08\u7f3a\u5c11\u7b7e\u540d\u6216\u7b7e\u540d\u65e0\u6cd5\u89e3\u6790\uff09"},
   68.81          {"jar verified.", "jar \u5df2\u9a8c\u8bc1\u3002"},
   68.82 @@ -134,6 +154,12 @@
   68.83                  "\u65e0\u6cd5\u5b9e\u4f8b\u5316\u5bc6\u94a5\u5e93\u7c7b\uff1a "},
   68.84          {"Certificate chain not found for: alias.  alias must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.",
   68.85                  "\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"},
   68.86 +        {"File specified by -certchain does not exist",
   68.87 +                "-certchain \u6307\u5b9a\u7684\u6587\u4ef6\u4e0d\u5b58\u5728"},
   68.88 +        {"Cannot restore certchain from file specified",
   68.89 +                "\u65e0\u6cd5\u4ece\u6307\u5b9a\u6587\u4ef6\u6062\u590d\u8bc1\u4e66\u94fe"},
   68.90 +        {"Certificate chain not found in the file specified.",
   68.91 +                "\u5728\u6307\u5b9a\u6587\u4ef6\u4e2d\u672a\u627e\u5230\u8bc1\u4e66\u94fe\u3002"},
   68.92          {"found non-X.509 certificate in signer's chain",
   68.93                  "\u5728\u7b7e\u540d\u8005\u7684\u94fe\u4e2d\u627e\u5230\u975e X.509 \u8bc1\u4e66"},
   68.94          {"incomplete certificate chain", "\u8bc1\u4e66\u94fe\u4e0d\u5b8c\u6574"},
   68.95 @@ -149,6 +175,7 @@
   68.96          {"certificate is not valid until",
   68.97                  "\u76f4\u5230 {0}\uff0c\u8bc1\u4e66\u624d\u6709\u6548"},
   68.98          {"certificate will expire on", "\u8bc1\u4e66\u5c06\u5728 {0} \u5230\u671f"},
   68.99 +        {"[CertPath not validated: ", "[\u8bc1\u4e66\u8def\u5f84\u672a\u7ecf\u8fc7\u9a8c\u8bc1\uff1a"},
  68.100          {"requesting a signature timestamp",
  68.101                  "\u6b63\u5728\u8bf7\u6c42\u7b7e\u540d\u65f6\u95f4\u6233"},
  68.102          {"TSA location: ", "TSA \u4f4d\u7f6e\uff1a "},
  68.103 @@ -184,19 +211,23 @@
  68.104          {"The signer certificate is not yet valid.",
  68.105                  "\u7b7e\u540d\u8005\u8bc1\u4e66\u4ecd\u65e0\u6548\u3002"},
  68.106          {"The signer certificate's KeyUsage extension doesn't allow code signing.",
  68.107 -"\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 KeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
  68.108 +                 "\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 KeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
  68.109          {"The signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
  68.110 -"\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 ExtendedKeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
  68.111 +                 "\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 ExtendedKeyUsage \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
  68.112          {"The signer certificate's NetscapeCertType extension doesn't allow code signing.",
  68.113 -"\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 NetscapeCertType \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
  68.114 -         {"This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.",
  68.115 -"\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"},
  68.116 -         {"This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
  68.117 -"\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"},
  68.118 -         {"This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.",
  68.119 -"\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"},
  68.120 +                 "\u7531\u4e8e\u7b7e\u540d\u8005\u8bc1\u4e66\u7684 NetscapeCertType \u6269\u5c55\u800c\u65e0\u6cd5\u8fdb\u884c\u4ee3\u7801\u7b7e\u540d\u3002"},
  68.121 +        {"This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.",
  68.122 +                 "\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"},
  68.123 +        {"This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.",
  68.124 +                 "\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"},
  68.125 +        {"This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.",
  68.126 +                 "\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"},
  68.127          {"[{0} extension does not support code signing]",
  68.128 -"[{0} \u6269\u5c55\u4e0d\u652f\u6301\u4ee3\u7801\u7b7e\u540d]"},
  68.129 +                 "[{0} \u6269\u5c55\u4e0d\u652f\u6301\u4ee3\u7801\u7b7e\u540d]"},
  68.130 +        {"The signer's certificate chain is not validated.",
  68.131 +                "\u7b7e\u540d\u8005\u7684\u8bc1\u4e66\u94fe\u672a\u7ecf\u8fc7\u9a8c\u8bc1\u3002"},
  68.132 +        {"This jar contains entries whose certificate chain is not validated.",
  68.133 +                 "\u6b64 jar \u5305\u542b\u8bc1\u4e66\u94fe\u672a\u7ecf\u8fc7\u9a8c\u8bc1\u7684\u6761\u76ee\u3002"},
  68.134      };
  68.135  
  68.136      /**
    69.1 --- a/src/share/classes/sun/security/tools/KeyTool.java	Thu Apr 22 16:54:34 2010 -0700
    69.2 +++ b/src/share/classes/sun/security/tools/KeyTool.java	Thu Apr 29 13:53:09 2010 -0700
    69.3 @@ -1211,6 +1211,14 @@
    69.4          X509CertImpl cert = new X509CertImpl(info);
    69.5          cert.sign(privateKey, sigAlgName);
    69.6          dumpCert(cert, out);
    69.7 +        for (Certificate ca: keyStore.getCertificateChain(alias)) {
    69.8 +            if (ca instanceof X509Certificate) {
    69.9 +                X509Certificate xca = (X509Certificate)ca;
   69.10 +                if (!isSelfSigned(xca)) {
   69.11 +                    dumpCert(xca, out);
   69.12 +                }
   69.13 +            }
   69.14 +        }
   69.15      }
   69.16  
   69.17      /**
   69.18 @@ -2640,19 +2648,33 @@
   69.19      }
   69.20  
   69.21      /**
   69.22 -     * Returns true if the given certificate is trusted, false otherwise.
   69.23 +     * Locates a signer for a given certificate from a given keystore and
   69.24 +     * returns the signer's certificate.
   69.25 +     * @param cert the certificate whose signer is searched, not null
   69.26 +     * @param ks the keystore to search with, not null
   69.27 +     * @return <code>cert</code> itself if it's already inside <code>ks</code>,
   69.28 +     * or a certificate inside <code>ks</code> who signs <code>cert</code>,
   69.29 +     * or null otherwise.
   69.30       */
   69.31 -    private boolean isTrusted(Certificate cert)
   69.32 -        throws Exception
   69.33 -    {
   69.34 -        if (keyStore.getCertificateAlias(cert) != null) {
   69.35 -            return true; // found in own keystore
   69.36 +    private static Certificate getTrustedSigner(Certificate cert, KeyStore ks)
   69.37 +            throws Exception {
   69.38 +        if (ks.getCertificateAlias(cert) != null) {
   69.39 +            return cert;
   69.40          }
   69.41 -        if (trustcacerts && (caks != null) &&
   69.42 -                (caks.getCertificateAlias(cert) != null)) {
   69.43 -            return true; // found in CA keystore
   69.44 +        for (Enumeration<String> aliases = ks.aliases();
   69.45 +                aliases.hasMoreElements(); ) {
   69.46 +            String name = aliases.nextElement();
   69.47 +            Certificate trustedCert = ks.getCertificate(name);
   69.48 +            if (trustedCert != null) {
   69.49 +                try {
   69.50 +                    cert.verify(trustedCert.getPublicKey());
   69.51 +                    return trustedCert;
   69.52 +                } catch (Exception e) {
   69.53 +                    // Not verified, skip to the next one
   69.54 +                }
   69.55 +            }
   69.56          }
   69.57 -        return false;
   69.58 +        return null;
   69.59      }
   69.60  
   69.61      /**
   69.62 @@ -2985,48 +3007,33 @@
   69.63              return replyCerts;
   69.64          }
   69.65  
   69.66 -        // do we trust the (root) cert at the top?
   69.67 +        // do we trust the cert at the top?
   69.68          Certificate topCert = replyCerts[replyCerts.length-1];
   69.69 -        if (!isTrusted(topCert)) {
   69.70 -            boolean verified = false;
   69.71 -            Certificate rootCert = null;
   69.72 -            if (trustcacerts && (caks!= null)) {
   69.73 -                for (Enumeration<String> aliases = caks.aliases();
   69.74 -                     aliases.hasMoreElements(); ) {
   69.75 -                    String name = aliases.nextElement();
   69.76 -                    rootCert = caks.getCertificate(name);
   69.77 -                    if (rootCert != null) {
   69.78 -                        try {
   69.79 -                            topCert.verify(rootCert.getPublicKey());
   69.80 -                            verified = true;
   69.81 -                            break;
   69.82 -                        } catch (Exception e) {
   69.83 -                        }
   69.84 -                    }
   69.85 -                }
   69.86 +        Certificate root = getTrustedSigner(topCert, keyStore);
   69.87 +        if (root == null && trustcacerts && caks != null) {
   69.88 +            root = getTrustedSigner(topCert, caks);
   69.89 +        }
   69.90 +        if (root == null) {
   69.91 +            System.err.println();
   69.92 +            System.err.println
   69.93 +                    (rb.getString("Top-level certificate in reply:\n"));
   69.94 +            printX509Cert((X509Certificate)topCert, System.out);
   69.95 +            System.err.println();
   69.96 +            System.err.print(rb.getString("... is not trusted. "));
   69.97 +            String reply = getYesNoReply
   69.98 +                    (rb.getString("Install reply anyway? [no]:  "));
   69.99 +            if ("NO".equals(reply)) {
  69.100 +                return null;
  69.101              }
  69.102 -            if (!verified) {
  69.103 -                System.err.println();
  69.104 -                System.err.println
  69.105 -                        (rb.getString("Top-level certificate in reply:\n"));
  69.106 -                printX509Cert((X509Certificate)topCert, System.out);
  69.107 -                System.err.println();
  69.108 -                System.err.print(rb.getString("... is not trusted. "));
  69.109 -                String reply = getYesNoReply
  69.110 -                        (rb.getString("Install reply anyway? [no]:  "));
  69.111 -                if ("NO".equals(reply)) {
  69.112 -                    return null;
  69.113 -                }
  69.114 -            } else {
  69.115 -                if (!isSelfSigned((X509Certificate)topCert)) {
  69.116 -                    // append the (self-signed) root CA cert to the chain
  69.117 -                    Certificate[] tmpCerts =
  69.118 -                        new Certificate[replyCerts.length+1];
  69.119 -                    System.arraycopy(replyCerts, 0, tmpCerts, 0,
  69.120 -                                     replyCerts.length);
  69.121 -                    tmpCerts[tmpCerts.length-1] = rootCert;
  69.122 -                    replyCerts = tmpCerts;
  69.123 -                }
  69.124 +        } else {
  69.125 +            if (root != topCert) {
  69.126 +                // append the root CA cert to the chain
  69.127 +                Certificate[] tmpCerts =
  69.128 +                    new Certificate[replyCerts.length+1];
  69.129 +                System.arraycopy(replyCerts, 0, tmpCerts, 0,
  69.130 +                                 replyCerts.length);
  69.131 +                tmpCerts[tmpCerts.length-1] = root;
  69.132 +                replyCerts = tmpCerts;
  69.133              }
  69.134          }
  69.135  
    70.1 --- a/src/share/classes/sun/security/tools/TimestampedSigner.java	Thu Apr 22 16:54:34 2010 -0700
    70.2 +++ b/src/share/classes/sun/security/tools/TimestampedSigner.java	Thu Apr 29 13:53:09 2010 -0700
    70.3 @@ -82,6 +82,11 @@
    70.4      private static final String KP_TIMESTAMPING_OID = "1.3.6.1.5.5.7.3.8";
    70.5  
    70.6      /*
    70.7 +     * Object identifier for extendedKeyUsage extension
    70.8 +     */
    70.9 +    private static final String EXTENDED_KEY_USAGE_OID = "2.5.29.37";
   70.10 +
   70.11 +    /*
   70.12       * Object identifier for the timestamping access descriptors.
   70.13       */
   70.14      private static final ObjectIdentifier AD_TIMESTAMPING_Id;
   70.15 @@ -357,34 +362,26 @@
   70.16          }
   70.17  
   70.18          // Examine the TSA's certificate (if present)
   70.19 -        List<String> keyPurposes = null;
   70.20 -        X509Certificate[] certs = tsToken.getCertificates();
   70.21 -        if (certs != null && certs.length > 0) {
   70.22 -            // Use certficate from the TSP reply
   70.23 -            // Pick out the cert for the TS server, which is the end-entity
   70.24 -            // one inside the chain.
   70.25 -            for (X509Certificate cert: certs) {
   70.26 -                boolean isSigner = false;
   70.27 -                for (X509Certificate cert2: certs) {
   70.28 -                    if (cert != cert2) {
   70.29 -                        if (cert.getSubjectDN().equals(cert2.getIssuerDN())) {
   70.30 -                            isSigner = true;
   70.31 -                            break;
   70.32 -                        }
   70.33 -                    }
   70.34 +        for (SignerInfo si: tsToken.getSignerInfos()) {
   70.35 +            X509Certificate cert = si.getCertificate(tsToken);
   70.36 +            if (cert == null) {
   70.37 +                // Error, we've already set tsRequestCertificate = true
   70.38 +                throw new CertificateException(
   70.39 +                "Certificate not included in timestamp token");
   70.40 +            } else {
   70.41 +                if (!cert.getCriticalExtensionOIDs().contains(
   70.42 +                        EXTENDED_KEY_USAGE_OID)) {
   70.43 +                    throw new CertificateException(
   70.44 +                    "Certificate is not valid for timestamping");
   70.45                  }
   70.46 -                if (!isSigner) {
   70.47 -                    keyPurposes = cert.getExtendedKeyUsage();
   70.48 -                    if (keyPurposes == null ||
   70.49 -                            ! keyPurposes.contains(KP_TIMESTAMPING_OID)) {
   70.50 -                        throw new CertificateException(
   70.51 -                            "Certificate is not valid for timestamping");
   70.52 -                    }
   70.53 -                    break;
   70.54 +                List keyPurposes = cert.getExtendedKeyUsage();
   70.55 +                if (keyPurposes == null ||
   70.56 +                        ! keyPurposes.contains(KP_TIMESTAMPING_OID)) {
   70.57 +                    throw new CertificateException(
   70.58 +                    "Certificate is not valid for timestamping");
   70.59                  }
   70.60              }
   70.61          }
   70.62 -
   70.63          return tsReply.getEncodedToken();
   70.64      }
   70.65  }
    71.1 --- a/src/share/classes/sun/security/util/AuthResources_de.java	Thu Apr 22 16:54:34 2010 -0700
    71.2 +++ b/src/share/classes/sun/security/util/AuthResources_de.java	Thu Apr 29 13:53:09 2010 -0700
    71.3 @@ -1,5 +1,5 @@
    71.4  /*
    71.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    71.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    71.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    71.8   *
    71.9   * This code is free software; you can redistribute it and/or modify it
   71.10 @@ -53,30 +53,30 @@
   71.11  
   71.12          // UnixPrincipals
   71.13          {"UnixNumericGroupPrincipal [Primary Group]: name",
   71.14 -        "Unix numerischer Gruppen-Principal [Prim\u00e4rgruppe]: {0}"},
   71.15 +                "Unix numerischer Gruppen-Principal [Prim\u00e4rgruppe]: {0}"},
   71.16          {"UnixNumericGroupPrincipal [Supplementary Group]: name",
   71.17 -        "Unix numerische Gruppen-Principal [Zusatzgruppe]: {0}"},
   71.18 +                "Unix numerische Gruppen-Principal [Zusatzgruppe]: {0}"},
   71.19          {"UnixNumericUserPrincipal: name", "Unix numerischer Benutzer-Principal: {0}"},
   71.20          {"UnixPrincipal: name", "Unix-Principal: {0}"},
   71.21  
   71.22          // com.sun.security.auth.login.ConfigFile
   71.23          {"Unable to properly expand config", "{0} kann nicht ordnungsgem\u00e4\u00df erweitert werden."},
   71.24          {"extra_config (No such file or directory)",
   71.25 -        "{0} (Datei oder Verzeichnis existiert nicht.)"},
   71.26 -        {"Unable to locate a login configuration",
   71.27 -        "Anmeldekonfiguration kann nicht gefunden werden."},
   71.28 +                "{0} (Datei oder Verzeichnis existiert nicht.)"},
   71.29 +        {"Configuration Error:\n\tNo such file or directory",
   71.30 +                "Konfigurationsfehler: \n\tKeine Datei oder kein Verzeichnis dieser Art vorhanden"},
   71.31          {"Configuration Error:\n\tInvalid control flag, flag",
   71.32 -        "Konfigurationsfehler:\n\tUng\u00fcltiges Steuerflag, {0}"},
   71.33 +                "Konfigurationsfehler:\n\tUng\u00fcltiges Steuerflag, {0}"},
   71.34          {"Configuration Error:\n\tCan not specify multiple entries for appName",
   71.35 -        "Konfigurationsfehler:\n\tEs k\u00f6nnen nicht mehrere Angaben f\u00fcr {0} gemacht werden."},
   71.36 +            "Konfigurationsfehler:\n\tEs k\u00f6nnen nicht mehrere Angaben f\u00fcr {0} gemacht werden."},
   71.37          {"Configuration Error:\n\texpected [expect], read [end of file]",
   71.38 -        "Konfigurationsfehler:\n\terwartet [{0}], gelesen [Dateiende]"},
   71.39 +                "Konfigurationsfehler:\n\terwartet [{0}], gelesen [Dateiende]"},
   71.40          {"Configuration Error:\n\tLine line: expected [expect], found [value]",
   71.41 -        "Konfigurationsfehler:\n\tZeile {0}: erwartet [{1}], gefunden [{2}]"},
   71.42 +            "Konfigurationsfehler:\n\tZeile {0}: erwartet [{1}], gefunden [{2}]"},
   71.43          {"Configuration Error:\n\tLine line: expected [expect]",
   71.44 -        "Konfigurationsfehler:\n\tZeile {0}: erwartet [{1}]"},
   71.45 +            "Konfigurationsfehler:\n\tZeile {0}: erwartet [{1}]"},
   71.46          {"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
   71.47 -        "Konfigurationsfehler:\n\tZeile {0}: Systemeigenschaft [{1}] auf leeren Wert erweitert"},
   71.48 +            "Konfigurationsfehler:\n\tZeile {0}: Systemeigenschaft [{1}] auf leeren Wert erweitert"},
   71.49  
   71.50          // com.sun.security.auth.module.JndiLoginModule
   71.51          {"username: ","Benutzername: "},
   71.52 @@ -88,13 +88,13 @@
   71.53          {"Keystore alias: ","Keystore-Alias: "},
   71.54          {"Keystore password: ","Keystore-Passwort: "},
   71.55          {"Private key password (optional): ",
   71.56 -        "Privates Schl\u00fcsselpasswort (optional): "},
   71.57 +            "Privates Schl\u00fcsselpasswort (optional): "},
   71.58  
   71.59          // com.sun.security.auth.module.Krb5LoginModule
   71.60          {"Kerberos username [[defUsername]]: ",
   71.61 -        "Kerberos-Benutzername [{0}]: "},
   71.62 +                "Kerberos-Benutzername [{0}]: "},
   71.63          {"Kerberos password for [username]: ",
   71.64 -            "Kerberos-Passwort f\u00fcr {0}: "},
   71.65 +                "Kerberos-Passwort f\u00fcr {0}: "},
   71.66  
   71.67          /***    EVERYTHING BELOW IS DEPRECATED  ***/
   71.68  
   71.69 @@ -107,17 +107,17 @@
   71.70          {"(", "("},
   71.71          {")", ")"},
   71.72          {"attempt to add a Permission to a readonly PermissionCollection",
   71.73 -        "Es wurde versucht, eine Berechtigung zu einer schreibgesch\u00fctzten Berechtigungssammlung hinzuzuf\u00fcgen."},
   71.74 +            "Es wurde versucht, eine Berechtigung zu einer schreibgesch\u00fctzten Berechtigungssammlung hinzuzuf\u00fcgen."},
   71.75  
   71.76          // com.sun.security.auth.PolicyParser
   71.77          {"expected keystore type", "erwarteter Keystore-Typ"},
   71.78          {"can not specify Principal with a ",
   71.79 -        "Principal kann nicht mit einer "},
   71.80 +                "Principal kann nicht mit einer "},
   71.81          {"wildcard class without a wildcard name",
   71.82 -        "Wildcard-Klasse ohne Wildcard-Namen angegeben werden."},
   71.83 +                "Wildcard-Klasse ohne Wildcard-Namen angegeben werden."},
   71.84          {"expected codeBase or SignedBy", "codeBase oder SignedBy erwartet"},
   71.85          {"only Principal-based grant entries permitted",
   71.86 -        "Nur Principal-basierte Berechtigungseintr\u00e4ge erlaubt"},
   71.87 +                "Nur Principal-basierte Berechtigungseintr\u00e4ge erlaubt"},
   71.88          {"expected permission entry", "Berechtigungseintrag erwartet"},
   71.89          {"number ", "Nummer "},
   71.90          {"expected ", "erwartet "},
   71.91 @@ -130,11 +130,11 @@
   71.92  
   71.93          // SolarisPrincipals
   71.94          {"SolarisNumericGroupPrincipal [Primary Group]: ",
   71.95 -        "Solaris numerischer Gruppen-Principal [Prim\u00e4rgruppe]: "},
   71.96 +                "Solaris numerischer Gruppen-Principal [Prim\u00e4rgruppe]: "},
   71.97          {"SolarisNumericGroupPrincipal [Supplementary Group]: ",
   71.98 -        "Solaris numerischer Gruppen-Principal [Zusatzgruppe]: "},
   71.99 +                "Solaris numerischer Gruppen-Principal [Zusatzgruppe]: "},
  71.100          {"SolarisNumericUserPrincipal: ",
  71.101 -        "Solaris numerischer Benutzer-Principal: "},
  71.102 +                "Solaris numerischer Benutzer-Principal: "},
  71.103          {"SolarisPrincipal: ", "Solaris-Principal: "},
  71.104          {"provided null name", "enthielt leeren Namen"}
  71.105  
    72.1 --- a/src/share/classes/sun/security/util/AuthResources_es.java	Thu Apr 22 16:54:34 2010 -0700
    72.2 +++ b/src/share/classes/sun/security/util/AuthResources_es.java	Thu Apr 29 13:53:09 2010 -0700
    72.3 @@ -1,5 +1,5 @@
    72.4  /*
    72.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    72.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    72.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    72.8   *
    72.9   * This code is free software; you can redistribute it and/or modify it
   72.10 @@ -53,30 +53,30 @@
   72.11  
   72.12          // UnixPrincipals
   72.13          {"UnixNumericGroupPrincipal [Primary Group]: name",
   72.14 -        "UnixNumericGroupPrincipal [Grupo principal] {0}"},
   72.15 +                "UnixNumericGroupPrincipal [Grupo principal] {0}"},
   72.16          {"UnixNumericGroupPrincipal [Supplementary Group]: name",
   72.17 -        "UnixNumericGroupPrincipal [Grupo adicional] {0}"},
   72.18 +                "UnixNumericGroupPrincipal [Grupo adicional] {0}"},
   72.19          {"UnixNumericUserPrincipal: name", "UnixNumericUserPrincipal: {0}"},
   72.20          {"UnixPrincipal: name", "UnixPrincipal: {0}"},
   72.21  
   72.22          // com.sun.security.auth.login.ConfigFile
   72.23          {"Unable to properly expand config", "No se puede ampliar correctamente {0}"},
   72.24          {"extra_config (No such file or directory)",
   72.25 -        "{0} (No existe tal archivo o directorio)"},
   72.26 -        {"Unable to locate a login configuration",
   72.27 -        "No se puede localizar una configuraci\u00f3n de inicio de sesi\u00f3n"},
   72.28 +                "{0} (No existe tal archivo o directorio)"},
   72.29 +        {"Configuration Error:\n\tNo such file or directory",
   72.30 +                "Error de configuraci\u00f3n:\n\tNo se encuentra archivo o directorio"},
   72.31          {"Configuration Error:\n\tInvalid control flag, flag",
   72.32 -        "Error de configuraci\u00f3n:\n\tIndicador de control no v\u00e1lido, {0}"},
   72.33 +                "Error de configuraci\u00f3n:\n\tIndicador de control no v\u00e1lido, {0}"},
   72.34          {"Configuration Error:\n\tCan not specify multiple entries for appName",
   72.35 -        "Error de configuraci\u00f3n:\n\tNo se pueden especificar m\u00faltiples entradas para {0}"},
   72.36 +            "Error de configuraci\u00f3n:\n\tNo se pueden especificar m\u00faltiples entradas para {0}"},
   72.37          {"Configuration Error:\n\texpected [expect], read [end of file]",
   72.38 -        "Error de configuraci\u00f3n:\n\tse esperaba [{0}], se ha le\u00eddo [end of file]"},
   72.39 +                "Error de configuraci\u00f3n:\n\tse esperaba [{0}], se ha le\u00eddo [end of file]"},
   72.40          {"Configuration Error:\n\tLine line: expected [expect], found [value]",
   72.41 -        "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: se esperaba [{1}], se ha encontrado [{2}]"},
   72.42 +            "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: se esperaba [{1}], se ha encontrado [{2}]"},
   72.43          {"Configuration Error:\n\tLine line: expected [expect]",
   72.44 -        "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: se esperaba [{1}]"},
   72.45 +            "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: se esperaba [{1}]"},
   72.46          {"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
   72.47 -        "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: propiedad de sistema [{1}] ampliada a valor vac\u00edo"},
   72.48 +            "Error de configuraci\u00f3n:\n\tL\u00ednea {0}: propiedad de sistema [{1}] ampliada a valor vac\u00edo"},
   72.49  
   72.50          // com.sun.security.auth.module.JndiLoginModule
   72.51          {"username: ","nombre de usuario: "},
   72.52 @@ -88,13 +88,13 @@
   72.53          {"Keystore alias: ","Alias de almac\u00e9n de claves: "},
   72.54          {"Keystore password: ","Contrase\u00f1a de almac\u00e9n de claves: "},
   72.55          {"Private key password (optional): ",
   72.56 -        "Contrase\u00f1a de clave privada (opcional): "},
   72.57 +            "Contrase\u00f1a de clave privada (opcional): "},
   72.58  
   72.59          // com.sun.security.auth.module.Krb5LoginModule
   72.60          {"Kerberos username [[defUsername]]: ",
   72.61 -        "Nombre de usuario de Kerberos [{0}]: "},
   72.62 +                "Nombre de usuario de Kerberos [{0}]: "},
   72.63          {"Kerberos password for [username]: ",
   72.64 -            "Contrase\u00f1a de Kerberos de {0}: "},
   72.65 +                "Contrase\u00f1a de Kerberos de {0}: "},
   72.66  
   72.67          /***    EVERYTHING BELOW IS DEPRECATED  ***/
   72.68  
   72.69 @@ -107,17 +107,17 @@
   72.70          {"(", "("},
   72.71          {")", ")"},
   72.72          {"attempt to add a Permission to a readonly PermissionCollection",
   72.73 -        "se ha intentado agregar un Permiso a una Colecci\u00f3n de permisos de s\u00f3lo lectura"},
   72.74 +            "se ha intentado agregar un Permiso a una Colecci\u00f3n de permisos de s\u00f3lo lectura"},
   72.75  
   72.76          // com.sun.security.auth.PolicyParser
   72.77          {"expected keystore type", "se esperaba un tipo de almac\u00e9n de claves"},
   72.78          {"can not specify Principal with a ",
   72.79 -        "no se puede especificar Principal con una "},
   72.80 +                "no se puede especificar Principal con una "},
   72.81          {"wildcard class without a wildcard name",
   72.82 -        "clase comod\u00edn sin nombre de comod\u00edn"},
   72.83 +                "clase comod\u00edn sin nombre de comod\u00edn"},
   72.84          {"expected codeBase or SignedBy", "se esperaba base de c\u00f3digos o SignedBy"},
   72.85          {"only Principal-based grant entries permitted",
   72.86 -        "s\u00f3lo se permite conceder entradas basadas en Principal"},
   72.87 +                "s\u00f3lo se permite conceder entradas basadas en Principal"},
   72.88          {"expected permission entry", "se esperaba un permiso de entrada"},
   72.89          {"number ", "n\u00famero "},
   72.90          {"expected ", "se esperaba "},
   72.91 @@ -130,11 +130,11 @@
   72.92  
   72.93          // SolarisPrincipals
   72.94          {"SolarisNumericGroupPrincipal [Primary Group]: ",
   72.95 -        "SolarisNumericGroupPrincipal [Grupo principal]: "},
   72.96 +                "SolarisNumericGroupPrincipal [Grupo principal]: "},
   72.97          {"SolarisNumericGroupPrincipal [Supplementary Group]: ",
   72.98 -        "SolarisNumericGroupPrincipal [Grupo adicional]: "},
   72.99 +                "SolarisNumericGroupPrincipal [Grupo adicional]: "},
  72.100          {"SolarisNumericUserPrincipal: ",
  72.101 -        "SolarisNumericUserPrincipal: "},
  72.102 +                "SolarisNumericUserPrincipal: "},
  72.103          {"SolarisPrincipal: ", "SolarisPrincipal: "},
  72.104          {"provided null name", "se ha proporcionado un nombre nulo"}
  72.105  
    73.1 --- a/src/share/classes/sun/security/util/AuthResources_fr.java	Thu Apr 22 16:54:34 2010 -0700
    73.2 +++ b/src/share/classes/sun/security/util/AuthResources_fr.java	Thu Apr 29 13:53:09 2010 -0700
    73.3 @@ -1,5 +1,5 @@
    73.4  /*
    73.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    73.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    73.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    73.8   *
    73.9   * This code is free software; you can redistribute it and/or modify it
   73.10 @@ -53,30 +53,30 @@
   73.11  
   73.12          // UnixPrincipals
   73.13          {"UnixNumericGroupPrincipal [Primary Group]: name",
   73.14 -        "UnixNumericGroupPrincipal [groupe principal] : {0}"},
   73.15 +                "UnixNumericGroupPrincipal [groupe principal] : {0}"},
   73.16          {"UnixNumericGroupPrincipal [Supplementary Group]: name",
   73.17 -        "UnixNumericGroupPrincipal [groupe suppl\u00e9mentaire] : {0}"},
   73.18 +                "UnixNumericGroupPrincipal [groupe suppl\u00e9mentaire] : {0}"},
   73.19          {"UnixNumericUserPrincipal: name", "UnixNumericUserPrincipal : {0}"},
   73.20          {"UnixPrincipal: name", "UnixPrincipal : {0}"},
   73.21  
   73.22          // com.sun.security.auth.login.ConfigFile
   73.23          {"Unable to properly expand config", "Impossible de d\u00e9velopper {0} correctement"},
   73.24          {"extra_config (No such file or directory)",
   73.25 -        "{0} (fichier ou r\u00e9pertoire introuvable)"},
   73.26 -        {"Unable to locate a login configuration",
   73.27 -        "Impossible de trouver une configuration de connexion"},
   73.28 +                "{0} (fichier ou r\u00e9pertoire introuvable)"},
   73.29 +        {"Configuration Error:\n\tNo such file or directory",
   73.30 +                "Erreur de configuration\u00a0:\n\tAucun fichier ou r\u00e9pertoire de ce type"},
   73.31          {"Configuration Error:\n\tInvalid control flag, flag",
   73.32 -        "Erreur de configuration :\n\tIndicateur de contr\u00f4le non valide, {0}"},
   73.33 +                "Erreur de configuration :\n\tIndicateur de contr\u00f4le non valide, {0}"},
   73.34          {"Configuration Error:\n\tCan not specify multiple entries for appName",
   73.35 -        "Erreur de configuration :\n\tImpossible de sp\u00e9cifier des entr\u00e9es multiples pour {0}"},
   73.36 +            "Erreur de configuration :\n\tImpossible de sp\u00e9cifier des entr\u00e9es multiples pour {0}"},
   73.37          {"Configuration Error:\n\texpected [expect], read [end of file]",
   73.38 -        "Erreur de configuration :\n\tattendu [{0}], lecture [fin de fichier]"},
   73.39 +                "Erreur de configuration :\n\tattendu [{0}], lecture [fin de fichier]"},
   73.40          {"Configuration Error:\n\tLine line: expected [expect], found [value]",
   73.41 -        "Erreur de configuration :\n\tLigne {0} : attendu [{1}], trouv\u00e9 [{2}]"},
   73.42 +            "Erreur de configuration :\n\tLigne {0} : attendu [{1}], trouv\u00e9 [{2}]"},
   73.43          {"Configuration Error:\n\tLine line: expected [expect]",
   73.44 -        "Erreur de configuration :\n\tLigne {0} : attendu [{1}]"},
   73.45 +            "Erreur de configuration :\n\tLigne {0} : attendu [{1}]"},
   73.46          {"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
   73.47 -        "Erreur de configuration :\n\tLigne {0} : propri\u00e9t\u00e9 syst\u00e8me [{1}] d\u00e9velopp\u00e9e en valeur vide"},
   73.48 +            "Erreur de configuration :\n\tLigne {0} : propri\u00e9t\u00e9 syst\u00e8me [{1}] d\u00e9velopp\u00e9e en valeur vide"},
   73.49  
   73.50          // com.sun.security.auth.module.JndiLoginModule
   73.51          {"username: ","Nom d'utilisateur : "},
   73.52 @@ -88,13 +88,13 @@
   73.53          {"Keystore alias: ","Alias pour Keystore : "},
   73.54          {"Keystore password: ","Mot de passe pour Keystore : "},
   73.55          {"Private key password (optional): ",
   73.56 -        "Mot de passe de cl\u00e9 priv\u00e9e (facultatif) : "},
   73.57 +            "Mot de passe de cl\u00e9 priv\u00e9e (facultatif) : "},
   73.58  
   73.59          // com.sun.security.auth.module.Krb5LoginModule
   73.60          {"Kerberos username [[defUsername]]: ",
   73.61 -        "Nom d''utilisateur Kerberos [{0}] : "},
   73.62 +                "Nom d''utilisateur Kerberos [{0}] : "},
   73.63          {"Kerberos password for [username]: ",
   73.64 -            "Mot de pass\u00e9 Kerberos pour {0} : "},
   73.65 +                "Mot de pass\u00e9 Kerberos pour {0} : "},
   73.66  
   73.67          /***    EVERYTHING BELOW IS DEPRECATED  ***/
   73.68  
   73.69 @@ -107,17 +107,17 @@
   73.70          {"(", "("},
   73.71          {")", ")"},
   73.72          {"attempt to add a Permission to a readonly PermissionCollection",
   73.73 -        "tentative d'ajout de permission \u00e0 un ensemble de permissions en lecture seule"},
   73.74 +            "tentative d'ajout de permission \u00e0 un ensemble de permissions en lecture seule"},
   73.75  
   73.76          // com.sun.security.auth.PolicyParser
   73.77          {"expected keystore type", "type de Keystore attendu"},
   73.78          {"can not specify Principal with a ",
   73.79 -        "impossible de sp\u00e9cifier Principal avec une"},
   73.80 +                "impossible de sp\u00e9cifier Principal avec une "},
   73.81          {"wildcard class without a wildcard name",
   73.82 -        "classe g\u00e9n\u00e9rique sans nom g\u00e9n\u00e9rique"},
   73.83 +                "classe g\u00e9n\u00e9rique sans nom g\u00e9n\u00e9rique"},
   73.84          {"expected codeBase or SignedBy", "codeBase ou SignedBy attendu"},
   73.85          {"only Principal-based grant entries permitted",
   73.86 -        "seules les entr\u00e9es bas\u00e9es sur Principal sont autoris\u00e9es"},
   73.87 +                "seules les entr\u00e9es bas\u00e9es sur Principal sont autoris\u00e9es"},
   73.88          {"expected permission entry", "entr\u00e9e de permission attendue"},
   73.89          {"number ", "nombre "},
   73.90          {"expected ", "attendu "},
   73.91 @@ -130,11 +130,11 @@
   73.92  
   73.93          // SolarisPrincipals
   73.94          {"SolarisNumericGroupPrincipal [Primary Group]: ",
   73.95 -        "SolarisNumericGroupPrincipal [groupe principal] : "},
   73.96 +                "SolarisNumericGroupPrincipal [groupe principal] : "},
   73.97          {"SolarisNumericGroupPrincipal [Supplementary Group]: ",
   73.98 -        "SolarisNumericGroupPrincipal [groupe suppl\u00e9mentaire] : "},
   73.99 +                "SolarisNumericGroupPrincipal [groupe suppl\u00e9mentaire] : "},
  73.100          {"SolarisNumericUserPrincipal: ",
  73.101 -        "SolarisNumericUserPrincipal : "},
  73.102 +                "SolarisNumericUserPrincipal : "},
  73.103          {"SolarisPrincipal: ", "SolarisPrincipal : "},
  73.104          {"provided null name", "nom Null sp\u00e9cifi\u00e9"}
  73.105  
    74.1 --- a/src/share/classes/sun/security/util/AuthResources_it.java	Thu Apr 22 16:54:34 2010 -0700
    74.2 +++ b/src/share/classes/sun/security/util/AuthResources_it.java	Thu Apr 29 13:53:09 2010 -0700
    74.3 @@ -1,5 +1,5 @@
    74.4  /*
    74.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    74.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    74.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    74.8   *
    74.9   * This code is free software; you can redistribute it and/or modify it
   74.10 @@ -38,7 +38,6 @@
   74.11  public class AuthResources_it extends java.util.ListResourceBundle {
   74.12  
   74.13      private static final Object[][] contents = {
   74.14 -
   74.15          // NT principals
   74.16          {"invalid null input: value", "input nullo non valido: {0}"},
   74.17          {"NTDomainPrincipal: name", "NTDomainPrincipal: {0}"},
   74.18 @@ -53,30 +52,30 @@
   74.19  
   74.20          // UnixPrincipals
   74.21          {"UnixNumericGroupPrincipal [Primary Group]: name",
   74.22 -        "UnixNumericGroupPrincipal [gruppo primario]: {0}"},
   74.23 +                "UnixNumericGroupPrincipal [gruppo primario]: {0}"},
   74.24          {"UnixNumericGroupPrincipal [Supplementary Group]: name",
   74.25 -        "UnixNumericGroupPrincipal [gruppo supplementare]: {0}"},
   74.26 +                "UnixNumericGroupPrincipal [gruppo supplementare]: {0}"},
   74.27          {"UnixNumericUserPrincipal: name", "UnixNumericUserPrincipal: {0}"},
   74.28          {"UnixPrincipal: name", "UnixPrincipal: {0}"},
   74.29  
   74.30          // com.sun.security.auth.login.ConfigFile
   74.31          {"Unable to properly expand config", "Impossibile espandere correttamente {0}"},
   74.32          {"extra_config (No such file or directory)",
   74.33 -        "{0} (file o directory inesistente)"},
   74.34 -        {"Unable to locate a login configuration",
   74.35 -        "Impossibile trovare una configurazione di login"},
   74.36 +                "{0} (file o directory inesistente)"},
   74.37 +        {"Configuration Error:\n\tNo such file or directory",
   74.38 +                "Errore di configurazione:\n\tfile o directory inesistente"},
   74.39          {"Configuration Error:\n\tInvalid control flag, flag",
   74.40 -        "Errore di configurazione:\n\tflag di controllo non valido, {0}"},
   74.41 +                "Errore di configurazione:\n\tflag di controllo non valido, {0}"},
   74.42          {"Configuration Error:\n\tCan not specify multiple entries for appName",
   74.43 -        "Errore di configurazione:\n\timpossibile specificare pi\u00f9 valori per {0}"},
   74.44 +            "Errore di configurazione:\n\timpossibile specificare pi\u00f9 valori per {0}"},
   74.45          {"Configuration Error:\n\texpected [expect], read [end of file]",
   74.46 -        "Errore di configurazione:\n\tprevisto [{0}], letto [end of file]"},
   74.47 +                "Errore di configurazione:\n\tprevisto [{0}], letto [end of file]"},
   74.48          {"Configuration Error:\n\tLine line: expected [expect], found [value]",
   74.49 -        "Errore di configurazione:\n\triga {0}: previsto [{1}], trovato [{2}]"},
   74.50 +            "Errore di configurazione:\n\triga {0}: previsto [{1}], trovato [{2}]"},
   74.51          {"Configuration Error:\n\tLine line: expected [expect]",
   74.52 -        "Errore di configurazione:\n\triga {0}: previsto [{1}]"},
   74.53 +            "Errore di configurazione:\n\triga {0}: previsto [{1}]"},
   74.54          {"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
   74.55 -        "Errore di configurazione:\n\triga {0}: propriet\u00e0 di sistema [{1}] espansa a valore vuoto"},
   74.56 +            "Errore di configurazione:\n\triga {0}: propriet\u00e0 di sistema [{1}] espansa a valore vuoto"},
   74.57  
   74.58          // com.sun.security.auth.module.JndiLoginModule
   74.59          {"username: ","Nome utente: "},
   74.60 @@ -88,13 +87,13 @@
   74.61          {"Keystore alias: ","Alias keystore: "},
   74.62          {"Keystore password: ","Password keystore: "},
   74.63          {"Private key password (optional): ",
   74.64 -        "Password chiave privata (opzionale): "},
   74.65 +            "Password chiave privata (opzionale): "},
   74.66  
   74.67          // com.sun.security.auth.module.Krb5LoginModule
   74.68          {"Kerberos username [[defUsername]]: ",
   74.69                  "Nome utente Kerberos [{0}]: "},
   74.70          {"Kerberos password for [username]: ",
   74.71 -                    "Password Kerberos per {0}: "},
   74.72 +                "Password Kerberos per {0}: "},
   74.73  
   74.74          /***    EVERYTHING BELOW IS DEPRECATED  ***/
   74.75  
   74.76 @@ -102,22 +101,22 @@
   74.77          {": error parsing ", ": errore nell'analisi "},
   74.78          {": ", ": "},
   74.79          {": error adding Permission ", ": errore nell'aggiunta del permesso "},
   74.80 -        {" ", " "},
   74.81 +        {" ", "  "},
   74.82          {": error adding Entry ", ": errore nell'aggiunta dell'entry "},
   74.83          {"(", "("},
   74.84          {")", ")"},
   74.85          {"attempt to add a Permission to a readonly PermissionCollection",
   74.86 -        "tentativo di aggiungere un permesso a una PermissionCollection di sola lettura"},
   74.87 +            "tentativo di aggiungere un permesso a una PermissionCollection di sola lettura"},
   74.88  
   74.89          // com.sun.security.auth.PolicyParser
   74.90          {"expected keystore type", "tipo di keystore previsto"},
   74.91          {"can not specify Principal with a ",
   74.92 -        "impossibile specificare Principal con una "},
   74.93 +                "impossibile specificare Principal con una "},
   74.94          {"wildcard class without a wildcard name",
   74.95 -        "classe wildcard senza un nome wildcard"},
   74.96 +                "classe wildcard senza un nome wildcard"},
   74.97          {"expected codeBase or SignedBy", "previsto codeBase o SignedBy"},
   74.98          {"only Principal-based grant entries permitted",
   74.99 -        "sono permessi solo valori garantiti basati su Principal"},
  74.100 +                "sono permessi solo valori garantiti basati su Principal"},
  74.101          {"expected permission entry", "prevista entry di permesso"},
  74.102          {"number ", "numero "},
  74.103          {"expected ", "previsto "},
  74.104 @@ -130,11 +129,11 @@
  74.105  
  74.106          // SolarisPrincipals
  74.107          {"SolarisNumericGroupPrincipal [Primary Group]: ",
  74.108 -        "SolarisNumericGroupPrincipal [gruppo primario]: "},
  74.109 +                "SolarisNumericGroupPrincipal [gruppo primario]: "},
  74.110          {"SolarisNumericGroupPrincipal [Supplementary Group]: ",
  74.111 -        "SolarisNumericGroupPrincipal [gruppo supplementare]: "},
  74.112 +                "SolarisNumericGroupPrincipal [gruppo supplementare]: "},
  74.113          {"SolarisNumericUserPrincipal: ",
  74.114 -        "SolarisNumericUserPrincipal: "},
  74.115 +                "SolarisNumericUserPrincipal: "},
  74.116          {"SolarisPrincipal: ", "SolarisPrincipal: "},
  74.117          {"provided null name", "il nome fornito \u00e8 nullo"}
  74.118  
    75.1 --- a/src/share/classes/sun/security/util/AuthResources_ja.java	Thu Apr 22 16:54:34 2010 -0700
    75.2 +++ b/src/share/classes/sun/security/util/AuthResources_ja.java	Thu Apr 29 13:53:09 2010 -0700
    75.3 @@ -1,5 +1,5 @@
    75.4  /*
    75.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    75.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    75.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    75.8   *
    75.9   * This code is free software; you can redistribute it and/or modify it
   75.10 @@ -63,8 +63,8 @@
   75.11          {"Unable to properly expand config", "{0} \u3092\u6b63\u3057\u304f\u5c55\u958b\u3067\u304d\u307e\u305b\u3093\u3002"},
   75.12          {"extra_config (No such file or directory)",
   75.13                  "{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)"},
   75.14 -        {"Unable to locate a login configuration",
   75.15 -                "\u30ed\u30b0\u30a4\u30f3\u69cb\u6210\u3092\u691c\u51fa\u3067\u304d\u307e\u305b\u3093\u3002"},
   75.16 +        {"Configuration Error:\n\tNo such file or directory",
   75.17 +                "\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"},
   75.18          {"Configuration Error:\n\tInvalid control flag, flag",
   75.19                  "\u69cb\u6210\u30a8\u30e9\u30fc:\n\t\u7121\u52b9\u306a\u5236\u5fa1\u30d5\u30e9\u30b0: {0}"},
   75.20          {"Configuration Error:\n\tCan not specify multiple entries for appName",
   75.21 @@ -76,7 +76,7 @@
   75.22          {"Configuration Error:\n\tLine line: expected [expect]",
   75.23              "\u69cb\u6210\u30a8\u30e9\u30fc:\n\t\u884c {0}: [{1}] \u304c\u8981\u6c42\u3055\u308c\u307e\u3057\u305f\u3002"},
   75.24          {"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
   75.25 -            "\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"},
   75.26 +            "\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"},
   75.27  
   75.28          // com.sun.security.auth.module.JndiLoginModule
   75.29          {"username: ","\u30e6\u30fc\u30b6\u540d: "},
    76.1 --- a/src/share/classes/sun/security/util/AuthResources_ko.java	Thu Apr 22 16:54:34 2010 -0700
    76.2 +++ b/src/share/classes/sun/security/util/AuthResources_ko.java	Thu Apr 29 13:53:09 2010 -0700
    76.3 @@ -1,5 +1,5 @@
    76.4  /*
    76.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    76.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    76.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    76.8   *
    76.9   * This code is free software; you can redistribute it and/or modify it
   76.10 @@ -63,8 +63,8 @@
   76.11          {"Unable to properly expand config", "\uc801\uc808\ud788 \ud655\uc7a5\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. {0}"},
   76.12          {"extra_config (No such file or directory)",
   76.13                  "{0} (\ud574\ub2f9 \ud30c\uc77c\uc774\ub098 \ub514\ub809\ud1a0\ub9ac\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.)"},
   76.14 -        {"Unable to locate a login configuration",
   76.15 -                "\ub85c\uadf8\uc778 \uad6c\uc131\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4."},
   76.16 +        {"Configuration Error:\n\tNo such file or directory",
   76.17 +                "\uad6c\uc131 \uc624\ub958:\n\t\ud574\ub2f9 \ud30c\uc77c\uc774\ub098 \ub514\ub809\ud1a0\ub9ac\uac00 \uc5c6\uc2b5\ub2c8\ub2e4."},
   76.18          {"Configuration Error:\n\tInvalid control flag, flag",
   76.19                  "\uad6c\uc131 \uc624\ub958:\n\t\uc798\ubabb\ub41c \ucee8\ud2b8\ub864 \ud50c\ub798\uadf8, {0}"},
   76.20          {"Configuration Error:\n\tCan not specify multiple entries for appName",
    77.1 --- a/src/share/classes/sun/security/util/AuthResources_sv.java	Thu Apr 22 16:54:34 2010 -0700
    77.2 +++ b/src/share/classes/sun/security/util/AuthResources_sv.java	Thu Apr 29 13:53:09 2010 -0700
    77.3 @@ -1,5 +1,5 @@
    77.4  /*
    77.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    77.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    77.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    77.8   *
    77.9   * This code is free software; you can redistribute it and/or modify it
   77.10 @@ -53,47 +53,48 @@
   77.11  
   77.12          // UnixPrincipals
   77.13          {"UnixNumericGroupPrincipal [Primary Group]: name",
   77.14 -        "UnixNumericGroupPrincipal [prim\u00e4r grupp]: {0}"},
   77.15 +                "UnixNumericGroupPrincipal [prim\u00e4r grupp]: {0}"},
   77.16          {"UnixNumericGroupPrincipal [Supplementary Group]: name",
   77.17 -        "UnixNumericGroupPrincipal [till\u00e4ggsgrupp]: {0}"},
   77.18 +                "UnixNumericGroupPrincipal [till\u00e4ggsgrupp]: {0}"},
   77.19          {"UnixNumericUserPrincipal: name", "UnixNumericUserPrincipal: {0}"},
   77.20          {"UnixPrincipal: name", "UnixPrincipal: {0}"},
   77.21  
   77.22          // com.sun.security.auth.login.ConfigFile
   77.23          {"Unable to properly expand config", "Det g\u00e5r inte att utvidga korrekt {0}"},
   77.24          {"extra_config (No such file or directory)",
   77.25 -        "{0} (Det finns ingen s\u00e5dan fil eller katalog.)"},
   77.26 -        {"Unable to locate a login configuration",
   77.27 -        "Det g\u00e5r inte att hitta n\u00e5gon inloggningskonfiguration"},
   77.28 +                "{0} (Det finns ingen s\u00e5dan fil eller katalog.)"},
   77.29 +        {"Configuration Error:\n\tNo such file or directory",
   77.30 +                "Konfigurationsfel:\n\tDet finns ingen s\u00e5dan fil eller katalog."},
   77.31          {"Configuration Error:\n\tInvalid control flag, flag",
   77.32 -        "Konfigurationsfel:\n\tOgiltig kontrollflagga, {0}"},
   77.33 +                "Konfigurationsfel:\n\tOgiltig kontrollflagga, {0}"},
   77.34          {"Configuration Error:\n\tCan not specify multiple entries for appName",
   77.35 -        "Konfigurationsfel:\n\tDet g\u00e5r inte att ange flera poster f\u00f6r {0}"},
   77.36 +            "Konfigurationsfel:\n\tDet g\u00e5r inte att ange flera poster f\u00f6r {0}"},
   77.37          {"Configuration Error:\n\texpected [expect], read [end of file]",
   77.38 -        "Konfigurationsfel:\n\tf\u00f6rv\u00e4ntade [{0}], l\u00e4ste [end of file]"},
   77.39 +                "Konfigurationsfel:\n\tf\u00f6rv\u00e4ntade [{0}], l\u00e4ste [end of file]"},
   77.40          {"Configuration Error:\n\tLine line: expected [expect], found [value]",
   77.41 -        "Konfigurationsfel:\n\tLine {0}: f\u00f6rv\u00e4ntade [{1}], hittade [{2}]"},
   77.42 +            "Konfigurationsfel:\n\tLine {0}: f\u00f6rv\u00e4ntade [{1}], hittade [{2}]"},
   77.43          {"Configuration Error:\n\tLine line: expected [expect]",
   77.44 -        "Konfigurationsfel:\n\tLine {0}: f\u00f6rv\u00e4ntade [{1}]"},
   77.45 +            "Konfigurationsfel:\n\tLine {0}: f\u00f6rv\u00e4ntade [{1}]"},
   77.46          {"Configuration Error:\n\tLine line: system property [value] expanded to empty value",
   77.47 -        "Konfigurationsfel:\n\tLine {0}: systemegenskapen [{1}] utvidgad till tomt v\u00e4rde"},
   77.48 +            "Konfigurationsfel:\n\tLine {0}: systemegenskapen [{1}] utvidgad till tomt v\u00e4rde"},
   77.49  
   77.50          // com.sun.security.auth.module.JndiLoginModule
   77.51          {"username: ","anv\u00e4ndarnamn: "},
   77.52          {"password: ","l\u00f6senord: "},
   77.53  
   77.54          // com.sun.security.auth.module.KeyStoreLoginModule
   77.55 -        {"Please enter keystore information","Ange keystore-information"},
   77.56 +        {"Please enter keystore information",
   77.57 +                "Ange keystore-information"},
   77.58          {"Keystore alias: ","Keystore-alias: "},
   77.59          {"Keystore password: ","Keystore-l\u00f6senord: "},
   77.60          {"Private key password (optional): ",
   77.61 -        "L\u00f6senord f\u00f6r personlig nyckel (valfritt): "},
   77.62 +            "L\u00f6senord f\u00f6r personlig nyckel (valfritt): "},
   77.63  
   77.64          // com.sun.security.auth.module.Krb5LoginModule
   77.65          {"Kerberos username [[defUsername]]: ",
   77.66 -        "Kerberos-anv\u00e4ndarnamn [{0}]: "},
   77.67 +                "Kerberos-anv\u00e4ndarnamn [{0}]: "},
   77.68          {"Kerberos password for [username]: ",
   77.69 -            "Kerberos-l\u00f6senord f\u00f6r {0}: "},
   77.70 +                "Kerberos-l\u00f6senord f\u00f6r {0}: "},
   77.71  
   77.72          /***    EVERYTHING BELOW IS DEPRECATED  ***/
   77.73  
   77.74 @@ -106,17 +107,17 @@
   77.75          {"(", "("},
   77.76          {")", ")"},
   77.77          {"attempt to add a Permission to a readonly PermissionCollection",
   77.78 -        "f\u00f6rs\u00f6k att l\u00e4gga till beh\u00f6righet till skrivskyddad PermissionCollection"},
   77.79 +            "f\u00f6rs\u00f6k att l\u00e4gga till beh\u00f6righet till skrivskyddad PermissionCollection"},
   77.80  
   77.81          // com.sun.security.auth.PolicyParser
   77.82          {"expected keystore type", "f\u00f6rv\u00e4ntad keystore-typ"},
   77.83          {"can not specify Principal with a ",
   77.84 -        "det g\u00e5r inte att specificera n\u00e5gon principal med "},
   77.85 +                "det g\u00e5r inte att specificera n\u00e5gon principal med "},
   77.86          {"wildcard class without a wildcard name",
   77.87 -        "jokertecken f\u00f6r klass men inte f\u00f6r namn"},
   77.88 +                "jokertecken f\u00f6r klass men inte f\u00f6r namn"},
   77.89          {"expected codeBase or SignedBy", "f\u00f6rv\u00e4ntade codeBase eller SignedBy"},
   77.90          {"only Principal-based grant entries permitted",
   77.91 -        "enbart Principal-baserade poster till\u00e5tna"},
   77.92 +                "enbart Principal-baserade poster till\u00e5tna"},
   77.93          {"expected permission entry", "f\u00f6rv\u00e4ntade beh\u00f6righetspost"},
   77.94          {"number ", "antal "},
   77.95          {"expected ", "f\u00f6rv\u00e4ntade "},
   77.96 @@ -129,11 +130,11 @@
   77.97  
   77.98          // SolarisPrincipals
   77.99          {"SolarisNumericGroupPrincipal [Primary Group]: ",
  77.100 -        "SolarisNumericGroupPrincipal [prim\u00e4r grupp]: "},
  77.101 +                "SolarisNumericGroupPrincipal [prim\u00e4r grupp]: "},
  77.102          {"SolarisNumericGroupPrincipal [Supplementary Group]: ",
  77.103 -        "SolarisNumericGroupPrincipal [till\u00e4ggsgrupp]: "},
  77.104 +                "SolarisNumericGroupPrincipal [till\u00e4ggsgrupp]: "},
  77.105          {"SolarisNumericUserPrincipal: ",
  77.106 -        "SolarisNumericUserPrincipal: "},
  77.107 +                "SolarisNumericUserPrincipal: "},
  77.108          {"SolarisPrincipal: ", "SolarisPrincipal: "},
  77.109          {"provided null name", "gav null-namn"}
  77.110  
    78.1 --- a/src/share/classes/sun/security/util/AuthResources_zh_CN.java	Thu Apr 22 16:54:34 2010 -0700
    78.2 +++ b/src/share/classes/sun/security/util/AuthResources_zh_CN.java	Thu Apr 29 13:53:09 2010 -0700
    78.3 @@ -1,5 +1,5 @@
    78.4  /*
    78.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    78.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    78.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    78.8   *
    78.9   * This code is free software; you can redistribute it and/or modify it
   78.10 @@ -63,8 +63,8 @@
   78.11          {"Unable to properly expand config", "\u65e0\u6cd5\u5b8c\u5168\u6269\u5145 {0}"},
   78.12          {"extra_config (No such file or directory)",
   78.13                  "{0} \uff08\u6ca1\u6709\u6b64\u6587\u4ef6\u6216\u76ee\u5f55\uff09"},
   78.14 -        {"Unable to locate a login configuration",
   78.15 -                "\u65e0\u6cd5\u5b9a\u4f4d\u767b\u5f55\u914d\u7f6e"},
   78.16 +        {"Configuration Error:\n\tNo such file or directory",
   78.17 +                "\u914d\u7f6e\u9519\u8bef\uff1a\n\t\u6ca1\u6709\u6b64\u6587\u4ef6\u6216\u76ee\u5f55"},
   78.18          {"Configuration Error:\n\tInvalid control flag, flag",
   78.19                  "\u914d\u7f6e\u9519\u8bef\uff1a\n\t\u65e0\u6548\u7684\u63a7\u5236\u6807\u8bb0\uff0c {0}"},
   78.20          {"Configuration Error:\n\tCan not specify multiple entries for appName",
    79.1 --- a/src/share/classes/sun/security/util/AuthResources_zh_TW.java	Thu Apr 22 16:54:34 2010 -0700
    79.2 +++ b/src/share/classes/sun/security/util/AuthResources_zh_TW.java	Thu Apr 29 13:53:09 2010 -0700
    79.3 @@ -1,5 +1,5 @@
    79.4  /*
    79.5 - * Copyright 2001-2005 Sun Microsystems, Inc.  All Rights Reserved.
    79.6 + * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    79.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    79.8   *
    79.9   * This code is free software; you can redistribute it and/or modify it
   79.10 @@ -63,8 +63,8 @@
   79.11          {"Unable to properly expand config", "\u7121\u6cd5\u5b8c\u5168\u64f4\u5145 {0}"},
   79.12          {"extra_config (No such file or directory)",
   79.13                  "{0} \uff08\u6c92\u6709\u6b64\u6a94\u6848\u6216\u76ee\u9304\uff09"},
   79.14 -        {"Unable to locate a login configuration",
   79.15 -                "\u7121\u6cd5\u5b9a\u4f4d\u767b\u5165\u914d\u7f6e"},
   79.16 +        {"Configuration Error:\n\tNo such file or directory",
   79.17 +                "\u914d\u7f6e\u932f\u8aa4\uff1a\n\t\u6c92\u6709\u9019\u985e\u7684\u6a94\u6848\u6216\u76ee\u9304"},
   79.18          {"Configuration Error:\n\tInvalid control flag, flag",
   79.19                  "\u914d\u7f6e\u932f\u8aa4\uff1a\n\t\u7121\u6548\u7684\u63a7\u5236\u65d7\u865f\uff0c {0}"},
   79.20          {"Configuration Error:\n\tCan not specify multiple entries for appName",
    80.1 --- a/src/share/classes/sun/security/x509/X509Key.java	Thu Apr 22 16:54:34 2010 -0700
    80.2 +++ b/src/share/classes/sun/security/x509/X509Key.java	Thu Apr 29 13:53:09 2010 -0700
    80.3 @@ -171,7 +171,7 @@
    80.4                                        in.data.getUnalignedBitString());
    80.5  
    80.6          } catch (InvalidKeyException e) {
    80.7 -            throw new IOException("subject key, " + e.getMessage());
    80.8 +            throw new IOException("subject key, " + e.getMessage(), e);
    80.9          }
   80.10  
   80.11          if (in.data.available() != 0)
   80.12 @@ -224,7 +224,7 @@
   80.13          } catch (NoSuchAlgorithmException e) {
   80.14              // Return generic X509Key with opaque key data (see below)
   80.15          } catch (InvalidKeySpecException e) {
   80.16 -            throw new InvalidKeyException(e.getMessage());
   80.17 +            throw new InvalidKeyException(e.getMessage(), e);
   80.18          }
   80.19  
   80.20          /*
    81.1 --- a/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java	Thu Apr 22 16:54:34 2010 -0700
    81.2 +++ b/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java	Thu Apr 29 13:53:09 2010 -0700
    81.3 @@ -114,7 +114,6 @@
    81.4          {"ClassTab.infoLabelFormat", "<html>\u30ed\u30fc\u30c9: {0}    \u30a2\u30f3\u30ed\u30fc\u30c9: {1}    \u7dcf\u6570: {2}</html>"},
    81.5          {"ClassTab.loadedClassesPlotter.accessibleName", "\u30ed\u30fc\u30c9\u3055\u308c\u305f\u30af\u30e9\u30b9\u306e\u56f3\u3002"},
    81.6          {"Classes","\u30af\u30e9\u30b9"},
    81.7 -        {"Clear","\u6d88\u53bb"},
    81.8          {"Close","\u9589\u3058\u308b"},
    81.9          {"Column.Name", "\u540d\u524d"},
   81.10          {"Column.PID", "PID"},
   81.11 @@ -122,7 +121,6 @@
   81.12          {"Committed virtual memory","\u78ba\u5b9a\u4eee\u60f3\u30e1\u30e2\u30ea"},
   81.13          {"Committed", "\u78ba\u5b9a"},
   81.14          {"Compiler","\u30b3\u30f3\u30d1\u30a4\u30e9"},
   81.15 -        {"Composite Navigation", "\u8907\u5408\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3"},
   81.16          {"CompositeData","CompositeData"},
   81.17          {"Config","\u69cb\u6210"},
   81.18          {"Connect", "\u63a5\u7d9a(C)"},
   81.19 @@ -158,12 +156,9 @@
   81.20          {"Detect Deadlock.toolTip", "\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u3057\u305f\u30b9\u30ec\u30c3\u30c9\u3092\u691c\u51fa\u3059\u308b"},
   81.21          {"Dimension is not supported:","\u5927\u304d\u3055\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093:"},
   81.22          {"Discard chart", "\u56f3\u3092\u7834\u68c4\u3059\u308b"},
   81.23 -        {"DurationDaysHoursMinutes","{0,choice,1#{0,number,integer} \u65e5 |1.0<{0,number,integer} \u65e5 }" +
   81.24 -                                    "{1,choice,0<{1,number,integer} \u6642\u9593 |1#{1,number,integer} \u6642\u9593 |1<{1,number,integer} \u6642\u9593 }" +
   81.25 -                                    "{2,choice,0<{2,number,integer} \u5206 |1#{2,number,integer} \u5206 |1.0<{2,number,integer} \u5206}"},
   81.26 +        {"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}"},
   81.27  
   81.28 -        {"DurationHoursMinutes","{0,choice,1#{0,number,integer} \u6642\u9593 |1<{0,number,integer} \u6642\u9593 }" +
   81.29 -                                "{1,choice,0<{1,number,integer} \u5206 |1#{1,number,integer} \u5206 |1.0<{1,number,integer} \u5206}"},
   81.30 +        {"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}"},
   81.31  
   81.32          {"DurationMinutes","{0,choice,1#{0,number,integer} \u5206 |1.0<{0,number,integer} \u5206}"},
   81.33          {"DurationSeconds","{0} \u79d2"},
   81.34 @@ -201,8 +196,6 @@
   81.35          {"Help.AboutDialog.title", "JConsole: \u88fd\u54c1\u60c5\u5831"},
   81.36          {"Help.AboutDialog.userGuideLink", "JConsole \u30e6\u30fc\u30b6\u30fc\u30ac\u30a4\u30c9:<br>{0}"},
   81.37          {"Help.AboutDialog.userGuideLink.mnemonic", 'U'},
   81.38 -        // Note: The java.sun.com URL should be used for RC, or as soon as the page is available.
   81.39 -        //{"Help.AboutDialog.UsingJMX.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"},
   81.40          {"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/MonitoringGuide/toc.html"},
   81.41          {"HelpMenu.About.title", "JConsole \u306b\u3064\u3044\u3066(A)"},
   81.42          {"HelpMenu.About.title.mnemonic", 'A'},
   81.43 @@ -241,9 +234,22 @@
   81.44          {"MBeanNotificationInfo","MBeanNotificationInfo"},
   81.45          {"MBeanOperationInfo","MBeanOperationInfo"},
   81.46          {"MBeans","MBean"},
   81.47 +        {"MBeansTab.clearNotificationsButton", "\u6d88\u53bb(C)"},
   81.48 +        {"MBeansTab.clearNotificationsButton.mnemonic", 'C'},
   81.49 +        {"MBeansTab.clearNotificationsButton.toolTip", "\u901a\u77e5\u3092\u6d88\u53bb\u3059\u308b"},
   81.50 +        {"MBeansTab.compositeNavigationMultiple", "\u8907\u5408\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 {0}/{1}"},
   81.51 +        {"MBeansTab.compositeNavigationSingle", "\u8907\u5408\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3"},
   81.52          {"MBeansTab.refreshAttributesButton", "\u66f4\u65b0(R)"},
   81.53          {"MBeansTab.refreshAttributesButton.mnemonic", 'R'},
   81.54          {"MBeansTab.refreshAttributesButton.toolTip", "\u5c5e\u6027\u3092\u66f4\u65b0\u3059\u308b"},
   81.55 +        {"MBeansTab.subscribeNotificationsButton", "\u767b\u9332(S)"},
   81.56 +        {"MBeansTab.subscribeNotificationsButton.mnemonic", 'S'},
   81.57 +        {"MBeansTab.subscribeNotificationsButton.toolTip", "\u901a\u77e5\u306e\u5f85\u6a5f\u3092\u958b\u59cb"},
   81.58 +        {"MBeansTab.tabularNavigationMultiple", "\u8868\u5f62\u5f0f\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 {0}/{1}"},
   81.59 +        {"MBeansTab.tabularNavigationSingle", "\u8868\u5f62\u5f0f\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3"},
   81.60 +        {"MBeansTab.unsubscribeNotificationsButton", "\u767b\u9332\u89e3\u9664(U)"},
   81.61 +        {"MBeansTab.unsubscribeNotificationsButton.mnemonic", 'U'},
   81.62 +        {"MBeansTab.unsubscribeNotificationsButton.toolTip", "\u901a\u77e5\u306e\u5f85\u6a5f\u3092\u505c\u6b62"},
   81.63          {"Manage Hotspot MBeans in: ", "Hotspot MBean \u3092\u7ba1\u7406: "},
   81.64          {"Max","\u6700\u5927"},
   81.65          {"Maximum heap size","\u6700\u5927\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba"},
   81.66 @@ -343,7 +349,6 @@
   81.67          {"Source","\u30bd\u30fc\u30b9"},
   81.68          {"Stack trace",
   81.69               cr + "\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9: " + cr},
   81.70 -        {"Subscribe","\u767b\u9332"},
   81.71          {"Success:","\u6210\u529f:"},
   81.72          // Note: SummaryTab.headerDateTimeFormat can be one the following:
   81.73          // 1. A combination of two styles for date and time, using the
   81.74 @@ -357,7 +362,6 @@
   81.75          {"SummaryTab.pendingFinalization.value", "{0} \u30aa\u30d6\u30b8\u30a7\u30af\u30c8"},
   81.76          {"SummaryTab.tabName", "VM \u306e\u6982\u8981"},
   81.77          {"SummaryTab.vmVersion","{0} \u30d0\u30fc\u30b8\u30e7\u30f3 {1}"},
   81.78 -        {"Tabular Navigation","\u8868\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3"},
   81.79          {"TabularData are not supported", "TabularData \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093"},
   81.80          {"Threads","\u30b9\u30ec\u30c3\u30c9"},
   81.81          {"ThreadTab.infoLabelFormat", "<html>\u30e9\u30a4\u30d6: {0}    \u30d4\u30fc\u30af: {1}    \u7dcf\u6570: {2}</html>"},
   81.82 @@ -381,7 +385,6 @@
   81.83          {"Unavailable","\u4f7f\u7528\u4e0d\u53ef\u80fd"},
   81.84          {"UNKNOWN","UNKNOWN"},
   81.85          {"Unknown Host","\u672a\u77e5\u306e\u30db\u30b9\u30c8: {0}"},
   81.86 -        {"Unsubscribe","\u767b\u9332\u89e3\u9664"},
   81.87          {"Unregister", "\u767b\u9332\u89e3\u9664"},
   81.88          {"Uptime","\u30a2\u30c3\u30d7\u30bf\u30a4\u30e0"},
   81.89          {"Uptime: ","\u30a2\u30c3\u30d7\u30bf\u30a4\u30e0: "},
   81.90 @@ -409,15 +412,11 @@
   81.91          {"You cannot drop a class here", "\u30af\u30e9\u30b9\u3092\u3053\u3053\u306b\u30c9\u30ed\u30c3\u30d7\u3067\u304d\u307e\u305b\u3093"},
   81.92          {"collapse", "\u6298\u308a\u305f\u305f\u307f"},
   81.93          {"connectionFailed1","\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f: \u518d\u8a66\u884c\u3057\u307e\u3059\u304b?"},
   81.94 -        {"connectionFailed2","{0} \u3078\u306e\u63a5\u7d9a\u304c\u6210\u529f\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002<br>" +
   81.95 -                             "\u3082\u3046\u4e00\u5ea6\u8a66\u3057\u307e\u3059\u304b?"},
   81.96 +        {"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?"},
   81.97          {"connectionLost1","\u63a5\u7d9a\u304c\u5931\u308f\u308c\u307e\u3057\u305f: \u518d\u63a5\u7d9a\u3057\u307e\u3059\u304b?"},
   81.98 -        {"connectionLost2","\u30ea\u30e2\u30fc\u30c8\u30d7\u30ed\u30bb\u30b9\u304c\u7d42\u4e86\u3057\u305f\u305f\u3081\u3001" +
   81.99 -                           "{0} \u3078\u306e\u63a5\u7d9a\u304c\u5931\u308f\u308c\u307e\u3057\u305f\u3002<br>" +
  81.100 -                           "\u518d\u63a5\u7d9a\u3057\u307e\u3059\u304b?"},
  81.101 +        {"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?"},
  81.102          {"connectingTo1","{0} \u306b\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059"},
  81.103 -        {"connectingTo2","\u73fe\u5728 {0} \u306b\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059\u3002<br>" +
  81.104 -                         "\u3053\u308c\u306b\u306f\u5c11\u3057\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059\u3002"},
  81.105 +        {"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"},
  81.106          {"deadlockAllTab","\u3059\u3079\u3066"},
  81.107          {"deadlockTab","\u30c7\u30c3\u30c9\u30ed\u30c3\u30af"},
  81.108          {"deadlockTabN","\u30c7\u30c3\u30c9\u30ed\u30c3\u30af {0}"},
    82.1 --- a/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java	Thu Apr 22 16:54:34 2010 -0700
    82.2 +++ b/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java	Thu Apr 29 13:53:09 2010 -0700
    82.3 @@ -1,5 +1,5 @@
    82.4  /*
    82.5 - * Copyright 2005-2007 Sun Microsystems, Inc.  All Rights Reserved.
    82.6 + * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
    82.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    82.8   *
    82.9   * This code is free software; you can redistribute it and/or modify it
   82.10 @@ -114,7 +114,6 @@
   82.11          {"ClassTab.infoLabelFormat", "<html>\u5df2\u52a0\u8f7d: {0}    \u672a\u52a0\u8f7d: {1}    \u603b\u8ba1: {2}</html>"},
   82.12          {"ClassTab.loadedClassesPlotter.accessibleName", "\u5df2\u88c5\u5165\u7c7b\u7684\u56fe\u8868\u3002"},
   82.13          {"Classes","\u7c7b"},
   82.14 -        {"Clear","\u6e05\u9664"},
   82.15          {"Close","\u5173\u95ed"},
   82.16          {"Column.Name", "\u540d\u79f0"},
   82.17          {"Column.PID", "PID"},
   82.18 @@ -122,7 +121,6 @@
   82.19          {"Committed virtual memory","\u5206\u914d\u7684\u865a\u62df\u5185\u5b58"},
   82.20          {"Committed", "\u5206\u914d"},
   82.21          {"Compiler","\u7f16\u8bd1\u5668"},
   82.22 -        {"Composite Navigation", "\u590d\u5408\u6d4f\u89c8"},
   82.23          {"CompositeData","\u590d\u5408\u6570\u636e"},
   82.24          {"Config","\u914d\u7f6e"},
   82.25          {"Connect", "\u8fde\u63a5"},
   82.26 @@ -158,12 +156,9 @@
   82.27          {"Detect Deadlock.toolTip", "\u68c0\u6d4b\u5230\u6b7b\u9501\u7684\u7ebf\u7a0b"},
   82.28          {"Dimension is not supported:","\u4e0d\u652f\u6301\u7ef4\uff1a"},
   82.29          {"Discard chart", "\u653e\u5f03\u56fe\u8868"},
   82.30 -        {"DurationDaysHoursMinutes","{0,choice,1#{0,number,integer} day |1.0<{0,number,integer} days }" +
   82.31 -                                    "{1,choice,0<{1,number,integer} hours |1#{1,number,integer} hour |1<{1,number,integer} hours }" +
   82.32 -                                    "{2,choice,0<{2,number,integer} minutes|1#{2,number,integer} minute|1.0<{2,number,integer} minutes}"},
   82.33 +        {"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}"},
   82.34  
   82.35 -        {"DurationHoursMinutes","{0,choice,1#{0,number,integer} hour |1<{0,number,integer} hours }" +
   82.36 -                                "{1,choice,0<{1,number,integer} minutes|1#{1,number,integer} minute|1.0<{1,number,integer} minutes}"},
   82.37 +        {"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}"},
   82.38  
   82.39          {"DurationMinutes","{0,choice,1#{0,number,integer} minute|1.0<{0,number,integer} minutes}"},
   82.40          {"DurationSeconds","{0} \u79d2"},
   82.41 @@ -201,8 +196,6 @@
   82.42          {"Help.AboutDialog.title", "JConsole\uff1a\u5173\u4e8e"},
   82.43          {"Help.AboutDialog.userGuideLink", "JConsole \u7528\u6237\u6307\u5357:<br>{0}"},
   82.44          {"Help.AboutDialog.userGuideLink.mnemonic", 'U'},
   82.45 -        // Note: The java.sun.com URL should be used for RC, or as soon as the page is available.
   82.46 -        //{"Help.AboutDialog.UsingJMX.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"},
   82.47          {"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/MonitoringGuide/toc.html"},
   82.48          {"HelpMenu.About.title", "\u5173\u4e8e JConsole"},
   82.49          {"HelpMenu.About.title.mnemonic", 'A'},
   82.50 @@ -241,9 +234,22 @@
   82.51          {"MBeanNotificationInfo","MBeanNotificationInfo"},
   82.52          {"MBeanOperationInfo","MBeanOperationInfo"},
   82.53          {"MBeans","MBean"},
   82.54 -        {"MBeansTab.refreshAttributesButton", "\u5237\u65b0"},
   82.55 +        {"MBeansTab.clearNotificationsButton", "\u6e05\u9664(C)"},
   82.56 +        {"MBeansTab.clearNotificationsButton.mnemonic", 'C'},
   82.57 +        {"MBeansTab.clearNotificationsButton.toolTip", "\u6e05\u9664\u901a\u77e5"},
   82.58 +        {"MBeansTab.compositeNavigationMultiple", "\u590d\u5408\u5bfc\u822a {0}/{1}"},
   82.59 +        {"MBeansTab.compositeNavigationSingle", "\u590d\u5408\u5bfc\u822a"},
   82.60 +        {"MBeansTab.refreshAttributesButton", "\u5237\u65b0(R)"},
   82.61          {"MBeansTab.refreshAttributesButton.mnemonic", 'R'},
   82.62          {"MBeansTab.refreshAttributesButton.toolTip", "\u5237\u65b0\u5c5e\u6027"},
   82.63 +        {"MBeansTab.subscribeNotificationsButton", "\u8ba2\u9605(S)"},
   82.64 +        {"MBeansTab.subscribeNotificationsButton.mnemonic", 'S'},
   82.65 +        {"MBeansTab.subscribeNotificationsButton.toolTip", "\u5f00\u59cb\u4fa6\u542c\u901a\u77e5"},
   82.66 +        {"MBeansTab.tabularNavigationMultiple", "\u8868\u683c\u5bfc\u822a {0}/{1}"},
   82.67 +        {"MBeansTab.tabularNavigationSingle", "\u8868\u683c\u5bfc\u822a"},
   82.68 +        {"MBeansTab.unsubscribeNotificationsButton", "\u53d6\u6d88\u8ba2\u9605(U)"},
   82.69 +        {"MBeansTab.unsubscribeNotificationsButton.mnemonic", 'U'},
   82.70 +        {"MBeansTab.unsubscribeNotificationsButton.toolTip", "\u505c\u6b62\u4fa6\u542c\u901a\u77e5"},
   82.71          {"Manage Hotspot MBeans in: ", "\u7ba1\u7406 Hotspot MBean \u4e8e\uff1a "},
   82.72          {"Max","\u6700\u5927\u503c"},
   82.73          {"Maximum heap size","\u5806\u5927\u5c0f\u7684\u6700\u5927\u503c"},
   82.74 @@ -262,7 +268,7 @@
   82.75          {"Minimize All.mnemonic", 'M'},
   82.76          {"Minus Version", "\u8fd9\u662f {0} \u7248\u672c {1}"},
   82.77          {"Monitor locked",
   82.78 -"   - \u5df2\u9501\u5b9a {0}" + cr},
   82.79 +             "   - \u5df2\u9501\u5b9a {0}" + cr},
   82.80          {"Motif","\u4fee\u6539"},
   82.81          {"Name Build and Mode","{0}\uff08\u5185\u90e8\u7248\u672c {1}\u3001{2}\uff09"},
   82.82          {"Name and Build","{0}\uff08\u5185\u90e8\u7248\u672c {1}\uff09"},
   82.83 @@ -343,7 +349,6 @@
   82.84          {"Source","\u6e90"},
   82.85          {"Stack trace",
   82.86               cr + "\u5806\u6808\u8ffd\u8e2a\uff1a " + cr},
   82.87 -        {"Subscribe","\u8ba2\u9605"},
   82.88          {"Success:","\u6210\u529f\uff1a"},
   82.89          // Note: SummaryTab.headerDateTimeFormat can be one the following:
   82.90          // 1. A combination of two styles for date and time, using the
   82.91 @@ -357,7 +362,6 @@
   82.92          {"SummaryTab.pendingFinalization.value", "{0} \u4e2a\u5bf9\u8c61"},
   82.93          {"SummaryTab.tabName", "VM \u6458\u8981"},
   82.94          {"SummaryTab.vmVersion","{0} \u7248\u672c {1}"},
   82.95 -        {"Tabular Navigation","\u8868\u683c\u5f0f\u6d4f\u89c8"},
   82.96          {"TabularData are not supported", "\u4e0d\u652f\u6301\u8868\u683c\u5f0f\u6570\u636e"},
   82.97          {"Threads","\u7ebf\u7a0b"},
   82.98          {"ThreadTab.infoLabelFormat", "<html>\u6d3b\u52a8: {0}    \u5cf0\u503c: {1}    \u603b\u8ba1: {2}</html>"},
   82.99 @@ -381,7 +385,6 @@
  82.100          {"Unavailable","\u4e0d\u53ef\u7528"},
  82.101          {"UNKNOWN","\u672a\u77e5"},
  82.102          {"Unknown Host","\u672a\u77e5\u4e3b\u673a: {0}"},
  82.103 -        {"Unsubscribe","\u672a\u8ba2\u9605"},
  82.104          {"Unregister", "\u672a\u6ce8\u518c"},
  82.105          {"Uptime","\u6b63\u5e38\u8fd0\u884c\u65f6\u95f4"},
  82.106          {"Uptime: ","\u6b63\u5e38\u8fd0\u884c\u65f6\u95f4\uff1a "},
  82.107 @@ -409,15 +412,11 @@
  82.108          {"You cannot drop a class here", "\u60a8\u4e0d\u80fd\u5c06\u7c7b\u653e\u5728\u6b64\u5904"},
  82.109          {"collapse", "\u6298\u53e0"},
  82.110          {"connectionFailed1","\u8fde\u63a5\u5931\u8d25\uff1a\u662f\u5426\u91cd\u8bd5\uff1f"},
  82.111 -        {"connectionFailed2","\u4e0e {0} \u7684\u8fde\u63a5\u672a\u6210\u529f\u3002<br>" +
  82.112 -"\u662f\u5426\u8981\u91cd\u8bd5\uff1f"},
  82.113 +        {"connectionFailed2","\u4e0e {0} \u7684\u8fde\u63a5\u672a\u6210\u529f\u3002<br>\u662f\u5426\u8981\u91cd\u8bd5\uff1f"},
  82.114          {"connectionLost1","\u8fde\u63a5\u65ad\u5f00\uff1a\u662f\u5426\u91cd\u65b0\u8fde\u63a5\uff1f"},
  82.115 -        {"connectionLost2","\u4e0e {0} \u7684\u8fde\u63a5\u5df2\u65ad\u5f00" +
  82.116 -                           "\u539f\u56e0\u662f\u5df2\u7ec8\u6b62\u8fdc\u7a0b\u8fdb\u7a0b\u3002<br>" +
  82.117 -                           "\u662f\u5426\u8981\u91cd\u65b0\u8fde\u63a5\uff1f"},
  82.118 +        {"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"},
  82.119          {"connectingTo1","\u6b63\u5728\u8fde\u63a5\u81f3 {0}"},
  82.120 -        {"connectingTo2","\u5f53\u524d\u6b63\u5728\u8fde\u63a5\u81f3 {0}\u3002<br>" +
  82.121 -"\u8fd9\u5c06\u4f1a\u82b1\u8d39\u4e00\u4e9b\u65f6\u95f4\u3002"},
  82.122 +        {"connectingTo2","\u5f53\u524d\u6b63\u5728\u8fde\u63a5\u81f3 {0}\u3002<br>\u8fd9\u5c06\u4f1a\u82b1\u8d39\u4e00\u4e9b\u65f6\u95f4\u3002"},
  82.123          {"deadlockAllTab","\u5168\u90e8"},
  82.124          {"deadlockTab","\u6b7b\u9501"},
  82.125          {"deadlockTabN","\u6b7b\u9501 {0}"},
  82.126 @@ -435,7 +434,7 @@
  82.127               "  -version    \u8f93\u51fa\u7a0b\u5e8f\u7248\u672c" + cr +
  82.128               cr +
  82.129               "  connection = pid || host:port || JMX URL (service:jmx:<protocol>://...)" + cr +
  82.130 -             "  pid       \u76ee\u6807\u8fdb\u7a0b\u7684\u8fdb\u7a0b ID"+ cr +
  82.131 +             "  pid       \u76ee\u6807\u8fdb\u7a0b\u7684\u8fdb\u7a0b ID" + cr +
  82.132               "  host      \u8fdc\u7a0b\u4e3b\u673a\u540d\u6216 IP \u5730\u5740" + cr +
  82.133               "  port      \u7528\u4e8e\u8fdc\u7a0b\u8fde\u63a5\u7684\u7aef\u53e3\u53f7" + cr +
  82.134               cr +
    83.1 --- a/src/share/classes/sun/util/resources/CalendarData_hu.properties	Thu Apr 22 16:54:34 2010 -0700
    83.2 +++ b/src/share/classes/sun/util/resources/CalendarData_hu.properties	Thu Apr 29 13:53:09 2010 -0700
    83.3 @@ -37,4 +37,4 @@
    83.4  
    83.5  
    83.6  firstDayOfWeek=2
    83.7 -minimalDaysInFirstWeek=1
    83.8 +minimalDaysInFirstWeek=4
    84.1 --- a/src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties	Thu Apr 22 16:54:34 2010 -0700
    84.2 +++ b/src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties	Thu Apr 29 13:53:09 2010 -0700
    84.3 @@ -35,4 +35,4 @@
    84.4  # This notice and attribution to Taligent may not be removed.
    84.5  # Taligent is a registered trademark of Taligent, Inc.
    84.6  
    84.7 -UAH=\u0433\u0440\u043b.
    84.8 +UAH=\u0433\u0440\u043d.
    85.1 --- a/src/solaris/classes/sun/awt/X11/XToolkit.java	Thu Apr 22 16:54:34 2010 -0700
    85.2 +++ b/src/solaris/classes/sun/awt/X11/XToolkit.java	Thu Apr 29 13:53:09 2010 -0700
    85.3 @@ -307,22 +307,35 @@
    85.4          } finally {
    85.5              awtUnlock();
    85.6          }
    85.7 -
    85.8 -        Runtime.getRuntime().addShutdownHook(new Thread() {
    85.9 -            public void run() {
   85.10 -                XSystemTrayPeer peer = XSystemTrayPeer.getPeerInstance();
   85.11 -                if (peer != null) {
   85.12 -                    peer.dispose();
   85.13 +        PrivilegedAction<Void> a = new PrivilegedAction<Void>() {
   85.14 +            public Void run() {
   85.15 +                ThreadGroup mainTG = Thread.currentThread().getThreadGroup();
   85.16 +                ThreadGroup parentTG = mainTG.getParent();
   85.17 +                while (parentTG != null) {
   85.18 +                    mainTG = parentTG;
   85.19 +                    parentTG = mainTG.getParent();
   85.20                  }
   85.21 -                if (xs != null) {
   85.22 -                    ((XAWTXSettings)xs).dispose();
   85.23 -                }
   85.24 -                freeXKB();
   85.25 -                if (log.isLoggable(PlatformLogger.FINE)) {
   85.26 -                    dumpPeers();
   85.27 -                }
   85.28 +                Thread shutdownThread = new Thread(mainTG, "XToolkt-Shutdown-Thread") {
   85.29 +                        public void run() {
   85.30 +                            XSystemTrayPeer peer = XSystemTrayPeer.getPeerInstance();
   85.31 +                            if (peer != null) {
   85.32 +                                peer.dispose();
   85.33 +                            }
   85.34 +                            if (xs != null) {
   85.35 +                                ((XAWTXSettings)xs).dispose();
   85.36 +                            }
   85.37 +                            freeXKB();
   85.38 +                            if (log.isLoggable(PlatformLogger.FINE)) {
   85.39 +                                dumpPeers();
   85.40 +                            }
   85.41 +                        }
   85.42 +                    };
   85.43 +                shutdownThread.setContextClassLoader(null);
   85.44 +                Runtime.getRuntime().addShutdownHook(shutdownThread);
   85.45 +                return null;
   85.46              }
   85.47 -        });
   85.48 +        };
   85.49 +        AccessController.doPrivileged(a);
   85.50      }
   85.51  
   85.52      static String getCorrectXIDString(String val) {
    86.1 --- a/src/solaris/classes/sun/awt/X11GraphicsDevice.java	Thu Apr 22 16:54:34 2010 -0700
    86.2 +++ b/src/solaris/classes/sun/awt/X11GraphicsDevice.java	Thu Apr 29 13:53:09 2010 -0700
    86.3 @@ -32,6 +32,8 @@
    86.4  import java.awt.GraphicsConfiguration;
    86.5  import java.awt.Rectangle;
    86.6  import java.awt.Window;
    86.7 +import java.security.AccessController;
    86.8 +import java.security.PrivilegedAction;
    86.9  import java.util.ArrayList;
   86.10  import java.util.HashSet;
   86.11  import java.util.HashMap;
   86.12 @@ -402,17 +404,30 @@
   86.13              // is already in the original DisplayMode at that time, this
   86.14              // hook will have no effect)
   86.15              shutdownHookRegistered = true;
   86.16 -            Runnable r = new Runnable() {
   86.17 -                public void run() {
   86.18 -                    Window old = getFullScreenWindow();
   86.19 -                    if (old != null) {
   86.20 -                        exitFullScreenExclusive(old);
   86.21 -                        setDisplayMode(origDisplayMode);
   86.22 +            PrivilegedAction<Void> a = new PrivilegedAction<Void>() {
   86.23 +                public Void run() {
   86.24 +                    ThreadGroup mainTG = Thread.currentThread().getThreadGroup();
   86.25 +                    ThreadGroup parentTG = mainTG.getParent();
   86.26 +                    while (parentTG != null) {
   86.27 +                        mainTG = parentTG;
   86.28 +                        parentTG = mainTG.getParent();
   86.29                      }
   86.30 +                    Runnable r = new Runnable() {
   86.31 +                            public void run() {
   86.32 +                                Window old = getFullScreenWindow();
   86.33 +                                if (old != null) {
   86.34 +                                    exitFullScreenExclusive(old);
   86.35 +                                    setDisplayMode(origDisplayMode);
   86.36 +                                }
   86.37 +                            }
   86.38 +                        };
   86.39 +                    Thread t = new Thread(mainTG, r,"Display-Change-Shutdown-Thread-"+screen);
   86.40 +                    t.setContextClassLoader(null);
   86.41 +                    Runtime.getRuntime().addShutdownHook(t);
   86.42 +                    return null;
   86.43                  }
   86.44              };
   86.45 -            Thread t = new Thread(r,"Display-Change-Shutdown-Thread-"+screen);
   86.46 -            Runtime.getRuntime().addShutdownHook(t);
   86.47 +            AccessController.doPrivileged(a);
   86.48          }
   86.49  
   86.50          // switch to the new DisplayMode
    87.1 --- a/src/solaris/classes/sun/awt/motif/MToolkit.java	Thu Apr 22 16:54:34 2010 -0700
    87.2 +++ b/src/solaris/classes/sun/awt/motif/MToolkit.java	Thu Apr 29 13:53:09 2010 -0700
    87.3 @@ -156,27 +156,27 @@
    87.4              Thread toolkitThread = new Thread(this, "AWT-Motif");
    87.5              toolkitThread.setPriority(Thread.NORM_PRIORITY + 1);
    87.6              toolkitThread.setDaemon(true);
    87.7 -            ThreadGroup mainTG = (ThreadGroup)AccessController.doPrivileged(
    87.8 -                new PrivilegedAction() {
    87.9 -                    public Object run() {
   87.10 -                        ThreadGroup currentTG =
   87.11 -                            Thread.currentThread().getThreadGroup();
   87.12 -                        ThreadGroup parentTG = currentTG.getParent();
   87.13 -                        while (parentTG != null) {
   87.14 -                            currentTG = parentTG;
   87.15 -                            parentTG = currentTG.getParent();
   87.16 -                        }
   87.17 -                        return currentTG;
   87.18 +
   87.19 +            PrivilegedAction<Void> a = new PrivilegedAction<Void>() {
   87.20 +                public Void run() {
   87.21 +                    ThreadGroup mainTG = Thread.currentThread().getThreadGroup();
   87.22 +                    ThreadGroup parentTG = mainTG.getParent();
   87.23 +
   87.24 +                    while (parentTG != null) {
   87.25 +                        mainTG = parentTG;
   87.26 +                        parentTG = mainTG.getParent();
   87.27                      }
   87.28 -            });
   87.29 -
   87.30 -            Runtime.getRuntime().addShutdownHook(
   87.31 -                new Thread(mainTG, new Runnable() {
   87.32 -                    public void run() {
   87.33 -                        shutdown();
   87.34 -                    }
   87.35 -                }, "Shutdown-Thread")
   87.36 -            );
   87.37 +                    Thread shutdownThread = new Thread(mainTG, new Runnable() {
   87.38 +                            public void run() {
   87.39 +                                shutdown();
   87.40 +                            }
   87.41 +                        }, "Shutdown-Thread");
   87.42 +                    shutdownThread.setContextClassLoader(null);
   87.43 +                    Runtime.getRuntime().addShutdownHook(shutdownThread);
   87.44 +                    return null;
   87.45 +                }
   87.46 +            };
   87.47 +            AccessController.doPrivileged(a);
   87.48  
   87.49              /*
   87.50               * Fix for 4701990.
    88.1 --- a/src/windows/classes/sun/awt/windows/WToolkit.java	Thu Apr 22 16:54:34 2010 -0700
    88.2 +++ b/src/windows/classes/sun/awt/windows/WToolkit.java	Thu Apr 29 13:53:09 2010 -0700
    88.3 @@ -266,27 +266,25 @@
    88.4          boolean startPump = init();
    88.5  
    88.6          if (startPump) {
    88.7 -            ThreadGroup mainTG = (ThreadGroup)AccessController.doPrivileged(
    88.8 -                new PrivilegedAction() {
    88.9 -                    public Object run() {
   88.10 -                        ThreadGroup currentTG =
   88.11 -                            Thread.currentThread().getThreadGroup();
   88.12 -                        ThreadGroup parentTG = currentTG.getParent();
   88.13 -                        while (parentTG != null) {
   88.14 -                            currentTG = parentTG;
   88.15 -                            parentTG = currentTG.getParent();
   88.16 -                        }
   88.17 -                        return currentTG;
   88.18 +            AccessController.doPrivileged(new PrivilegedAction() {
   88.19 +                public Object run() {
   88.20 +                    ThreadGroup currentTG =
   88.21 +                        Thread.currentThread().getThreadGroup();
   88.22 +                    ThreadGroup parentTG = currentTG.getParent();
   88.23 +                    while (parentTG != null) {
   88.24 +                        currentTG = parentTG;
   88.25 +                        parentTG = currentTG.getParent();
   88.26                      }
   88.27 +                    Thread shutdown = new Thread(currentTG, new Runnable() {
   88.28 +                            public void run() {
   88.29 +                                shutdown();
   88.30 +                            }
   88.31 +                        });
   88.32 +                    shutdown.setContextClassLoader(null);
   88.33 +                    Runtime.getRuntime().addShutdownHook(shutdown);
   88.34 +                    return null;
   88.35 +                }
   88.36              });
   88.37 -
   88.38 -            Runtime.getRuntime().addShutdownHook(
   88.39 -                new Thread(mainTG, new Runnable() {
   88.40 -                    public void run() {
   88.41 -                        shutdown();
   88.42 -                    }
   88.43 -                })
   88.44 -            );
   88.45          }
   88.46  
   88.47          synchronized(this) {
    89.1 --- a/src/windows/classes/sun/awt/windows/fontconfig.properties	Thu Apr 22 16:54:34 2010 -0700
    89.2 +++ b/src/windows/classes/sun/awt/windows/fontconfig.properties	Thu Apr 29 13:53:09 2010 -0700
    89.3 @@ -41,6 +41,7 @@
    89.4  allfonts.lucida=Lucida Sans Regular
    89.5  allfonts.symbol=Symbol
    89.6  allfonts.thai=Lucida Sans Regular
    89.7 +allfonts.georgian=Sylfaen
    89.8  
    89.9  serif.plain.alphabetic=Times New Roman
   89.10  serif.plain.chinese-ms950=MingLiU
   89.11 @@ -237,7 +238,7 @@
   89.12  
   89.13  sequence.fallback=lucida,\
   89.14                    chinese-ms950,chinese-hkscs,chinese-ms936,chinese-gb18030,\
   89.15 -                  japanese,korean,chinese-ms950-extb,chinese-ms936-extb
   89.16 +                  japanese,korean,chinese-ms950-extb,chinese-ms936-extb,georgian
   89.17  
   89.18  # Exclusion Ranges
   89.19  
   89.20 @@ -296,3 +297,4 @@
   89.21  filename.Symbol=SYMBOL.TTF
   89.22  filename.Wingdings=WINGDING.TTF
   89.23  
   89.24 +filename.Sylfaen=sylfaen.ttf
    90.1 --- a/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java	Thu Apr 22 16:54:34 2010 -0700
    90.2 +++ b/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java	Thu Apr 29 13:53:09 2010 -0700
    90.3 @@ -101,17 +101,15 @@
    90.4                          currentTG = parentTG;
    90.5                          parentTG = currentTG.getParent();
    90.6                      }
    90.7 +                    Thread shutdown = new Thread(currentTG, new Runnable() {
    90.8 +                            public void run() {
    90.9 +                                done = true;
   90.10 +                                wakeUpUpdateThread();
   90.11 +                            }
   90.12 +                        });
   90.13 +                    shutdown.setContextClassLoader(null);
   90.14                      try {
   90.15 -                        Runtime.getRuntime().addShutdownHook(
   90.16 -                            new Thread(currentTG,
   90.17 -                                new Runnable() {
   90.18 -                                    public void run() {
   90.19 -                                        done = true;
   90.20 -                                        wakeUpUpdateThread();
   90.21 -                                    }
   90.22 -                                }
   90.23 -                            )
   90.24 -                        );
   90.25 +                        Runtime.getRuntime().addShutdownHook(shutdown);
   90.26                      } catch (Exception e) {
   90.27                          done = true;
   90.28                      }
    91.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    91.2 +++ b/test/java/awt/font/NumericShaper/EasternArabicTest.java	Thu Apr 29 13:53:09 2010 -0700
    91.3 @@ -0,0 +1,118 @@
    91.4 +/*
    91.5 + * Copyright (c) 2010 Sun Microsystems, Inc.  All Rights Reserved.
    91.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    91.7 + *
    91.8 + * This code is free software; you can redistribute it and/or modify it
    91.9 + * under the terms of the GNU General Public License version 2 only, as
   91.10 + * published by the Free Software Foundation.
   91.11 + *
   91.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   91.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   91.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   91.15 + * version 2 for more details (a copy is included in the LICENSE file that
   91.16 + * accompanied this code).
   91.17 + *
   91.18 + * You should have received a copy of the GNU General Public License version
   91.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   91.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   91.21 + *
   91.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   91.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
   91.24 + * have any questions.
   91.25 + */
   91.26 +
   91.27 +/*
   91.28 + * @test
   91.29 + * @bug 6941948
   91.30 + * @summary Make sure that EASTERN_ARABIC works with the enum interface.
   91.31 + */
   91.32 +
   91.33 +import java.awt.font.NumericShaper;
   91.34 +import java.util.EnumSet;
   91.35 +import static java.awt.font.NumericShaper.*;
   91.36 +
   91.37 +public class EasternArabicTest {
   91.38 +    static NumericShaper ns_old, ns_new;
   91.39 +    static boolean err = false;
   91.40 +
   91.41 +    static String[][] testData = {
   91.42 +        // Arabic "October 10"
   91.43 +        {"\u0623\u0643\u062a\u0648\u0628\u0631 10",
   91.44 +         "\u0623\u0643\u062a\u0648\u0628\u0631 \u06f1\u06f0"}, // EASTERN_ARABIC digits
   91.45 +
   91.46 +        // Tamil "Year 2009"
   91.47 +        {"\u0b86\u0ba3\u0bcd\u0b9f\u0bc1 2009",
   91.48 +         "\u0b86\u0ba3\u0bcd\u0b9f\u0bc1 \u0be8\u0be6\u0be6\u0bef"},
   91.49 +        // "\u0be800\u0bef is returned by pre-JDK7 because Tamil zero was not
   91.50 +        //  included in Unicode 4.0.0.
   91.51 +
   91.52 +        // Ethiopic "Syllable<HA> 2009"
   91.53 +        {"\u1200 2009",
   91.54 +         "\u1200 \u136a00\u1371"},
   91.55 +        // Ethiopic zero doesn't exist even in Unicode 5.1.0.
   91.56 +    };
   91.57 +
   91.58 +    public static void main(String[] args) {
   91.59 +        ns_old = getContextualShaper(TAMIL|ETHIOPIC|EASTERN_ARABIC|ARABIC|THAI|LAO,
   91.60 +                                     EUROPEAN);
   91.61 +        ns_new = getContextualShaper(EnumSet.of(Range.THAI,
   91.62 +                                                Range.TAMIL,
   91.63 +                                                Range.ETHIOPIC,
   91.64 +                                                Range.EASTERN_ARABIC,
   91.65 +                                                Range.ARABIC,
   91.66 +                                                Range.LAO),
   91.67 +                                     Range.EUROPEAN);
   91.68 +
   91.69 +
   91.70 +        StringBuilder cData = new StringBuilder();
   91.71 +        StringBuilder cExpected = new StringBuilder();
   91.72 +        for (int i = 0; i < testData.length; i++) {
   91.73 +            String data = testData[i][0];
   91.74 +            String expected = testData[i][1];
   91.75 +            test(data, expected);
   91.76 +            cData.append(data).append(' ');
   91.77 +            cExpected.append(expected).append(' ');
   91.78 +        }
   91.79 +        test(cData.toString(), cExpected.toString());
   91.80 +
   91.81 +        if (err) {
   91.82 +            throw new RuntimeException("shape() returned unexpected value.");
   91.83 +        }
   91.84 +    }
   91.85 +
   91.86 +    private static void test(String data, String expected) {
   91.87 +        char[] text = data.toCharArray();
   91.88 +        ns_old.shape(text, 0, text.length);
   91.89 +        String got = new String(text);
   91.90 +
   91.91 +        if (!expected.equals(got)) {
   91.92 +            err = true;
   91.93 +            System.err.println("Error with traditional range.");
   91.94 +            System.err.println("  text = " + data);
   91.95 +            System.err.println("  got = " + got);
   91.96 +            System.err.println("  expected = " + expected);
   91.97 +        } else {
   91.98 +            System.err.println("OK with traditional range.");
   91.99 +            System.err.println("  text = " + data);
  91.100 +            System.err.println("  got = " + got);
  91.101 +            System.err.println("  expected = " + expected);
  91.102 +        }
  91.103 +
  91.104 +        text = data.toCharArray();
  91.105 +        ns_new.shape(text, 0, text.length);
  91.106 +        got = new String(text);
  91.107 +
  91.108 +        if (!expected.equals(got)) {
  91.109 +            err = true;
  91.110 +            System.err.println("Error with new Enum range.");
  91.111 +            System.err.println("  text = " + data);
  91.112 +            System.err.println("  got = " + got);
  91.113 +            System.err.println("  expected = " + expected);
  91.114 +        } else {
  91.115 +            System.err.println("OK with new Enum range.");
  91.116 +            System.err.println("  text = " + data);
  91.117 +            System.err.println("  got = " + got);
  91.118 +            System.err.println("  expected = " + expected);
  91.119 +        }
  91.120 +    }
  91.121 +}
    92.1 --- a/test/java/util/Locale/Bug4175998Test.java	Thu Apr 22 16:54:34 2010 -0700
    92.2 +++ b/test/java/util/Locale/Bug4175998Test.java	Thu Apr 29 13:53:09 2010 -0700
    92.3 @@ -32,16 +32,6 @@
    92.4   *
    92.5   * (C) Copyright IBM Corp. 1998 - All Rights Reserved
    92.6   *
    92.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
    92.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
    92.9 - * All rights reserved.
   92.10 - *
   92.11 - * This software is the confidential and proprietary information
   92.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
   92.13 - * shall not disclose such Confidential Information and shall use
   92.14 - * it only in accordance with the terms of the license agreement
   92.15 - * you entered into with Sun.
   92.16 - *
   92.17   * The original version of this source code and documentation is
   92.18   * copyrighted and owned by IBM. These materials are provided
   92.19   * under terms of a License Agreement between IBM and Sun.
    93.1 --- a/test/java/util/ResourceBundle/Bug4083270Test.java	Thu Apr 22 16:54:34 2010 -0700
    93.2 +++ b/test/java/util/ResourceBundle/Bug4083270Test.java	Thu Apr 29 13:53:09 2010 -0700
    93.3 @@ -31,16 +31,6 @@
    93.4   *
    93.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
    93.6   *
    93.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
    93.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
    93.9 - * All rights reserved.
   93.10 - *
   93.11 - * This software is the confidential and proprietary information
   93.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
   93.13 - * shall not disclose such Confidential Information and shall use
   93.14 - * it only in accordance with the terms of the license agreement
   93.15 - * you entered into with Sun.
   93.16 - *
   93.17   * The original version of this source code and documentation is
   93.18   * copyrighted and owned by IBM. These materials are provided
   93.19   * under terms of a License Agreement between IBM and Sun.
    94.1 --- a/test/java/util/ResourceBundle/Bug4165815Test.java	Thu Apr 22 16:54:34 2010 -0700
    94.2 +++ b/test/java/util/ResourceBundle/Bug4165815Test.java	Thu Apr 29 13:53:09 2010 -0700
    94.3 @@ -34,16 +34,6 @@
    94.4   *
    94.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
    94.6   *
    94.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
    94.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
    94.9 - * All rights reserved.
   94.10 - *
   94.11 - * This software is the confidential and proprietary information
   94.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
   94.13 - * shall not disclose such Confidential Information and shall use
   94.14 - * it only in accordance with the terms of the license agreement
   94.15 - * you entered into with Sun.
   94.16 - *
   94.17   * The original version of this source code and documentation is
   94.18   * copyrighted and owned by IBM. These materials are provided
   94.19   * under terms of a License Agreement between IBM and Sun.
    95.1 --- a/test/java/util/ResourceBundle/Bug4168625Class.java	Thu Apr 22 16:54:34 2010 -0700
    95.2 +++ b/test/java/util/ResourceBundle/Bug4168625Class.java	Thu Apr 29 13:53:09 2010 -0700
    95.3 @@ -25,16 +25,6 @@
    95.4   *
    95.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
    95.6   *
    95.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
    95.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
    95.9 - * All rights reserved.
   95.10 - *
   95.11 - * This software is the confidential and proprietary information
   95.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
   95.13 - * shall not disclose such Confidential Information and shall use
   95.14 - * it only in accordance with the terms of the license agreement
   95.15 - * you entered into with Sun.
   95.16 - *
   95.17   * The original version of this source code and documentation is
   95.18   * copyrighted and owned by IBM. These materials are provided
   95.19   * under terms of a License Agreement between IBM and Sun.
    96.1 --- a/test/java/util/ResourceBundle/Bug4168625Getter.java	Thu Apr 22 16:54:34 2010 -0700
    96.2 +++ b/test/java/util/ResourceBundle/Bug4168625Getter.java	Thu Apr 29 13:53:09 2010 -0700
    96.3 @@ -25,16 +25,6 @@
    96.4   *
    96.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
    96.6   *
    96.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
    96.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
    96.9 - * All rights reserved.
   96.10 - *
   96.11 - * This software is the confidential and proprietary information
   96.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
   96.13 - * shall not disclose such Confidential Information and shall use
   96.14 - * it only in accordance with the terms of the license agreement
   96.15 - * you entered into with Sun.
   96.16 - *
   96.17   * The original version of this source code and documentation is
   96.18   * copyrighted and owned by IBM. These materials are provided
   96.19   * under terms of a License Agreement between IBM and Sun.
    97.1 --- a/test/java/util/ResourceBundle/Bug4168625Resource.java	Thu Apr 22 16:54:34 2010 -0700
    97.2 +++ b/test/java/util/ResourceBundle/Bug4168625Resource.java	Thu Apr 29 13:53:09 2010 -0700
    97.3 @@ -25,16 +25,6 @@
    97.4   *
    97.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
    97.6   *
    97.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
    97.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
    97.9 - * All rights reserved.
   97.10 - *
   97.11 - * This software is the confidential and proprietary information
   97.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
   97.13 - * shall not disclose such Confidential Information and shall use
   97.14 - * it only in accordance with the terms of the license agreement
   97.15 - * you entered into with Sun.
   97.16 - *
   97.17   * The original version of this source code and documentation is
   97.18   * copyrighted and owned by IBM. These materials are provided
   97.19   * under terms of a License Agreement between IBM and Sun.
    98.1 --- a/test/java/util/ResourceBundle/Bug4168625Resource2.java	Thu Apr 22 16:54:34 2010 -0700
    98.2 +++ b/test/java/util/ResourceBundle/Bug4168625Resource2.java	Thu Apr 29 13:53:09 2010 -0700
    98.3 @@ -25,16 +25,6 @@
    98.4   *
    98.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
    98.6   *
    98.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
    98.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
    98.9 - * All rights reserved.
   98.10 - *
   98.11 - * This software is the confidential and proprietary information
   98.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
   98.13 - * shall not disclose such Confidential Information and shall use
   98.14 - * it only in accordance with the terms of the license agreement
   98.15 - * you entered into with Sun.
   98.16 - *
   98.17   * The original version of this source code and documentation is
   98.18   * copyrighted and owned by IBM. These materials are provided
   98.19   * under terms of a License Agreement between IBM and Sun.
    99.1 --- a/test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java	Thu Apr 22 16:54:34 2010 -0700
    99.2 +++ b/test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java	Thu Apr 29 13:53:09 2010 -0700
    99.3 @@ -25,16 +25,6 @@
    99.4   *
    99.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
    99.6   *
    99.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
    99.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
    99.9 - * All rights reserved.
   99.10 - *
   99.11 - * This software is the confidential and proprietary information
   99.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
   99.13 - * shall not disclose such Confidential Information and shall use
   99.14 - * it only in accordance with the terms of the license agreement
   99.15 - * you entered into with Sun.
   99.16 - *
   99.17   * The original version of this source code and documentation is
   99.18   * copyrighted and owned by IBM. These materials are provided
   99.19   * under terms of a License Agreement between IBM and Sun.
   100.1 --- a/test/java/util/ResourceBundle/Bug4168625Resource3.java	Thu Apr 22 16:54:34 2010 -0700
   100.2 +++ b/test/java/util/ResourceBundle/Bug4168625Resource3.java	Thu Apr 29 13:53:09 2010 -0700
   100.3 @@ -25,16 +25,6 @@
   100.4   *
   100.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
   100.6   *
   100.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
   100.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
   100.9 - * All rights reserved.
  100.10 - *
  100.11 - * This software is the confidential and proprietary information
  100.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
  100.13 - * shall not disclose such Confidential Information and shall use
  100.14 - * it only in accordance with the terms of the license agreement
  100.15 - * you entered into with Sun.
  100.16 - *
  100.17   * The original version of this source code and documentation is
  100.18   * copyrighted and owned by IBM. These materials are provided
  100.19   * under terms of a License Agreement between IBM and Sun.
   101.1 --- a/test/java/util/ResourceBundle/Bug4168625Resource3_en.java	Thu Apr 22 16:54:34 2010 -0700
   101.2 +++ b/test/java/util/ResourceBundle/Bug4168625Resource3_en.java	Thu Apr 29 13:53:09 2010 -0700
   101.3 @@ -25,16 +25,6 @@
   101.4   *
   101.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
   101.6   *
   101.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
   101.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
   101.9 - * All rights reserved.
  101.10 - *
  101.11 - * This software is the confidential and proprietary information
  101.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
  101.13 - * shall not disclose such Confidential Information and shall use
  101.14 - * it only in accordance with the terms of the license agreement
  101.15 - * you entered into with Sun.
  101.16 - *
  101.17   * The original version of this source code and documentation is
  101.18   * copyrighted and owned by IBM. These materials are provided
  101.19   * under terms of a License Agreement between IBM and Sun.
   102.1 --- a/test/java/util/ResourceBundle/Bug4168625Resource3_en_CA.java	Thu Apr 22 16:54:34 2010 -0700
   102.2 +++ b/test/java/util/ResourceBundle/Bug4168625Resource3_en_CA.java	Thu Apr 29 13:53:09 2010 -0700
   102.3 @@ -25,16 +25,6 @@
   102.4   *
   102.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
   102.6   *
   102.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
   102.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
   102.9 - * All rights reserved.
  102.10 - *
  102.11 - * This software is the confidential and proprietary information
  102.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
  102.13 - * shall not disclose such Confidential Information and shall use
  102.14 - * it only in accordance with the terms of the license agreement
  102.15 - * you entered into with Sun.
  102.16 - *
  102.17   * The original version of this source code and documentation is
  102.18   * copyrighted and owned by IBM. These materials are provided
  102.19   * under terms of a License Agreement between IBM and Sun.
   103.1 --- a/test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java	Thu Apr 22 16:54:34 2010 -0700
   103.2 +++ b/test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java	Thu Apr 29 13:53:09 2010 -0700
   103.3 @@ -25,16 +25,6 @@
   103.4   *
   103.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
   103.6   *
   103.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
   103.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
   103.9 - * All rights reserved.
  103.10 - *
  103.11 - * This software is the confidential and proprietary information
  103.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
  103.13 - * shall not disclose such Confidential Information and shall use
  103.14 - * it only in accordance with the terms of the license agreement
  103.15 - * you entered into with Sun.
  103.16 - *
  103.17   * The original version of this source code and documentation is
  103.18   * copyrighted and owned by IBM. These materials are provided
  103.19   * under terms of a License Agreement between IBM and Sun.
   104.1 --- a/test/java/util/ResourceBundle/Bug4168625Resource3_en_US.java	Thu Apr 22 16:54:34 2010 -0700
   104.2 +++ b/test/java/util/ResourceBundle/Bug4168625Resource3_en_US.java	Thu Apr 29 13:53:09 2010 -0700
   104.3 @@ -25,16 +25,6 @@
   104.4   *
   104.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
   104.6   *
   104.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
   104.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
   104.9 - * All rights reserved.
  104.10 - *
  104.11 - * This software is the confidential and proprietary information
  104.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
  104.13 - * shall not disclose such Confidential Information and shall use
  104.14 - * it only in accordance with the terms of the license agreement
  104.15 - * you entered into with Sun.
  104.16 - *
  104.17   * The original version of this source code and documentation is
  104.18   * copyrighted and owned by IBM. These materials are provided
  104.19   * under terms of a License Agreement between IBM and Sun.
   105.1 --- a/test/java/util/ResourceBundle/Bug4177489Test.java	Thu Apr 22 16:54:34 2010 -0700
   105.2 +++ b/test/java/util/ResourceBundle/Bug4177489Test.java	Thu Apr 29 13:53:09 2010 -0700
   105.3 @@ -32,16 +32,6 @@
   105.4   *
   105.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
   105.6   *
   105.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
   105.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
   105.9 - * All rights reserved.
  105.10 - *
  105.11 - * This software is the confidential and proprietary information
  105.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
  105.13 - * shall not disclose such Confidential Information and shall use
  105.14 - * it only in accordance with the terms of the license agreement
  105.15 - * you entered into with Sun.
  105.16 - *
  105.17   * The original version of this source code and documentation is
  105.18   * copyrighted and owned by IBM. These materials are provided
  105.19   * under terms of a License Agreement between IBM and Sun.
   106.1 --- a/test/java/util/ResourceBundle/Bug4177489_Resource.java	Thu Apr 22 16:54:34 2010 -0700
   106.2 +++ b/test/java/util/ResourceBundle/Bug4177489_Resource.java	Thu Apr 29 13:53:09 2010 -0700
   106.3 @@ -25,16 +25,6 @@
   106.4   *
   106.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
   106.6   *
   106.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
   106.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
   106.9 - * All rights reserved.
  106.10 - *
  106.11 - * This software is the confidential and proprietary information
  106.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
  106.13 - * shall not disclose such Confidential Information and shall use
  106.14 - * it only in accordance with the terms of the license agreement
  106.15 - * you entered into with Sun.
  106.16 - *
  106.17   * The original version of this source code and documentation is
  106.18   * copyrighted and owned by IBM. These materials are provided
  106.19   * under terms of a License Agreement between IBM and Sun.
   107.1 --- a/test/java/util/ResourceBundle/Bug4177489_Resource_jf.java	Thu Apr 22 16:54:34 2010 -0700
   107.2 +++ b/test/java/util/ResourceBundle/Bug4177489_Resource_jf.java	Thu Apr 29 13:53:09 2010 -0700
   107.3 @@ -25,16 +25,6 @@
   107.4   *
   107.5   * (C) Copyright IBM Corp. 1999 - All Rights Reserved
   107.6   *
   107.7 - * Portions Copyright 2007 by Sun Microsystems, Inc.,
   107.8 - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
   107.9 - * All rights reserved.
  107.10 - *
  107.11 - * This software is the confidential and proprietary information
  107.12 - * of Sun Microsystems, Inc. ("Confidential Information").  You
  107.13 - * shall not disclose such Confidential Information and shall use
  107.14 - * it only in accordance with the terms of the license agreement
  107.15 - * you entered into with Sun.
  107.16 - *
  107.17   * The original version of this source code and documentation is
  107.18   * copyrighted and owned by IBM. These materials are provided
  107.19   * under terms of a License Agreement between IBM and Sun.
   108.1 --- a/test/java/util/regex/RegExTest.java	Thu Apr 22 16:54:34 2010 -0700
   108.2 +++ b/test/java/util/regex/RegExTest.java	Thu Apr 29 13:53:09 2010 -0700
   108.3 @@ -32,7 +32,7 @@
   108.4   * 4872664 4803179 4892980 4900747 4945394 4938995 4979006 4994840 4997476
   108.5   * 5013885 5003322 4988891 5098443 5110268 6173522 4829857 5027748 6376940
   108.6   * 6358731 6178785 6284152 6231989 6497148 6486934 6233084 6504326 6635133
   108.7 - * 6350801 6676425 6878475 6919132
   108.8 + * 6350801 6676425 6878475 6919132 6931676
   108.9   */
  108.10  
  108.11  import java.util.regex.*;
  108.12 @@ -3515,7 +3515,7 @@
  108.13          report("NamedGroupCapture");
  108.14      }
  108.15  
  108.16 -    // This is for bug 6969132
  108.17 +    // This is for bug 6919132
  108.18      private static void nonBmpClassComplementTest() throws Exception {
  108.19          Pattern p = Pattern.compile("\\P{Lu}");
  108.20          Matcher m = p.matcher(new String(new int[] {0x1d400}, 0, 1));
   109.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   109.2 +++ b/test/sun/awt/font/ClassLoaderLeakTest.java	Thu Apr 29 13:53:09 2010 -0700
   109.3 @@ -0,0 +1,220 @@
   109.4 +/*
   109.5 + * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
   109.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   109.7 + *
   109.8 + * This code is free software; you can redistribute it and/or modify it
   109.9 + * under the terms of the GNU General Public License version 2 only, as
  109.10 + * published by the Free Software Foundation.
  109.11 + *
  109.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  109.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  109.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  109.15 + * version 2 for more details (a copy is included in the LICENSE file that
  109.16 + * accompanied this code).
  109.17 + *
  109.18 + * You should have received a copy of the GNU General Public License version
  109.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  109.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  109.21 + *
  109.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  109.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  109.24 + * have any questions.
  109.25 + */
  109.26 +/**
  109.27 + * @test
  109.28 + * @bug     6936389
  109.29 + *
  109.30 + * @summary Test verifes that LogManager shutdown hook does not cause
  109.31 + *          an application classloader leaks.
  109.32 + *
  109.33 + * @run     main/othervm ClassLoaderLeakTest FontManagerTest
  109.34 + */
  109.35 +
  109.36 +import java.awt.Font;
  109.37 +import java.awt.Graphics;
  109.38 +import java.io.File;
  109.39 +import java.lang.ref.WeakReference;
  109.40 +import java.lang.reflect.Constructor;
  109.41 +import java.lang.reflect.Method;
  109.42 +import java.net.MalformedURLException;
  109.43 +import java.net.URL;
  109.44 +import java.net.URLClassLoader;
  109.45 +import java.util.concurrent.CountDownLatch;
  109.46 +
  109.47 +public class ClassLoaderLeakTest {
  109.48 +
  109.49 +    private static CountDownLatch doneSignal;
  109.50 +    private static CountDownLatch launchSignal;
  109.51 +    private static Throwable launchFailure = null;
  109.52 +
  109.53 +    public static void main(String[] args) {
  109.54 +        doneSignal = new CountDownLatch(1);
  109.55 +        launchSignal = new CountDownLatch(1);
  109.56 +
  109.57 +        String testcase = "FontManagerTest";
  109.58 +
  109.59 +        if (args.length > 0) {
  109.60 +            testcase = args[0];
  109.61 +        }
  109.62 +
  109.63 +        /* prepare test  class loader */
  109.64 +        URL pwd = null;
  109.65 +        try {
  109.66 +
  109.67 +            pwd = new File(System.getProperty("test.classes", ".")).toURL();
  109.68 +        } catch (MalformedURLException e) {
  109.69 +            throw new RuntimeException("Test failed.", e);
  109.70 +        }
  109.71 +        System.out.println("PWD: " + pwd);
  109.72 +        URL[] urls = new URL[]{pwd};
  109.73 +
  109.74 +        MyClassLoader appClassLoader = new MyClassLoader(urls, "test0");
  109.75 +        WeakReference<MyClassLoader> ref =
  109.76 +            new WeakReference<MyClassLoader>(appClassLoader);
  109.77 +
  109.78 +        ThreadGroup appsThreadGroup = new ThreadGroup("MyAppsThreadGroup");
  109.79 +
  109.80 +        Runnable launcher = new TestLauncher(testcase);
  109.81 +
  109.82 +        Thread appThread = new Thread(appsThreadGroup, launcher, "AppThread-0");
  109.83 +        appThread.setContextClassLoader(appClassLoader);
  109.84 +
  109.85 +        appThread.start();
  109.86 +        appsThreadGroup = null;
  109.87 +        appClassLoader = null;
  109.88 +        launcher = null;
  109.89 +        appThread = null;
  109.90 +
  109.91 +        /* wait for laucnh completion */
  109.92 +        try {
  109.93 +            launchSignal.await();
  109.94 +        } catch (InterruptedException e) {
  109.95 +        }
  109.96 +
  109.97 +        /* check if launch failed */
  109.98 +        if (launchFailure != null) {
  109.99 +            throw new RuntimeException("Test failed.", launchFailure);
 109.100 +        }
 109.101 +
 109.102 +        /* wait for test app excution completion */
 109.103 +        try {
 109.104 +            doneSignal.await();
 109.105 +        } catch (InterruptedException e) {
 109.106 +        }
 109.107 +
 109.108 +        /* give a chance to GC */
 109.109 +        waitAndGC(9);
 109.110 +
 109.111 +        if (ref.get() != null) {
 109.112 +            throw new RuntimeException("Test failed: classloader is still alive");
 109.113 +        }
 109.114 +
 109.115 +
 109.116 +        System.out.println("Test passed.");
 109.117 +    }
 109.118 +
 109.119 +    private static class TestLauncher implements Runnable {
 109.120 +
 109.121 +        private String className;
 109.122 +
 109.123 +        public TestLauncher(String name) {
 109.124 +            className = name;
 109.125 +        }
 109.126 +
 109.127 +        public void run() {
 109.128 +            try {
 109.129 +                ClassLoader cl =
 109.130 +                    Thread.currentThread().getContextClassLoader();
 109.131 +                Class appMain = cl.loadClass(className);
 109.132 +                Method launch =
 109.133 +                    appMain.getMethod("launch", doneSignal.getClass());
 109.134 +
 109.135 +                Constructor c = appMain.getConstructor();
 109.136 +
 109.137 +                Object o = c.newInstance();
 109.138 +
 109.139 +                launch.invoke(o, doneSignal);
 109.140 +
 109.141 +            } catch (Throwable e) {
 109.142 +                launchFailure = e;
 109.143 +            } finally {
 109.144 +                launchSignal.countDown();
 109.145 +            }
 109.146 +        }
 109.147 +    }
 109.148 +
 109.149 +    private static class MyClassLoader extends URLClassLoader {
 109.150 +
 109.151 +        private static boolean verbose =
 109.152 +            Boolean.getBoolean("verboseClassLoading");
 109.153 +        private String uniqClassName;
 109.154 +
 109.155 +        public MyClassLoader(URL[] urls, String uniq) {
 109.156 +            super(urls);
 109.157 +
 109.158 +            uniqClassName = uniq;
 109.159 +        }
 109.160 +
 109.161 +        public Class loadClass(String name) throws ClassNotFoundException {
 109.162 +            if (verbose) {
 109.163 +                System.out.printf("%s: load class %s\n", uniqClassName, name);
 109.164 +            }
 109.165 +            if (uniqClassName.equals(name)) {
 109.166 +                return Object.class;
 109.167 +            }
 109.168 +            return super.loadClass(name);
 109.169 +        }
 109.170 +
 109.171 +        public String toString() {
 109.172 +            return "MyClassLoader(" + uniqClassName + ")";
 109.173 +        }
 109.174 +    }
 109.175 +
 109.176 +    private static void waitAndGC(int sec) {
 109.177 +        int cnt = sec;
 109.178 +        System.out.print("Wait ");
 109.179 +        while (cnt-- > 0) {
 109.180 +            try {
 109.181 +                Thread.sleep(1000);
 109.182 +            } catch (InterruptedException e) {
 109.183 +            }
 109.184 +            // do GC every 3 seconds
 109.185 +            if (cnt % 3 == 2) {
 109.186 +                System.gc();
 109.187 +                System.out.print("+");
 109.188 +            } else {
 109.189 +                System.out.print(".");
 109.190 +            }
 109.191 +            //checkErrors();
 109.192 +        }
 109.193 +        System.out.println("");
 109.194 +    }
 109.195 +}
 109.196 +
 109.197 +abstract class AppTest {
 109.198 +
 109.199 +    public AppTest() {
 109.200 +    }
 109.201 +
 109.202 +    protected abstract void doTest();
 109.203 +
 109.204 +    public void launch(CountDownLatch done) {
 109.205 +        System.out.println("Testcase: " + this.getClass().getName());
 109.206 +        try {
 109.207 +            doTest();
 109.208 +        } finally {
 109.209 +            done.countDown();
 109.210 +        }
 109.211 +    }
 109.212 +}
 109.213 +
 109.214 +class FontManagerTest extends AppTest {
 109.215 +
 109.216 +    public FontManagerTest() {
 109.217 +    }
 109.218 +
 109.219 +    protected void doTest() {
 109.220 +        Font f = new Font(Font.SANS_SERIF, Font.ITALIC, 24);
 109.221 +        f.getNumGlyphs();
 109.222 +    }
 109.223 +}
   110.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   110.2 +++ b/test/sun/security/krb5/Krb5NameEquals.java	Thu Apr 29 13:53:09 2010 -0700
   110.3 @@ -0,0 +1,78 @@
   110.4 +/*
   110.5 + * Copyright 2007-2010 Sun Microsystems, Inc.  All Rights Reserved.
   110.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   110.7 + *
   110.8 + * This code is free software; you can redistribute it and/or modify it
   110.9 + * under the terms of the GNU General Public License version 2 only, as
  110.10 + * published by the Free Software Foundation.
  110.11 + *
  110.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  110.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  110.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  110.15 + * version 2 for more details (a copy is included in the LICENSE file that
  110.16 + * accompanied this code).
  110.17 + *
  110.18 + * You should have received a copy of the GNU General Public License version
  110.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  110.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  110.21 + *
  110.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  110.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  110.24 + * have any questions.
  110.25 + */
  110.26 +
  110.27 +/*
  110.28 + * @bug 4634392
  110.29 + * @summary JDK code doesn't respect contract for equals and hashCode
  110.30 + * @author Andrew Fan
  110.31 + */
  110.32 +
  110.33 +import org.ietf.jgss.*;
  110.34 +
  110.35 +public class Krb5NameEquals {
  110.36 +
  110.37 +    private static String NAME_STR1 = "service@host";
  110.38 +    private static String NAME_STR2 = "service@host2";
  110.39 +    private static final Oid MECH;
  110.40 +
  110.41 +    static {
  110.42 +        Oid temp = null;
  110.43 +        try {
  110.44 +            temp = new Oid("1.2.840.113554.1.2.2"); // KRB5
  110.45 +        } catch (Exception e) {
  110.46 +            // should never happen
  110.47 +        }
  110.48 +        MECH = temp;
  110.49 +    }
  110.50 +
  110.51 +    public static void main(String[] argv) throws Exception {
  110.52 +        GSSManager mgr = GSSManager.getInstance();
  110.53 +
  110.54 +        boolean result = true;
  110.55 +        // Create GSSName and check their equals(), hashCode() impl
  110.56 +        GSSName name1 = mgr.createName(NAME_STR1,
  110.57 +            GSSName.NT_HOSTBASED_SERVICE, MECH);
  110.58 +        GSSName name2 = mgr.createName(NAME_STR2,
  110.59 +            GSSName.NT_HOSTBASED_SERVICE, MECH);
  110.60 +        GSSName name3 = mgr.createName(NAME_STR1,
  110.61 +            GSSName.NT_HOSTBASED_SERVICE, MECH);
  110.62 +
  110.63 +        if (!name1.equals(name3) || !name1.equals(name3) ||
  110.64 +            !name1.equals((Object) name1) ||
  110.65 +            !name1.equals((Object) name3)) {
  110.66 +            System.out.println("Error: should be the same name");
  110.67 +            result = false;
  110.68 +        } else if (name1.hashCode() != name3.hashCode()) {
  110.69 +            System.out.println("Error: should have same hash");
  110.70 +            result = false;
  110.71 +        }
  110.72 +
  110.73 +        if (name1.equals(name2) || name1.equals((Object) name2)) {
  110.74 +            System.out.println("Error: should be different names");
  110.75 +            result = false;
  110.76 +        }
  110.77 +        if (result) {
  110.78 +            System.out.println("Done");
  110.79 +        } else System.exit(1);
  110.80 +    }
  110.81 +}
   111.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   111.2 +++ b/test/sun/security/krb5/runNameEquals.sh	Thu Apr 29 13:53:09 2010 -0700
   111.3 @@ -0,0 +1,106 @@
   111.4 +#
   111.5 +# Copyright 2009-2010 Sun Microsystems, Inc.  All Rights Reserved.
   111.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   111.7 +#
   111.8 +# This code is free software; you can redistribute it and/or modify it
   111.9 +# under the terms of the GNU General Public License version 2 only, as
  111.10 +# published by the Free Software Foundation.
  111.11 +#
  111.12 +# This code is distributed in the hope that it will be useful, but WITHOUT
  111.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  111.14 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  111.15 +# version 2 for more details (a copy is included in the LICENSE file that
  111.16 +# accompanied this code).
  111.17 +#
  111.18 +# You should have received a copy of the GNU General Public License version
  111.19 +# 2 along with this work; if not, write to the Free Software Foundation,
  111.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  111.21 +#
  111.22 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  111.23 +# CA 95054 USA or visit www.sun.com if you need additional information or
  111.24 +# have any questions.
  111.25 +#
  111.26 +
  111.27 +# @test
  111.28 +# @bug 6317711 6944847
  111.29 +# @summary Ensure the GSSName has the correct impl which respects
  111.30 +# the contract for equals and hashCode across different configurations.
  111.31 +
  111.32 +# set a few environment variables so that the shell-script can run stand-alone
  111.33 +# in the source directory
  111.34 +
  111.35 +if [ "${TESTSRC}" = "" ] ; then
  111.36 +   TESTSRC="."
  111.37 +fi
  111.38 +
  111.39 +if [ "${TESTCLASSES}" = "" ] ; then
  111.40 +   TESTCLASSES="."
  111.41 +fi
  111.42 +
  111.43 +if [ "${TESTJAVA}" = "" ] ; then
  111.44 +   echo "TESTJAVA not set.  Test cannot execute."
  111.45 +   echo "FAILED!!!"
  111.46 +   exit 1
  111.47 +fi
  111.48 +
  111.49 +NATIVE=false
  111.50 +
  111.51 +# set platform-dependent variables
  111.52 +OS=`uname -s`
  111.53 +case "$OS" in
  111.54 +  SunOS )
  111.55 +    PATHSEP=":"
  111.56 +    FILESEP="/"
  111.57 +    NATIVE=true
  111.58 +    ;;
  111.59 +  Linux )
  111.60 +    PATHSEP=":"
  111.61 +    FILESEP="/"
  111.62 +    NATIVE=true
  111.63 +    ;;
  111.64 +  CYGWIN* )
  111.65 +    PATHSEP=";"
  111.66 +    FILESEP="/"
  111.67 +    ;;
  111.68 +  Windows* )
  111.69 +    PATHSEP=";"
  111.70 +    FILESEP="\\"
  111.71 +    ;;
  111.72 +  * )
  111.73 +    echo "Unrecognized system!"
  111.74 +    exit 1;
  111.75 +    ;;
  111.76 +esac
  111.77 +
  111.78 +TEST=Krb5NameEquals
  111.79 +
  111.80 +${TESTJAVA}${FILESEP}bin${FILESEP}javac \
  111.81 +    -d ${TESTCLASSES}${FILESEP} \
  111.82 +    ${TESTSRC}${FILESEP}${TEST}.java
  111.83 +
  111.84 +EXIT_STATUS=0
  111.85 +
  111.86 +if [ "${NATIVE}" = "true" ] ; then
  111.87 +    echo "Testing native provider"
  111.88 +    ${TESTJAVA}${FILESEP}bin${FILESEP}java \
  111.89 +        -classpath ${TESTCLASSES} \
  111.90 +        -Dsun.security.jgss.native=true \
  111.91 +        ${TEST}
  111.92 +    if [ $? != 0 ] ; then
  111.93 +        echo "Native provider fails"
  111.94 +        EXIT_STATUS=1
  111.95 +    fi
  111.96 +fi
  111.97 +
  111.98 +echo "Testing java provider"
  111.99 +${TESTJAVA}${FILESEP}bin${FILESEP}java \
 111.100 +        -classpath ${TESTCLASSES} \
 111.101 +        -Djava.security.krb5.realm=R \
 111.102 +        -Djava.security.krb5.kdc=127.0.0.1 \
 111.103 +        ${TEST}
 111.104 +if [ $? != 0 ] ; then
 111.105 +    echo "Java provider fails"
 111.106 +    EXIT_STATUS=1
 111.107 +fi
 111.108 +
 111.109 +exit ${EXIT_STATUS}
   112.1 --- a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java	Thu Apr 22 16:54:34 2010 -0700
   112.2 +++ b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java	Thu Apr 29 13:53:09 2010 -0700
   112.3 @@ -624,6 +624,11 @@
   112.4      volatile static boolean serverReady = false;
   112.5  
   112.6      /*
   112.7 +     * Is the connection ready to close?
   112.8 +     */
   112.9 +    volatile static boolean closeReady = false;
  112.10 +
  112.11 +    /*
  112.12       * Turn on SSL debugging?
  112.13       */
  112.14      static boolean debug = false;
  112.15 @@ -652,9 +657,6 @@
  112.16  
  112.17          SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
  112.18          sslSocket.setNeedClientAuth(true);
  112.19 -        if (sslSocket instanceof SSLSocketImpl) {
  112.20 -            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
  112.21 -        }
  112.22  
  112.23          PrintStream out =
  112.24                  new PrintStream(sslSocket.getOutputStream());
  112.25 @@ -670,11 +672,14 @@
  112.26              out.print("Testing\r\n");
  112.27              out.flush();
  112.28          } finally {
  112.29 -             // close the socket
  112.30 -             Thread.sleep(2000);
  112.31 -             System.out.println("Server closing socket");
  112.32 -             sslSocket.close();
  112.33 -             serverReady = false;
  112.34 +            // close the socket
  112.35 +            while (!closeReady) {
  112.36 +                Thread.sleep(50);
  112.37 +            }
  112.38 +
  112.39 +            System.out.println("Server closing socket");
  112.40 +            sslSocket.close();
  112.41 +            serverReady = false;
  112.42          }
  112.43  
  112.44      }
  112.45 @@ -704,12 +709,17 @@
  112.46          URL url = new URL("https://localhost:" + serverPort+"/");
  112.47          System.out.println("url is "+url.toString());
  112.48  
  112.49 -        http = (HttpsURLConnection)url.openConnection();
  112.50 +        try {
  112.51 +            http = (HttpsURLConnection)url.openConnection();
  112.52  
  112.53 -        int respCode = http.getResponseCode();
  112.54 -        System.out.println("respCode = "+respCode);
  112.55 -
  112.56 -        http.disconnect();
  112.57 +            int respCode = http.getResponseCode();
  112.58 +            System.out.println("respCode = "+respCode);
  112.59 +        } finally {
  112.60 +            if (http != null) {
  112.61 +                http.disconnect();
  112.62 +            }
  112.63 +            closeReady = true;
  112.64 +        }
  112.65      }
  112.66  
  112.67      /*
   113.1 --- a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java	Thu Apr 22 16:54:34 2010 -0700
   113.2 +++ b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java	Thu Apr 29 13:53:09 2010 -0700
   113.3 @@ -61,6 +61,11 @@
   113.4      volatile static boolean serverReady = false;
   113.5  
   113.6      /*
   113.7 +     * Is the connection ready to close?
   113.8 +     */
   113.9 +    volatile static boolean closeReady = false;
  113.10 +
  113.11 +    /*
  113.12       * Turn on SSL debugging?
  113.13       */
  113.14      static boolean debug = false;
  113.15 @@ -98,25 +103,34 @@
  113.16          serverReady = true;
  113.17  
  113.18          SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
  113.19 -        InputStream sslIS = sslSocket.getInputStream();
  113.20 -        OutputStream sslOS = sslSocket.getOutputStream();
  113.21 -        BufferedReader br = new BufferedReader(new InputStreamReader(sslIS));
  113.22 -        PrintStream ps = new PrintStream(sslOS);
  113.23 -        // process HTTP POST request from client
  113.24 -        System.out.println("status line: "+br.readLine());
  113.25 -        String msg = null;
  113.26 -        while ((msg = br.readLine()) != null && msg.length() > 0);
  113.27 +        try {
  113.28 +            InputStream sslIS = sslSocket.getInputStream();
  113.29 +            OutputStream sslOS = sslSocket.getOutputStream();
  113.30 +            BufferedReader br =
  113.31 +                        new BufferedReader(new InputStreamReader(sslIS));
  113.32 +            PrintStream ps = new PrintStream(sslOS);
  113.33  
  113.34 -        msg = br.readLine();
  113.35 -        if (msg.equals(postMsg)) {
  113.36 -            ps.println("HTTP/1.1 200 OK\n\n");
  113.37 -        } else {
  113.38 -            ps.println("HTTP/1.1 500 Not OK\n\n");
  113.39 +            // process HTTP POST request from client
  113.40 +            System.out.println("status line: "+br.readLine());
  113.41 +            String msg = null;
  113.42 +            while ((msg = br.readLine()) != null && msg.length() > 0);
  113.43 +
  113.44 +            msg = br.readLine();
  113.45 +            if (msg.equals(postMsg)) {
  113.46 +                ps.println("HTTP/1.1 200 OK\n\n");
  113.47 +            } else {
  113.48 +                ps.println("HTTP/1.1 500 Not OK\n\n");
  113.49 +            }
  113.50 +            ps.flush();
  113.51 +
  113.52 +            // close the socket
  113.53 +            while (!closeReady) {
  113.54 +                Thread.sleep(50);
  113.55 +            }
  113.56 +        } finally {
  113.57 +            sslSocket.close();
  113.58 +            sslServerSocket.close();
  113.59          }
  113.60 -        ps.flush();
  113.61 -        Thread.sleep(2000);
  113.62 -        sslSocket.close();
  113.63 -        sslServerSocket.close();
  113.64      }
  113.65  
  113.66      /*
  113.67 @@ -144,12 +158,17 @@
  113.68  
  113.69          http.setRequestMethod("POST");
  113.70          PrintStream ps = new PrintStream(http.getOutputStream());
  113.71 -        ps.println(postMsg);
  113.72 -        ps.flush();
  113.73 -        if (http.getResponseCode() != 200) {
  113.74 -            throw new RuntimeException("test Failed");
  113.75 +        try {
  113.76 +            ps.println(postMsg);
  113.77 +            ps.flush();
  113.78 +            if (http.getResponseCode() != 200) {
  113.79 +                throw new RuntimeException("test Failed");
  113.80 +            }
  113.81 +        } finally {
  113.82 +            ps.close();
  113.83 +            http.disconnect();
  113.84 +            closeReady = true;
  113.85          }
  113.86 -        ps.close();
  113.87      }
  113.88  
  113.89      static class NameVerifier implements HostnameVerifier {
   114.1 --- a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java	Thu Apr 22 16:54:34 2010 -0700
   114.2 +++ b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java	Thu Apr 29 13:53:09 2010 -0700
   114.3 @@ -624,6 +624,11 @@
   114.4      volatile static boolean serverReady = false;
   114.5  
   114.6      /*
   114.7 +     * Is the connection ready to close?
   114.8 +     */
   114.9 +    volatile static boolean closeReady = false;
  114.10 +
  114.11 +    /*
  114.12       * Turn on SSL debugging?
  114.13       */
  114.14      static boolean debug = false;
  114.15 @@ -652,9 +657,6 @@
  114.16  
  114.17          SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
  114.18          sslSocket.setNeedClientAuth(true);
  114.19 -        if (sslSocket instanceof SSLSocketImpl) {
  114.20 -            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
  114.21 -        }
  114.22  
  114.23          PrintStream out =
  114.24                  new PrintStream(sslSocket.getOutputStream());
  114.25 @@ -670,11 +672,14 @@
  114.26              out.print("Testing\r\n");
  114.27              out.flush();
  114.28          } finally {
  114.29 -             // close the socket
  114.30 -             Thread.sleep(2000);
  114.31 -             System.out.println("Server closing socket");
  114.32 -             sslSocket.close();
  114.33 -             serverReady = false;
  114.34 +            // close the socket
  114.35 +            while (!closeReady) {
  114.36 +                Thread.sleep(50);
  114.37 +            }
  114.38 +
  114.39 +            System.out.println("Server closing socket");
  114.40 +            sslSocket.close();
  114.41 +            serverReady = false;
  114.42          }
  114.43  
  114.44      }
  114.45 @@ -716,7 +721,10 @@
  114.46              // no subject alternative names matching IP address 127.0.0.1 found
  114.47              // that's the expected exception, ignore it.
  114.48          } finally {
  114.49 -            http.disconnect();
  114.50 +            if (http != null) {
  114.51 +                http.disconnect();
  114.52 +            }
  114.53 +            closeReady = true;
  114.54          }
  114.55      }
  114.56  
   115.1 --- a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java	Thu Apr 22 16:54:34 2010 -0700
   115.2 +++ b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java	Thu Apr 29 13:53:09 2010 -0700
   115.3 @@ -625,6 +625,11 @@
   115.4      volatile static boolean serverReady = false;
   115.5  
   115.6      /*
   115.7 +     * Is the connection ready to close?
   115.8 +     */
   115.9 +    volatile static boolean closeReady = false;
  115.10 +
  115.11 +    /*
  115.12       * Turn on SSL debugging?
  115.13       */
  115.14      static boolean debug = false;
  115.15 @@ -653,9 +658,6 @@
  115.16  
  115.17          SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
  115.18          sslSocket.setNeedClientAuth(true);
  115.19 -        if (sslSocket instanceof SSLSocketImpl) {
  115.20 -            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
  115.21 -        }
  115.22  
  115.23          PrintStream out =
  115.24                  new PrintStream(sslSocket.getOutputStream());
  115.25 @@ -672,7 +674,10 @@
  115.26              out.flush();
  115.27          } finally {
  115.28               // close the socket
  115.29 -             Thread.sleep(2000);
  115.30 +             while (!closeReady) {
  115.31 +                 Thread.sleep(50);
  115.32 +             }
  115.33 +
  115.34               System.out.println("Server closing socket");
  115.35               sslSocket.close();
  115.36               serverReady = false;
  115.37 @@ -705,12 +710,17 @@
  115.38          URL url = new URL("https://127.0.0.1:" + serverPort+"/");
  115.39          System.out.println("url is "+url.toString());
  115.40  
  115.41 -        http = (HttpsURLConnection)url.openConnection();
  115.42 +        try {
  115.43 +            http = (HttpsURLConnection)url.openConnection();
  115.44  
  115.45 -        int respCode = http.getResponseCode();
  115.46 -        System.out.println("respCode = "+respCode);
  115.47 -
  115.48 -        http.disconnect();
  115.49 +            int respCode = http.getResponseCode();
  115.50 +            System.out.println("respCode = "+respCode);
  115.51 +        } finally {
  115.52 +            if (http != null) {
  115.53 +                http.disconnect();
  115.54 +            }
  115.55 +            closeReady = true;
  115.56 +        }
  115.57      }
  115.58  
  115.59      /*
   116.1 --- a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java	Thu Apr 22 16:54:34 2010 -0700
   116.2 +++ b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java	Thu Apr 29 13:53:09 2010 -0700
   116.3 @@ -625,6 +625,11 @@
   116.4      volatile static boolean serverReady = false;
   116.5  
   116.6      /*
   116.7 +     * Is the connection ready to close?
   116.8 +     */
   116.9 +    volatile static boolean closeReady = false;
  116.10 +
  116.11 +    /*
  116.12       * Turn on SSL debugging?
  116.13       */
  116.14      static boolean debug = false;
  116.15 @@ -653,9 +658,6 @@
  116.16  
  116.17          SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
  116.18          sslSocket.setNeedClientAuth(true);
  116.19 -        if (sslSocket instanceof SSLSocketImpl) {
  116.20 -            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
  116.21 -        }
  116.22  
  116.23          PrintStream out =
  116.24                  new PrintStream(sslSocket.getOutputStream());
  116.25 @@ -672,7 +674,10 @@
  116.26              out.flush();
  116.27          } finally {
  116.28               // close the socket
  116.29 -             Thread.sleep(2000);
  116.30 +             while (!closeReady) {
  116.31 +                 Thread.sleep(50);
  116.32 +             }
  116.33 +
  116.34               System.out.println("Server closing socket");
  116.35               sslSocket.close();
  116.36               serverReady = false;
  116.37 @@ -705,12 +710,17 @@
  116.38          URL url = new URL("https://localhost:" + serverPort+"/");
  116.39          System.out.println("url is "+url.toString());
  116.40  
  116.41 -        http = (HttpsURLConnection)url.openConnection();
  116.42 +        try {
  116.43 +            http = (HttpsURLConnection)url.openConnection();
  116.44  
  116.45 -        int respCode = http.getResponseCode();
  116.46 -        System.out.println("respCode = "+respCode);
  116.47 -
  116.48 -        http.disconnect();
  116.49 +            int respCode = http.getResponseCode();
  116.50 +            System.out.println("respCode = "+respCode);
  116.51 +        } finally {
  116.52 +            if (http != null) {
  116.53 +                http.disconnect();
  116.54 +            }
  116.55 +            closeReady = true;
  116.56 +        }
  116.57      }
  116.58  
  116.59      /*
   117.1 --- a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java	Thu Apr 22 16:54:34 2010 -0700
   117.2 +++ b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java	Thu Apr 29 13:53:09 2010 -0700
   117.3 @@ -624,6 +624,11 @@
   117.4      volatile static boolean serverReady = false;
   117.5  
   117.6      /*
   117.7 +     * Is the connection ready to close?
   117.8 +     */
   117.9 +    volatile static boolean closeReady = false;
  117.10 +
  117.11 +    /*
  117.12       * Turn on SSL debugging?
  117.13       */
  117.14      static boolean debug = false;
  117.15 @@ -652,9 +657,6 @@
  117.16  
  117.17          SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
  117.18          sslSocket.setNeedClientAuth(true);
  117.19 -        if (sslSocket instanceof SSLSocketImpl) {
  117.20 -            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
  117.21 -        }
  117.22  
  117.23          PrintStream out =
  117.24                  new PrintStream(sslSocket.getOutputStream());
  117.25 @@ -671,7 +673,10 @@
  117.26              out.flush();
  117.27          } finally {
  117.28               // close the socket
  117.29 -             Thread.sleep(2000);
  117.30 +             while (!closeReady) {
  117.31 +                 Thread.sleep(50);
  117.32 +             }
  117.33 +
  117.34               System.out.println("Server closing socket");
  117.35               sslSocket.close();
  117.36               serverReady = false;
  117.37 @@ -704,12 +709,17 @@
  117.38          URL url = new URL("https://localhost:" + serverPort+"/");
  117.39          System.out.println("url is "+url.toString());
  117.40  
  117.41 -        http = (HttpsURLConnection)url.openConnection();
  117.42 +        try {
  117.43 +            http = (HttpsURLConnection)url.openConnection();
  117.44  
  117.45 -        int respCode = http.getResponseCode();
  117.46 -        System.out.println("respCode = "+respCode);
  117.47 -
  117.48 -        http.disconnect();
  117.49 +            int respCode = http.getResponseCode();
  117.50 +            System.out.println("respCode = "+respCode);
  117.51 +        } finally {
  117.52 +            if (http != null) {
  117.53 +                http.disconnect();
  117.54 +            }
  117.55 +            closeReady = true;
  117.56 +        }
  117.57      }
  117.58  
  117.59      /*
   118.1 --- a/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java	Thu Apr 22 16:54:34 2010 -0700
   118.2 +++ b/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java	Thu Apr 29 13:53:09 2010 -0700
   118.3 @@ -61,6 +61,11 @@
   118.4      volatile static boolean serverReady = false;
   118.5  
   118.6      /*
   118.7 +     * Is the connection ready to close?
   118.8 +     */
   118.9 +    volatile static boolean closeReady = false;
  118.10 +
  118.11 +    /*
  118.12       * Turn on SSL debugging?
  118.13       */
  118.14      static boolean debug = false;
  118.15 @@ -98,24 +103,33 @@
  118.16          serverReady = true;
  118.17  
  118.18          SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
  118.19 -        InputStream sslIS = sslSocket.getInputStream();
  118.20 -        OutputStream sslOS = sslSocket.getOutputStream();
  118.21 -        BufferedReader br = new BufferedReader(new InputStreamReader(sslIS));
  118.22 -        PrintStream ps = new PrintStream(sslOS);
  118.23 -        // process HTTP POST request from client
  118.24 -        System.out.println("status line: "+br.readLine());
  118.25 +        try {
  118.26 +            InputStream sslIS = sslSocket.getInputStream();
  118.27 +            OutputStream sslOS = sslSocket.getOutputStream();
  118.28 +            BufferedReader br =
  118.29 +                        new BufferedReader(new InputStreamReader(sslIS));
  118.30 +            PrintStream ps = new PrintStream(sslOS);
  118.31  
  118.32 -        ps.println("HTTP/1.1 307 Redirect");
  118.33 -        ps.println("Location: https://localhost:"+serverPort+"/index.html\n\n");
  118.34 -        ps.flush();
  118.35 -        sslSocket = (SSLSocket) sslServerSocket.accept();
  118.36 -        sslOS = sslSocket.getOutputStream();
  118.37 -        ps = new PrintStream(sslOS);
  118.38 -        ps.println("HTTP/1.1 200 Redirect succeeded\n\n");
  118.39 -        ps.flush();
  118.40 -        Thread.sleep(2000);
  118.41 -        sslSocket.close();
  118.42 -        sslServerSocket.close();
  118.43 +            // process HTTP POST request from client
  118.44 +            System.out.println("status line: "+br.readLine());
  118.45 +
  118.46 +            ps.println("HTTP/1.1 307 Redirect");
  118.47 +            ps.println("Location: https://localhost:" + serverPort +
  118.48 +                                                            "/index.html\n\n");
  118.49 +            ps.flush();
  118.50 +            sslSocket = (SSLSocket) sslServerSocket.accept();
  118.51 +            sslOS = sslSocket.getOutputStream();
  118.52 +            ps = new PrintStream(sslOS);
  118.53 +            ps.println("HTTP/1.1 200 Redirect succeeded\n\n");
  118.54 +            ps.flush();
  118.55 +        } finally {
  118.56 +            // close the socket
  118.57 +            while (!closeReady) {
  118.58 +                Thread.sleep(50);
  118.59 +            }
  118.60 +            sslSocket.close();
  118.61 +            sslServerSocket.close();
  118.62 +        }
  118.63      }
  118.64  
  118.65      /*
  118.66 @@ -139,10 +153,14 @@
  118.67          HttpsURLConnection.setDefaultHostnameVerifier(
  118.68                                        new NameVerifier());
  118.69          HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
  118.70 -
  118.71 -        System.out.println("response header: "+http.getHeaderField(0));
  118.72 -        if (http.getResponseCode() != 200) {
  118.73 -            throw new RuntimeException("test Failed");
  118.74 +        try {
  118.75 +            System.out.println("response header: "+http.getHeaderField(0));
  118.76 +            if (http.getResponseCode() != 200) {
  118.77 +                throw new RuntimeException("test Failed");
  118.78 +            }
  118.79 +        } finally {
  118.80 +            http.disconnect();
  118.81 +            closeReady = true;
  118.82          }
  118.83      }
  118.84  
   119.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   119.2 +++ b/test/sun/security/tools/jarsigner/TimestampCheck.java	Thu Apr 29 13:53:09 2010 -0700
   119.3 @@ -0,0 +1,294 @@
   119.4 +/*
   119.5 + * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
   119.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   119.7 + *
   119.8 + * This code is free software; you can redistribute it and/or modify it
   119.9 + * under the terms of the GNU General Public License version 2 only, as
  119.10 + * published by the Free Software Foundation.
  119.11 + *
  119.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  119.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  119.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  119.15 + * version 2 for more details (a copy is included in the LICENSE file that
  119.16 + * accompanied this code).
  119.17 + *
  119.18 + * You should have received a copy of the GNU General Public License version
  119.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  119.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  119.21 + *
  119.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  119.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  119.24 + * have any questions.
  119.25 + */
  119.26 +
  119.27 +import com.sun.net.httpserver.*;
  119.28 +import java.io.BufferedReader;
  119.29 +import java.io.ByteArrayOutputStream;
  119.30 +import java.io.File;
  119.31 +import java.io.FileInputStream;
  119.32 +import java.io.FileOutputStream;
  119.33 +import java.io.IOException;
  119.34 +import java.io.InputStreamReader;
  119.35 +import java.io.OutputStream;
  119.36 +import java.math.BigInteger;
  119.37 +import java.net.InetSocketAddress;
  119.38 +import java.security.KeyStore;
  119.39 +import java.security.PrivateKey;
  119.40 +import java.security.Signature;
  119.41 +import java.security.cert.Certificate;
  119.42 +import java.security.cert.X509Certificate;
  119.43 +import java.util.Calendar;
  119.44 +import sun.security.pkcs.ContentInfo;
  119.45 +import sun.security.pkcs.PKCS7;
  119.46 +import sun.security.pkcs.SignerInfo;
  119.47 +import sun.security.util.DerOutputStream;
  119.48 +import sun.security.util.DerValue;
  119.49 +import sun.security.util.ObjectIdentifier;
  119.50 +import sun.security.x509.AlgorithmId;
  119.51 +import sun.security.x509.X500Name;
  119.52 +
  119.53 +public class TimestampCheck {
  119.54 +    static final String TSKS = "tsks";
  119.55 +    static final String JAR = "old.jar";
  119.56 +
  119.57 +    static class Handler implements HttpHandler {
  119.58 +        public void handle(HttpExchange t) throws IOException {
  119.59 +            int len = 0;
  119.60 +            for (String h: t.getRequestHeaders().keySet()) {
  119.61 +                if (h.equalsIgnoreCase("Content-length")) {
  119.62 +                    len = Integer.valueOf(t.getRequestHeaders().get(h).get(0));
  119.63 +                }
  119.64 +            }
  119.65 +            byte[] input = new byte[len];
  119.66 +            t.getRequestBody().read(input);
  119.67 +
  119.68 +            try {
  119.69 +                int path = 0;
  119.70 +                if (t.getRequestURI().getPath().length() > 1) {
  119.71 +                    path = Integer.parseInt(
  119.72 +                            t.getRequestURI().getPath().substring(1));
  119.73 +                }
  119.74 +                byte[] output = sign(input, path);
  119.75 +                Headers out = t.getResponseHeaders();
  119.76 +                out.set("Content-Type", "application/timestamp-reply");
  119.77 +
  119.78 +                t.sendResponseHeaders(200, output.length);
  119.79 +                OutputStream os = t.getResponseBody();
  119.80 +                os.write(output);
  119.81 +            } catch (Exception e) {
  119.82 +                e.printStackTrace();
  119.83 +                t.sendResponseHeaders(500, 0);
  119.84 +            }
  119.85 +            t.close();
  119.86 +        }
  119.87 +
  119.88 +        /**
  119.89 +         * @param input The data to sign
  119.90 +         * @param path different cases to simulate, impl on URL path
  119.91 +         * 0: normal
  119.92 +         * 1: Missing nonce
  119.93 +         * 2: Different nonce
  119.94 +         * 3: Bad digets octets in messageImprint
  119.95 +         * 4: Different algorithmId in messageImprint
  119.96 +         * 5: whole chain in cert set
  119.97 +         * 6: extension is missing
  119.98 +         * 7: extension is non-critical
  119.99 +         * 8: extension does not have timestamping
 119.100 +         * @returns the signed
 119.101 +         */
 119.102 +        byte[] sign(byte[] input, int path) throws Exception {
 119.103 +            // Read TSRequest
 119.104 +            DerValue value = new DerValue(input);
 119.105 +            System.err.println("\nIncoming Request\n===================");
 119.106 +            System.err.println("Version: " + value.data.getInteger());
 119.107 +            DerValue messageImprint = value.data.getDerValue();
 119.108 +            AlgorithmId aid = AlgorithmId.parse(
 119.109 +                    messageImprint.data.getDerValue());
 119.110 +            System.err.println("AlgorithmId: " + aid);
 119.111 +
 119.112 +            BigInteger nonce = null;
 119.113 +            while (value.data.available() > 0) {
 119.114 +                DerValue v = value.data.getDerValue();
 119.115 +                if (v.tag == DerValue.tag_Integer) {
 119.116 +                    nonce = v.getBigInteger();
 119.117 +                    System.err.println("nonce: " + nonce);
 119.118 +                } else if (v.tag == DerValue.tag_Boolean) {
 119.119 +                    System.err.println("certReq: " + v.getBoolean());
 119.120 +                }
 119.121 +            }
 119.122 +
 119.123 +            // Write TSResponse
 119.124 +            System.err.println("\nResponse\n===================");
 119.125 +            KeyStore ks = KeyStore.getInstance("JKS");
 119.126 +            ks.load(new FileInputStream(TSKS), "changeit".toCharArray());
 119.127 +
 119.128 +            String alias = "ts";
 119.129 +            if (path == 6) alias = "tsbad1";
 119.130 +            if (path == 7) alias = "tsbad2";
 119.131 +            if (path == 8) alias = "tsbad3";
 119.132 +
 119.133 +            DerOutputStream statusInfo = new DerOutputStream();
 119.134 +            statusInfo.putInteger(0);
 119.135 +
 119.136 +            DerOutputStream token = new DerOutputStream();
 119.137 +            AlgorithmId[] algorithms = {aid};
 119.138 +            Certificate[] chain = ks.getCertificateChain(alias);
 119.139 +            X509Certificate[] signerCertificateChain = null;
 119.140 +            X509Certificate signer = (X509Certificate)chain[0];
 119.141 +            if (path == 5) {   // Only case 5 uses full chain
 119.142 +                signerCertificateChain = new X509Certificate[chain.length];
 119.143 +                for (int i=0; i<chain.length; i++) {
 119.144 +                    signerCertificateChain[i] = (X509Certificate)chain[i];
 119.145 +                }
 119.146 +            } else if (path == 9) {
 119.147 +                signerCertificateChain = new X509Certificate[0];
 119.148 +            } else {
 119.149 +                signerCertificateChain = new X509Certificate[1];
 119.150 +                signerCertificateChain[0] = (X509Certificate)chain[0];
 119.151 +            }
 119.152 +
 119.153 +            DerOutputStream tst = new DerOutputStream();
 119.154 +
 119.155 +            tst.putInteger(1);
 119.156 +            tst.putOID(new ObjectIdentifier("1.2.3.4"));    // policy
 119.157 +
 119.158 +            if (path != 3 && path != 4) {
 119.159 +                tst.putDerValue(messageImprint);
 119.160 +            } else {
 119.161 +                byte[] data = messageImprint.toByteArray();
 119.162 +                if (path == 4) {
 119.163 +                    data[6] = (byte)0x01;
 119.164 +                } else {
 119.165 +                    data[data.length-1] = (byte)0x01;
 119.166 +                    data[data.length-2] = (byte)0x02;
 119.167 +                    data[data.length-3] = (byte)0x03;
 119.168 +                }
 119.169 +                tst.write(data);
 119.170 +            }
 119.171 +
 119.172 +            tst.putInteger(1);
 119.173 +
 119.174 +            Calendar cal = Calendar.getInstance();
 119.175 +            tst.putGeneralizedTime(cal.getTime());
 119.176 +
 119.177 +            if (path == 2) {
 119.178 +                tst.putInteger(1234);
 119.179 +            } else if (path == 1) {
 119.180 +                // do nothing
 119.181 +            } else {
 119.182 +                tst.putInteger(nonce);
 119.183 +            }
 119.184 +
 119.185 +            DerOutputStream tstInfo = new DerOutputStream();
 119.186 +            tstInfo.write(DerValue.tag_Sequence, tst);
 119.187 +
 119.188 +            DerOutputStream tstInfo2 = new DerOutputStream();
 119.189 +            tstInfo2.putOctetString(tstInfo.toByteArray());
 119.190 +
 119.191 +            Signature sig = Signature.getInstance("SHA1withDSA");
 119.192 +            sig.initSign((PrivateKey)(ks.getKey(
 119.193 +                    alias, "changeit".toCharArray())));
 119.194 +            sig.update(tstInfo.toByteArray());
 119.195 +
 119.196 +            ContentInfo contentInfo = new ContentInfo(new ObjectIdentifier(
 119.197 +                    "1.2.840.113549.1.9.16.1.4"),
 119.198 +                    new DerValue(tstInfo2.toByteArray()));
 119.199 +
 119.200 +            System.err.println("Signing...");
 119.201 +            System.err.println(new X500Name(signer
 119.202 +                    .getIssuerX500Principal().getName()));
 119.203 +            System.err.println(signer.getSerialNumber());
 119.204 +
 119.205 +            SignerInfo signerInfo = new SignerInfo(
 119.206 +                    new X500Name(signer.getIssuerX500Principal().getName()),
 119.207 +                    signer.getSerialNumber(),
 119.208 +                    aid, AlgorithmId.get("DSA"), sig.sign());
 119.209 +
 119.210 +            SignerInfo[] signerInfos = {signerInfo};
 119.211 +            PKCS7 p7 =
 119.212 +                    new PKCS7(algorithms, contentInfo, signerCertificateChain,
 119.213 +                    signerInfos);
 119.214 +            ByteArrayOutputStream p7out = new ByteArrayOutputStream();
 119.215 +            p7.encodeSignedData(p7out);
 119.216 +
 119.217 +            DerOutputStream response = new DerOutputStream();
 119.218 +            response.write(DerValue.tag_Sequence, statusInfo);
 119.219 +            response.putDerValue(new DerValue(p7out.toByteArray()));
 119.220 +
 119.221 +            DerOutputStream out = new DerOutputStream();
 119.222 +            out.write(DerValue.tag_Sequence, response);
 119.223 +
 119.224 +            return out.toByteArray();
 119.225 +        }
 119.226 +    }
 119.227 +
 119.228 +    public static void main(String[] args) throws Exception {
 119.229 +
 119.230 +        Handler h = new Handler();
 119.231 +        HttpServer server = HttpServer.create(new InetSocketAddress(0), 0);
 119.232 +        int port = server.getAddress().getPort();
 119.233 +        HttpContext ctx = server.createContext("/", h);
 119.234 +        server.start();
 119.235 +
 119.236 +        String cmd = null;
 119.237 +        // Use -J-Djava.security.egd=file:/dev/./urandom to speed up
 119.238 +        // nonce generation in timestamping request. Not avaibale on
 119.239 +        // Windows and defaults to thread seed generator, not too bad.
 119.240 +        if (System.getProperty("java.home").endsWith("jre")) {
 119.241 +            cmd = System.getProperty("java.home") + "/../bin/jarsigner" +
 119.242 +                " -J-Djava.security.egd=file:/dev/./urandom" +
 119.243 +                " -debug -keystore " + TSKS + " -storepass changeit" +
 119.244 +                " -tsa http://localhost:" + port + "/%d" +
 119.245 +                " -signedjar new.jar " + JAR + " old";
 119.246 +        } else {
 119.247 +            cmd = System.getProperty("java.home") + "/bin/jarsigner" +
 119.248 +                " -J-Djava.security.egd=file:/dev/./urandom" +
 119.249 +                " -debug -keystore " + TSKS + " -storepass changeit" +
 119.250 +                " -tsa http://localhost:" + port + "/%d" +
 119.251 +                " -signedjar new.jar " + JAR + " old";
 119.252 +        }
 119.253 +
 119.254 +        try {
 119.255 +            if (args.length == 0) {         // Run this test
 119.256 +                jarsigner(cmd, 0, true);    // Success, normal call
 119.257 +                jarsigner(cmd, 1, false);   // These 4 should fail
 119.258 +                jarsigner(cmd, 2, false);
 119.259 +                jarsigner(cmd, 3, false);
 119.260 +                jarsigner(cmd, 4, false);
 119.261 +                jarsigner(cmd, 5, true);    // Success, 6543440 solved.
 119.262 +                jarsigner(cmd, 6, false);   // tsbad1
 119.263 +                jarsigner(cmd, 7, false);   // tsbad2
 119.264 +                jarsigner(cmd, 8, false);   // tsbad3
 119.265 +                jarsigner(cmd, 9, false);   // no cert in timestamp
 119.266 +            } else {                        // Run as a standalone server
 119.267 +                System.err.println("Press Enter to quit server");
 119.268 +                System.in.read();
 119.269 +            }
 119.270 +        } finally {
 119.271 +            server.stop(0);
 119.272 +            new File("x.jar").delete();
 119.273 +        }
 119.274 +    }
 119.275 +
 119.276 +    /**
 119.277 +     * @param cmd the command line (with a hole to plug in)
 119.278 +     * @param path the path in the URL, i.e, http://localhost/path
 119.279 +     * @param expected if this command should succeed
 119.280 +     */
 119.281 +    static void jarsigner(String cmd, int path, boolean expected)
 119.282 +            throws Exception {
 119.283 +        System.err.println("Test " + path);
 119.284 +        Process p = Runtime.getRuntime().exec(String.format(cmd, path));
 119.285 +        BufferedReader reader = new BufferedReader(
 119.286 +                new InputStreamReader(p.getErrorStream()));
 119.287 +        while (true) {
 119.288 +            String s = reader.readLine();
 119.289 +            if (s == null) break;
 119.290 +            System.err.println(s);
 119.291 +        }
 119.292 +        int result = p.waitFor();
 119.293 +        if (expected && result != 0 || !expected && result == 0) {
 119.294 +            throw new Exception("Failed");
 119.295 +        }
 119.296 +    }
 119.297 +}
   120.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   120.2 +++ b/test/sun/security/tools/jarsigner/ts.sh	Thu Apr 29 13:53:09 2010 -0700
   120.3 @@ -0,0 +1,91 @@
   120.4 +#
   120.5 +# Copyright 2007-2010 Sun Microsystems, Inc.  All Rights Reserved.
   120.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   120.7 +# 
   120.8 +# This code is free software; you can redistribute it and/or modify it
   120.9 +# under the terms of the GNU General Public License version 2 only, as
  120.10 +# published by the Free Software Foundation.
  120.11 +# 
  120.12 +# This code is distributed in the hope that it will be useful, but WITHOUT
  120.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  120.14 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  120.15 +# version 2 for more details (a copy is included in the LICENSE file that
  120.16 +# accompanied this code).
  120.17 +# 
  120.18 +# You should have received a copy of the GNU General Public License version
  120.19 +# 2 along with this work; if not, write to the Free Software Foundation,
  120.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  120.21 +# 
  120.22 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  120.23 +# CA 95054 USA or visit www.sun.com if you need additional information or
  120.24 +# have any questions.
  120.25 +#
  120.26 +
  120.27 +# @test
  120.28 +# @bug 6543842 6543440 6939248
  120.29 +# @summary checking response of timestamp
  120.30 +#
  120.31 +# @run shell/timeout=600 ts.sh
  120.32 +
  120.33 +# Run for a long time because jarsigner with timestamp needs to create a
  120.34 +# 64-bit random number and it might be extremely slow on a machine with
  120.35 +# not enough entropy pool
  120.36 +
  120.37 +# set platform-dependent variables
  120.38 +OS=`uname -s`
  120.39 +case "$OS" in
  120.40 +  Windows_* )
  120.41 +    FS="\\"
  120.42 +    ;;
  120.43 +  * )
  120.44 +    FS="/"
  120.45 +    ;;
  120.46 +esac
  120.47 +
  120.48 +if [ "${TESTSRC}" = "" ] ; then
  120.49 +  TESTSRC="."
  120.50 +fi
  120.51 +if [ "${TESTJAVA}" = "" ] ; then
  120.52 +  JAVAC_CMD=`which javac`
  120.53 +  TESTJAVA=`dirname $JAVAC_CMD`/..
  120.54 +fi
  120.55 +
  120.56 +JAR="${TESTJAVA}${FS}bin${FS}jar"
  120.57 +JAVA="${TESTJAVA}${FS}bin${FS}java"
  120.58 +JAVAC="${TESTJAVA}${FS}bin${FS}javac"
  120.59 +KT="${TESTJAVA}${FS}bin${FS}keytool -keystore tsks -storepass changeit -keypass changeit"
  120.60 +
  120.61 +rm tsks
  120.62 +echo Nothing > A
  120.63 +rm old.jar
  120.64 +$JAR cvf old.jar A
  120.65 +
  120.66 +# ca is CA
  120.67 +# old is signer for code
  120.68 +# ts is signer for timestamp
  120.69 +# tsbad1 has no extendedKeyUsage
  120.70 +# tsbad2's extendedKeyUsage is non-critical
  120.71 +# tsbad3's extendedKeyUsage has no timestamping
  120.72 +
  120.73 +$KT -alias ca -genkeypair -ext bc -dname CN=CA
  120.74 +$KT -alias old -genkeypair -dname CN=old
  120.75 +$KT -alias ts -genkeypair -dname CN=ts
  120.76 +$KT -alias tsbad1 -genkeypair -dname CN=tsbad1
  120.77 +$KT -alias tsbad2 -genkeypair -dname CN=tsbad2
  120.78 +$KT -alias tsbad3 -genkeypair -dname CN=tsbad3
  120.79 +$KT -alias ts -certreq | \
  120.80 +        $KT -alias ca -gencert -ext eku:critical=ts | \
  120.81 +        $KT -alias ts -importcert
  120.82 +$KT -alias tsbad1 -certreq | \
  120.83 +        $KT -alias ca -gencert | \
  120.84 +        $KT -alias tsbad1 -importcert
  120.85 +$KT -alias tsbad2 -certreq | \
  120.86 +        $KT -alias ca -gencert -ext eku=ts | \
  120.87 +        $KT -alias tsbad2 -importcert
  120.88 +$KT -alias tsbad3 -certreq | \
  120.89 +        $KT -alias ca -gencert -ext eku:critical=cs | \
  120.90 +        $KT -alias tsbad3 -importcert
  120.91 +
  120.92 +$JAVAC -d . ${TESTSRC}/TimestampCheck.java
  120.93 +$JAVA TimestampCheck
  120.94 +
   121.1 --- a/test/sun/security/tools/keytool/selfissued.sh	Thu Apr 22 16:54:34 2010 -0700
   121.2 +++ b/test/sun/security/tools/keytool/selfissued.sh	Thu Apr 29 13:53:09 2010 -0700
   121.3 @@ -1,5 +1,5 @@
   121.4  #
   121.5 -# Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   121.6 +# Copyright 2009-2010 Sun Microsystems, Inc.  All Rights Reserved.
   121.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   121.8  #
   121.9  # This code is free software; you can redistribute it and/or modify it
  121.10 @@ -22,8 +22,8 @@
  121.11  #
  121.12  
  121.13  # @test
  121.14 -# @bug 6825352
  121.15 -# @summary support self-issued certificate in keytool
  121.16 +# @bug 6825352 6937978
  121.17 +# @summary support self-issued certificate in keytool and let -gencert generate the chain
  121.18  #
  121.19  # @run shell selfissued.sh
  121.20  #
  121.21 @@ -50,20 +50,22 @@
  121.22  rm $KS
  121.23  
  121.24  $KT -alias ca -dname CN=CA -genkeypair
  121.25 -$KT -alias me -dname CN=CA -genkeypair
  121.26 +$KT -alias ca1 -dname CN=CA -genkeypair
  121.27 +$KT -alias ca2 -dname CN=CA -genkeypair
  121.28  $KT -alias e1 -dname CN=E1 -genkeypair
  121.29 -$KT -alias e2 -dname CN=E2 -genkeypair
  121.30  
  121.31 -# me signed by ca, self-issued
  121.32 -$KT -alias me -certreq | $KT -alias ca -gencert | $KT -alias me -importcert
  121.33 +# ca signs ca1, ca1 signs ca2, all self-issued
  121.34 +$KT -alias ca1 -certreq | $KT -alias ca -gencert -ext san=dns:ca1 \
  121.35 +        | $KT -alias ca1 -importcert
  121.36 +$KT -alias ca2 -certreq | $KT -alias ca1 -gencert -ext san=dns:ca2 \
  121.37 +        | $KT -alias ca2 -importcert
  121.38  
  121.39 -# Import e1 signed by me, should add me and ca
  121.40 -$KT -alias e1 -certreq | $KT -alias me -gencert | $KT -alias e1 -importcert
  121.41 +# Import e1 signed by ca2, should add ca2 and ca1, at least 3 certs in the chain
  121.42 +$KT -alias e1 -certreq | $KT -alias ca2 -gencert > e1.cert
  121.43 +$KT -alias ca1 -delete
  121.44 +$KT -alias ca2 -delete
  121.45 +cat e1.cert | $KT -alias e1 -importcert
  121.46  $KT -alias e1 -list -v | grep '\[3\]' || { echo Bad E1; exit 1; }
  121.47  
  121.48 -# Import (e2 signed by me,ca,me), should reorder to (e2,me,ca)
  121.49 -( $KT -alias e2 -certreq | $KT -alias me -gencert; $KT -exportcert -alias ca; $KT -exportcert -alias me ) | $KT -alias e2 -importcert
  121.50 -$KT -alias e2 -list -v | grep '\[3\]' || { echo Bad E2; exit 1; }
  121.51 -
  121.52  echo Good
  121.53  
   122.1 --- a/test/sun/text/resources/LocaleData	Thu Apr 22 16:54:34 2010 -0700
   122.2 +++ b/test/sun/text/resources/LocaleData	Thu Apr 29 13:53:09 2010 -0700
   122.3 @@ -673,8 +673,8 @@
   122.4  FormatData/es_VE/NumberElements/1=.
   122.5  FormatData/es_VE/NumberElements/2=;
   122.6  
   122.7 -# bug #4099810, 4290801, 6868106
   122.8 -CurrencyNames/uk_UA/UAH=\u0433\u0440\u043b.
   122.9 +# bug #4099810, 4290801, 6868106, 6916787
  122.10 +CurrencyNames/uk_UA/UAH=\u0433\u0440\u043d.
  122.11  FormatData/uk_UA/NumberPatterns/0=#,##0.###;-#,##0.###
  122.12  # FormatData/uk_UA/NumberPatterns/1=#,##0.## '\u0433\u0440\u0432.';-#,##0.## '\u0433\u0440\u0432.' # Changed; see bug 4122840
  122.13  FormatData/uk_UA/NumberPatterns/2=#,##0%
  122.14 @@ -6098,3 +6098,6 @@
  122.15  LocaleNames/nl/YT=Mayotte
  122.16  LocaleNames/nl/ZA=Zuid-Afrika
  122.17  LocaleNames/nl/ZM=Zambia
  122.18 +
  122.19 +# bug 6919624
  122.20 +CalendarData/hu/minimalDaysInFirstWeek=4
   123.1 --- a/test/sun/text/resources/LocaleDataTest.java	Thu Apr 22 16:54:34 2010 -0700
   123.2 +++ b/test/sun/text/resources/LocaleDataTest.java	Thu Apr 29 13:53:09 2010 -0700
   123.3 @@ -32,7 +32,8 @@
   123.4   *      6414459 6455680 6498742 6558863 6488119 6547501 6497154 6558856 6481177
   123.5   *      6379214 6485516 6486607 4225362 4494727 6533691 6531591 6531593 6570259
   123.6   *      6509039 6609737 6610748 6645271 6507067 6873931 6450945 6645268 6646611
   123.7 - *      6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413
   123.8 + *      6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787
   123.9 + *      6919624
  123.10   * @summary Verify locale data
  123.11   *
  123.12   */
   124.1 --- a/test/sun/util/resources/TimeZone/Bug6317929.java	Thu Apr 22 16:54:34 2010 -0700
   124.2 +++ b/test/sun/util/resources/TimeZone/Bug6317929.java	Thu Apr 29 13:53:09 2010 -0700
   124.3 @@ -180,11 +180,11 @@
   124.4                                         "(\ub274 \uc0ac\uc6b0\uc2a4 \uc6e8\uc77c\uc988)\"");
   124.5          tzLocale = locales2Test[7];
   124.6          if (!Currie.getDisplayName(false, TimeZone.LONG, tzLocale).equals
   124.7 -           ("Eastern Standard Time (Nya Sydwales)"))
   124.8 +           ("Eastern, normaltid (Nya Sydwales)"))
   124.9              throw new RuntimeException("\n" + tzLocale + ": LONG, " +
  124.10                                         "non-daylight saving name for " +
  124.11                                         "Australia/Currie should be " +
  124.12 -                                       "\"Eastern Standard Time " +
  124.13 +                                       "\"Eastern, normaltid " +
  124.14                                         "(Nya Sydwales)\"");
  124.15          tzLocale = locales2Test[8];
  124.16          if (!Currie.getDisplayName(false, TimeZone.LONG, tzLocale).equals