Merge
authoryan
Mon, 01 Jun 2009 01:06:28 -0700
changeset 1233951ecbad4068
parent 1226 7da360c3baf6
parent 1232 019908df0313
child 1234 0c3ef2d612a4
Merge
     1.1 --- a/make/sun/javazic/tzdata/VERSION	Mon Jun 01 01:05:22 2009 -0700
     1.2 +++ b/make/sun/javazic/tzdata/VERSION	Mon Jun 01 01:06:28 2009 -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 -tzdata2009a
     1.8 +tzdata2009g
     2.1 --- a/make/sun/javazic/tzdata/africa	Mon Jun 01 01:05:22 2009 -0700
     2.2 +++ b/make/sun/javazic/tzdata/africa	Mon Jun 01 01:06:28 2009 -0700
     2.3 @@ -258,7 +258,46 @@
     2.4  # unless discontinued, next DST may end Thursday 28 August 2008.
     2.5  # From Paul Eggert (2007-08-17):
     2.6  # For lack of better info, assume the new rule is last Thursday in August.
     2.7 -Rule	Egypt	2008	max	-	Aug	lastThu	23:00s	0	-
     2.8 +
     2.9 +# From Petr Machata (2009-04-06):
    2.10 +# The following appeared in Red Hat bugzilla[1] (edited):
    2.11 +#
    2.12 +# > $ zdump -v /usr/share/zoneinfo/Africa/Cairo | grep 2009
    2.13 +# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 21:59:59 2009 UTC =3D Thu =
    2.14 +# Apr 23
    2.15 +# > 23:59:59 2009 EET isdst=3D0 gmtoff=3D7200
    2.16 +# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 22:00:00 2009 UTC =3D Fri =
    2.17 +# Apr 24
    2.18 +# > 01:00:00 2009 EEST isdst=3D1 gmtoff=3D10800
    2.19 +# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 20:59:59 2009 UTC =3D Thu =
    2.20 +# Aug 27
    2.21 +# > 23:59:59 2009 EEST isdst=3D1 gmtoff=3D10800
    2.22 +# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 21:00:00 2009 UTC =3D Thu =
    2.23 +# Aug 27
    2.24 +# > 23:00:00 2009 EET isdst=3D0 gmtoff=3D7200
    2.25 +#
    2.26 +# > end date should be Thu Sep 24 2009 (Last Thursday in September at 23:59=
    2.27 +# :59)
    2.28 +# > http://support.microsoft.com/kb/958729/
    2.29 +#
    2.30 +# timeanddate[2] and another site I've found[3] also support that.
    2.31 +#
    2.32 +# [1] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=3D492263">
    2.33 +# https://bugzilla.redhat.com/show_bug.cgi?id=3D492263
    2.34 +# </a>
    2.35 +# [2] <a href="http://www.timeanddate.com/worldclock/clockchange.html?n=3D53">
    2.36 +# http://www.timeanddate.com/worldclock/clockchange.html?n=3D53
    2.37 +# </a>
    2.38 +# [3] <a href="http://wwp.greenwichmeantime.com/time-zone/africa/egypt/">
    2.39 +# http://wwp.greenwichmeantime.com/time-zone/africa/egypt/
    2.40 +# </a>
    2.41 +
    2.42 +# From Arthur David Olson (2009-04-20):
    2.43 +# In 2009 (and for the next several years), Ramadan ends before the fourth
    2.44 +# Thursday in September; Egypt is expected to revert to the last Thursday
    2.45 +# in September.
    2.46 +Rule	Egypt	2008	only	-	Aug	lastThu	23:00s	0	-
    2.47 +Rule	Egypt	2009	max	-	Sep	lastThu	23:00s	0	-
    2.48  
    2.49  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    2.50  Zone	Africa/Cairo	2:05:00 -	LMT	1900 Oct
    2.51 @@ -586,6 +625,40 @@
    2.52  # <a href="http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html">
    2.53  # http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html
    2.54  # </a>
    2.55 +
    2.56 +# From Steffen Thorsen (2009-03-17):
    2.57 +# Morocco will observe DST from 2009-06-01 00:00 to 2009-08-21 00:00 according
    2.58 +# to many sources, such as
    2.59 +# <a href="http://news.marweb.com/morocco/entertainment/morocco-daylight-saving.html">
    2.60 +# http://news.marweb.com/morocco/entertainment/morocco-daylight-saving.html
    2.61 +# </a>
    2.62 +# <a href="http://www.medi1sat.ma/fr/depeche.aspx?idp=2312">
    2.63 +# http://www.medi1sat.ma/fr/depeche.aspx?idp=2312
    2.64 +# </a>
    2.65 +# (French)
    2.66 +#
    2.67 +# Our summary:
    2.68 +# <a href="http://www.timeanddate.com/news/time/morocco-starts-dst-2009.html">
    2.69 +# http://www.timeanddate.com/news/time/morocco-starts-dst-2009.html
    2.70 +# </a>
    2.71 +
    2.72 +# From Alexander Krivenyshev (2009-03-17):
    2.73 +# Here is a link to official document from Royaume du Maroc Premier Ministre,
    2.74 +# Ministere de la Modernisation des Secteurs Publics
    2.75 +#
    2.76 +# Under Article 1 of Royal Decree No. 455-67 of Act 23 safar 1387 (2 june 1967)
    2.77 +# concerning the amendment of the legal time, the Ministry of Modernization of
    2.78 +# Public Sectors announced that the official time in the Kingdom will be
    2.79 +# advanced 60 minutes from Sunday 31 May 2009 at midnight.
    2.80 +#
    2.81 +# <a href="http://www.mmsp.gov.ma/francais/Actualites_fr/PDF_Actualites_Fr/HeureEte_FR.pdf">
    2.82 +# http://www.mmsp.gov.ma/francais/Actualites_fr/PDF_Actualites_Fr/HeureEte_FR.pdf
    2.83 +# </a>
    2.84 +#
    2.85 +# <a href="http://www.worldtimezone.com/dst_news/dst_news_morocco03.html">
    2.86 +# http://www.worldtimezone.com/dst_news/dst_news_morocco03.html
    2.87 +# </a>
    2.88 +
    2.89  # RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
    2.90  
    2.91  Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	S
    2.92 @@ -605,6 +678,8 @@
    2.93  Rule	Morocco	1978	only	-	Aug	 4	 0:00	0	-
    2.94  Rule	Morocco	2008	only	-	Jun	 1	 0:00	1:00	S
    2.95  Rule	Morocco	2008	only	-	Sep	 1	 0:00	0	-
    2.96 +Rule	Morocco	2009	only	-	Jun	 1	 0:00	1:00	S
    2.97 +Rule	Morocco	2009	only	-	Aug	 21	 0:00	0	-
    2.98  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    2.99  Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
   2.100  			 0:00	Morocco	WE%sT	1984 Mar 16
   2.101 @@ -809,6 +884,43 @@
   2.102  # Ending         : the last Sunday of October at 03:00 ...
   2.103  # http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=1188&Itemid=50
   2.104  
   2.105 +# From Steffen Thorsen (2009-03-16):
   2.106 +# According to several news sources, Tunisia will not observe DST this year.
   2.107 +# (Arabic)
   2.108 +# <a href="http://www.elbashayer.com/?page=viewn&nid=42546">
   2.109 +# http://www.elbashayer.com/?page=viewn&nid=42546
   2.110 +# </a>
   2.111 +# <a href="http://www.babnet.net/kiwidetail-15295.asp">
   2.112 +# http://www.babnet.net/kiwidetail-15295.asp
   2.113 +# </a>
   2.114 +#
   2.115 +# We have also confirmed this with the US embassy in Tunisia.
   2.116 +# We have a wrap-up about this on the following page:
   2.117 +# <a href="http://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html">
   2.118 +# http://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html
   2.119 +# </a>
   2.120 +
   2.121 +# From Alexander Krivenyshev (2009-03-17):
   2.122 +# Here is a link to Tunis Afrique Presse News Agency
   2.123 +#
   2.124 +# Standard time to be kept the whole year long (tap.info.tn):
   2.125 +#
   2.126 +# (in English)
   2.127 +# <a href="http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=26813&Itemid=157">
   2.128 +# http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=26813&Itemid=157
   2.129 +# </a>
   2.130 +#
   2.131 +# (in Arabic)
   2.132 +# <a href="http://www.tap.info.tn/ar/index.php?option=com_content&task=view&id=61240&Itemid=1">
   2.133 +# http://www.tap.info.tn/ar/index.php?option=com_content&task=view&id=61240&Itemid=1
   2.134 +# </a>
   2.135 +
   2.136 +# From Arthur David Olson (2009--3-18):
   2.137 +# The Tunis Afrique Presse News Agency notice contains this: "This measure is due to the fact
   2.138 +# that the fasting month of ramadan coincides with the period concerned by summer time.
   2.139 +# Therefore, the standard time will be kept unchanged the whole year long."
   2.140 +# So foregoing DST seems to be an exception (albeit one that may be repeated in the  future).
   2.141 +
   2.142  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
   2.143  Rule	Tunisia	1939	only	-	Apr	15	23:00s	1:00	S
   2.144  Rule	Tunisia	1939	only	-	Nov	18	23:00s	0	-
   2.145 @@ -833,8 +945,10 @@
   2.146  Rule	Tunisia	1990	only	-	May	 1	 0:00s	1:00	S
   2.147  Rule	Tunisia	2005	only	-	May	 1	 0:00s	1:00	S
   2.148  Rule	Tunisia	2005	only	-	Sep	30	 1:00s	0	-
   2.149 -Rule	Tunisia	2006	max	-	Mar	lastSun	 2:00s	1:00	S
   2.150 -Rule	Tunisia	2006	max	-	Oct	lastSun	 2:00s	0	-
   2.151 +Rule	Tunisia	2006	2008	-	Mar	lastSun	 2:00s	1:00	S
   2.152 +Rule	Tunisia	2006	2008	-	Oct	lastSun	 2:00s	0	-
   2.153 +Rule	Tunisia	2010	max	-	Mar	lastSun	 2:00s	1:00	S
   2.154 +Rule	Tunisia	2010	max	-	Oct	lastSun	 2:00s	0	-
   2.155  # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
   2.156  # more precise 0:09:21.
   2.157  # Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
     3.1 --- a/make/sun/javazic/tzdata/asia	Mon Jun 01 01:05:22 2009 -0700
     3.2 +++ b/make/sun/javazic/tzdata/asia	Mon Jun 01 01:06:28 2009 -0700
     3.3 @@ -1071,6 +1071,40 @@
     3.4  # http://www.petranews.gov.jo/nepras/2006/Sep/05/4000.htm
     3.5  # "Jordan will switch to winter time on Friday, October 27".
     3.6  #
     3.7 +
     3.8 +# From Phil Pizzey (2009-04-02):
     3.9 +# ...I think I may have spotted an error in the timezone data for
    3.10 +# Jordan.
    3.11 +# The current (2009d) asia file shows Jordan going to daylight
    3.12 +# saving
    3.13 +# time on the last Thursday in March.
    3.14 +#
    3.15 +# Rule  Jordan      2000  max	-  Mar   lastThu     0:00s 1:00  S
    3.16 +#
    3.17 +# However timeanddate.com, which I usually find reliable, shows Jordan
    3.18 +# going to daylight saving time on the last Friday in March since 2002.
    3.19 +# Please see
    3.20 +# <a href="http://www.timeanddate.com/worldclock/timezone.html?n=11">
    3.21 +# http://www.timeanddate.com/worldclock/timezone.html?n=11
    3.22 +# </a>
    3.23 +
    3.24 +# From Steffen Thorsen (2009-04-02):
    3.25 +# This single one might be good enough, (2009-03-24, Arabic):
    3.26 +# <a href="http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279">
    3.27 +# http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279
    3.28 +# </a>
    3.29 +#
    3.30 +# Google's translation:
    3.31 +#
    3.32 +# > The Council of Ministers decided in 2002 to adopt the principle of timely
    3.33 +# > submission of the summer at 60 minutes as of midnight on the last Thursday
    3.34 +# > of the month of March of each year.
    3.35 +#
    3.36 +# So - this means the midnight between Thursday and Friday since 2002.
    3.37 +
    3.38 +# From Arthur David Olson (2009-04-06):
    3.39 +# We still have Jordan switching to DST on Thursdays in 2000 and 2001.
    3.40 +
    3.41  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
    3.42  Rule	Jordan	1973	only	-	Jun	6	0:00	1:00	S
    3.43  Rule	Jordan	1973	1975	-	Oct	1	0:00	0	-
    3.44 @@ -1093,8 +1127,9 @@
    3.45  Rule	Jordan	1994	only	-	Sep	Fri>=15	0:00	0	-
    3.46  Rule	Jordan	1995	1998	-	Sep	Fri>=15	0:00s	0	-
    3.47  Rule	Jordan	1999	only	-	Jul	 1	0:00s	1:00	S
    3.48 -Rule	Jordan	1999	2002	-	Sep	lastThu	0:00s	0	-
    3.49 -Rule	Jordan	2000	max	-	Mar	lastThu	0:00s	1:00	S
    3.50 +Rule	Jordan	1999	2002	-	Sep	lastFri	0:00s	0	-
    3.51 +Rule	Jordan	2000	2001	-	Mar	lastThu	0:00s	1:00	S
    3.52 +Rule	Jordan	2002	max	-	Mar	lastFri	0:00s	1:00	S
    3.53  Rule	Jordan	2003	only	-	Oct	24	0:00s	0	-
    3.54  Rule	Jordan	2004	only	-	Oct	15	0:00s	0	-
    3.55  Rule	Jordan	2005	only	-	Sep	lastFri	0:00s	0	-
    3.56 @@ -1576,11 +1611,46 @@
    3.57  # http://dailymailnews.com/200808/28/news/dmbrn03.html
    3.58  # </a>
    3.59  
    3.60 +# From Alexander Krivenyshev (2009-04-08):
    3.61 +# Based on previous media reports that "... proposed plan to
    3.62 +# advance clocks by one hour from May 1 will cause disturbance
    3.63 +# to the working schedules rather than bringing discipline in
    3.64 +# official working."
    3.65 +# <a href="http://www.thenews.com.pk/daily_detail.asp?id=171280">
    3.66 +# http://www.thenews.com.pk/daily_detail.asp?id=171280
    3.67 +# </a>
    3.68 +#
    3.69 +# recent news that instead of May 2009 - Pakistan plan to
    3.70 +# introduce DST from April 15, 2009
    3.71 +#
    3.72 +# FYI: Associated Press Of Pakistan
    3.73 +# April 08, 2009
    3.74 +# Cabinet okays proposal to advance clocks by one hour from April 15
    3.75 +# <a href="http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=73043&Itemid=1">
    3.76 +# http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=73043&Itemid=1
    3.77 +# </a>
    3.78 +#
    3.79 +# or
    3.80 +#
    3.81 +# <a href="http://www.worldtimezone.com/dst_news/dst_news_pakistan05.html">
    3.82 +# http://www.worldtimezone.com/dst_news/dst_news_pakistan05.html
    3.83 +# </a>
    3.84 +#
    3.85 +# ....
    3.86 +# The Federal Cabinet on Wednesday approved the proposal to
    3.87 +# advance clocks in the country by one hour from April 15 to
    3.88 +# conserve energy"
    3.89 +
    3.90 +# From Arthur David Olson (2009-04-10):
    3.91 +# Assume for now that Pakistan will end DST in 2009 as it did in 2008.
    3.92 +
    3.93  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
    3.94  Rule Pakistan	2002	only	-	Apr	Sun>=2	0:01	1:00	S
    3.95  Rule Pakistan	2002	only	-	Oct	Sun>=2	0:01	0	-
    3.96  Rule Pakistan	2008	only	-	Jun	1	0:00	1:00	S
    3.97  Rule Pakistan	2008	only	-	Nov	1	0:00	0	-
    3.98 +Rule Pakistan	2009	only	-	Apr	15	0:00	1:00	S
    3.99 +Rule Pakistan	2009	only	-	Nov	1	0:00	0	-
   3.100  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
   3.101  Zone	Asia/Karachi	4:28:12 -	LMT	1907
   3.102  			5:30	-	IST	1942 Sep
   3.103 @@ -1717,6 +1787,22 @@
   3.104  # http://www.worldtimezone.com/dst_news/dst_news_gazastrip01.html
   3.105  # </a>
   3.106  
   3.107 +# From Alexander Krivenyshev (2009-03-26):
   3.108 +# According to the Palestine News Network (arabic.pnn.ps), Palestinian
   3.109 +# government decided to start Daylight Time on Thursday night March
   3.110 +# 26 and continue until the night of 27 September 2009.
   3.111 +#
   3.112 +# (in Arabic)
   3.113 +# <a href="http://arabic.pnn.ps/index.php?option=com_content&task=view&id=50850">
   3.114 +# http://arabic.pnn.ps/index.php?option=com_content&task=view&id=50850
   3.115 +# </a>
   3.116 +#
   3.117 +# or
   3.118 +# (English translation)
   3.119 +# <a href="http://www.worldtimezone.com/dst_news/dst_news_westbank01.html">
   3.120 +# http://www.worldtimezone.com/dst_news/dst_news_westbank01.html
   3.121 +# </a>
   3.122 +
   3.123  # The rules for Egypt are stolen from the `africa' file.
   3.124  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
   3.125  Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
   3.126 @@ -1730,10 +1816,12 @@
   3.127  Rule Palestine	1999	2003	-	Oct	Fri>=15	0:00	0	-
   3.128  Rule Palestine	2004	only	-	Oct	 1	1:00	0	-
   3.129  Rule Palestine	2005	only	-	Oct	 4	2:00	0	-
   3.130 -Rule Palestine	2006	max	-	Apr	 1	0:00	1:00	S
   3.131 +Rule Palestine	2006	2008	-	Apr	 1	0:00	1:00	S
   3.132  Rule Palestine	2006	only	-	Sep	22	0:00	0	-
   3.133  Rule Palestine	2007	only	-	Sep	Thu>=8	2:00	0	-
   3.134 -Rule Palestine	2008	max	-	Aug	lastThu	2:00	0	-
   3.135 +Rule Palestine	2008	only	-	Aug	lastFri	2:00	0	-
   3.136 +Rule Palestine	2009	max	-	Mar	lastFri	0:00	1:00	S
   3.137 +Rule Palestine	2009	max	-	Sep	lastMon	2:00	0	-
   3.138  
   3.139  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
   3.140  Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
   3.141 @@ -1991,8 +2079,29 @@
   3.142  # http://sana.sy/ara/2/2008/10/07/195459.htm
   3.143  # </a>
   3.144  
   3.145 -Rule	Syria	2008	max	-	Apr	Fri>=1	0:00	1:00	S
   3.146 +# From Steffen Thorsen (2009-03-19):
   3.147 +# Syria will start DST on 2009-03-27 00:00 this year according to many sources,
   3.148 +# two examples:
   3.149 +#
   3.150 +# <a href="http://www.sana.sy/eng/21/2009/03/17/217563.htm">
   3.151 +# http://www.sana.sy/eng/21/2009/03/17/217563.htm
   3.152 +# </a>
   3.153 +# (English, Syrian Arab News # Agency)
   3.154 +# <a href="http://thawra.alwehda.gov.sy/_View_news2.asp?FileName=94459258720090318012209">
   3.155 +# http://thawra.alwehda.gov.sy/_View_news2.asp?FileName=94459258720090318012209
   3.156 +# </a>
   3.157 +# (Arabic, gov-site)
   3.158 +#
   3.159 +# We have not found any sources saying anything about when DST ends this year.
   3.160 +#
   3.161 +# Our summary
   3.162 +# <a href="http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html">
   3.163 +# http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html
   3.164 +# </a>
   3.165 +
   3.166 +Rule	Syria	2008	only	-	Apr	Fri>=1	0:00	1:00	S
   3.167  Rule	Syria	2008	max	-	Nov	1	0:00	0	-
   3.168 +Rule	Syria	2009	max	-	Mar	lastFri	0:00	1:00	S
   3.169  
   3.170  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
   3.171  Zone	Asia/Damascus	2:25:12 -	LMT	1920	# Dimashq
     4.1 --- a/make/sun/javazic/tzdata/leapseconds	Mon Jun 01 01:05:22 2009 -0700
     4.2 +++ b/make/sun/javazic/tzdata/leapseconds	Mon Jun 01 01:06:28 2009 -0700
     4.3 @@ -75,40 +75,32 @@
     4.4  # SERVICE DE LA ROTATION TERRESTRE
     4.5  # OBSERVATOIRE DE PARIS
     4.6  # 61, Av. de l'Observatoire 75014 PARIS (France)
     4.7 -# Tel.      : 33 (0) 1 40 51 22 26
     4.8 +# Tel.      : 33 (0) 1 40 51 22 29
     4.9  # FAX       : 33 (0) 1 40 51 22 91
    4.10 -# e-mail    : services.iers@obspm.fr
    4.11 -# http://hpiers.obspm.fr/eop-pc
    4.12 +# Internet  : services.iers@obspm.fr
    4.13  #
    4.14 -# Paris, 4 July 2008
    4.15 +# Paris, 15 January 2009
    4.16  #
    4.17 -# Bulletin C 36
    4.18 +# Bulletin C 37
    4.19  #
    4.20  # To authorities responsible
    4.21  # for the measurement and
    4.22  # distribution of time
    4.23  #
    4.24 -# UTC TIME STEP
    4.25 -# on the 1st of January 2009
    4.26 +# INFORMATION ON UTC - TAI
    4.27  #
    4.28 -# A positive leap second will be introduced at the end of December 2008.
    4.29 -# The sequence of dates of the UTC second markers will be:		
    4.30 +# NO positive leap second will be introduced at the end of June 2009.
    4.31 +# The difference between Coordinated Universal Time UTC and the
    4.32 +# International Atomic Time TAI is :		
    4.33  #
    4.34 -# 2008 December 31,     23h 59m 59s
    4.35 -# 2008 December 31,     23h 59m 60s
    4.36 -# 2009 January   1,      0h  0m  0s
    4.37 -#
    4.38 -# The difference between UTC and the International Atomic Time TAI is:
    4.39 -#
    4.40 -# from 2006 January 1, 0h UTC, to 2009 January 1  0h UTC  : UTC-TAI = - 33s
    4.41 -# from 2009 January 1, 0h UTC, until further notice       : UTC-TAI = - 34s
    4.42 +# from 2009 January 1, 0h UTC, until further notice : UTC-TAI = -34 s
    4.43  #
    4.44  # Leap seconds can be introduced in UTC at the end of the months of December
    4.45 -# or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
    4.46 -# six months, either to announce a time step in UTC or to confirm that there
    4.47 +# or June,  depending on the evolution of UT1-TAI. Bulletin C is mailed every
    4.48 +# six months, either to announce a time step in UTC, or to confirm that there
    4.49  # will be no time step at the next possible date.
    4.50  #
    4.51  # Daniel GAMBIS
    4.52 -# Head		
    4.53 -# Earth Orientation Center of IERS
    4.54 +# Head			
    4.55 +# Earth Orientation Center of the IERS
    4.56  # Observatoire de Paris, France
     5.1 --- a/make/sun/javazic/tzdata/northamerica	Mon Jun 01 01:05:22 2009 -0700
     5.2 +++ b/make/sun/javazic/tzdata/northamerica	Mon Jun 01 01:06:28 2009 -0700
     5.3 @@ -2280,6 +2280,25 @@
     5.4  # From Arthur David Olson (2008-03-12):
     5.5  # Assume Sun>=15 (third Sunday) going forward.
     5.6  
     5.7 +# From Alexander Krivenyshev (2009-03-04)
     5.8 +# According to the Radio Reloj - Cuba will start Daylight Saving Time on
     5.9 +# midnight between Saturday, March 07, 2009 and Sunday, March 08, 2009-
    5.10 +# not on midnight March 14 / March 15 as previously thought.
    5.11 +#
    5.12 +# <a href="http://www.worldtimezone.com/dst_news/dst_news_cuba05.html">
    5.13 +# http://www.worldtimezone.com/dst_news/dst_news_cuba05.html
    5.14 +# (in Spanish)
    5.15 +# </a>
    5.16 +
    5.17 +# From Arthur David Olson (2009-03-09)
    5.18 +# I listened over the Internet to
    5.19 +# <a href="http://media.enet.cu/readioreloj">
    5.20 +# http://media.enet.cu/readioreloj
    5.21 +# </a>
    5.22 +# this morning; when it was 10:05 a. m. here in Bethesda, Maryland the
    5.23 +# the time was announced as "diez cinco"--the same time as here, indicating
    5.24 +# that has indeed switched to DST. Assume second Sunday from 2009 forward.
    5.25 +
    5.26  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
    5.27  Rule	Cuba	1928	only	-	Jun	10	0:00	1:00	D
    5.28  Rule	Cuba	1928	only	-	Oct	10	0:00	0	S
    5.29 @@ -2312,7 +2331,8 @@
    5.30  Rule	Cuba	2000	2004	-	Apr	Sun>=1	0:00s	1:00	D
    5.31  Rule	Cuba	2006	max	-	Oct	lastSun	0:00s	0	S
    5.32  Rule	Cuba	2007	only	-	Mar	Sun>=8	0:00s	1:00	D
    5.33 -Rule	Cuba	2008	max	-	Mar	Sun>=15	0:00s	1:00	D
    5.34 +Rule	Cuba	2008	only	-	Mar	Sun>=15	0:00s	1:00	D
    5.35 +Rule	Cuba	2009	max	-	Mar	Sun>=8	0:00s	1:00	D
    5.36  
    5.37  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    5.38  Zone	America/Havana	-5:29:28 -	LMT	1890
     6.1 --- a/make/sun/javazic/tzdata/southamerica	Mon Jun 01 01:05:22 2009 -0700
     6.2 +++ b/make/sun/javazic/tzdata/southamerica	Mon Jun 01 01:06:28 2009 -0700
     6.3 @@ -373,6 +373,50 @@
     6.4  # keep America/Cordoba a single region rather than splitting it into the
     6.5  # other 5 subregions.
     6.6  
     6.7 +# From Mariano Absatz (2009-03-13):
     6.8 +# Yesterday (with our usual 2-day notice) the Province of San Luis
     6.9 +# decided that next Sunday instead of "staying" @utc-03:00 they will go
    6.10 +# to utc-04:00 until the second Saturday in October...
    6.11 +#
    6.12 +# The press release is at
    6.13 +# <a href="http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102">
    6.14 +# http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102
    6.15 +# </a>
    6.16 +# (I couldn't find the decree, but
    6.17 +# <a href="http://www.sanluis.gov.ar">
    6.18 +# www.sanluis.gov.ar
    6.19 +# <a/>
    6.20 +# is the official page for the Province Government).
    6.21 +#
    6.22 +# There's also a note in only one of the major national papers (La Nación) at
    6.23 +# <a href="http://www.lanacion.com.ar/nota.asp?nota_id=1107912">
    6.24 +# http://www.lanacion.com.ar/nota.asp?nota_id=1107912
    6.25 +# </a>
    6.26 +# 
    6.27 +# The press release says:
    6.28 +#  (...) anunció que el próximo domingo a las 00:00 los puntanos deberán
    6.29 +# atrasar una hora sus relojes.
    6.30 +#
    6.31 +# A partir de entonces, San Luis establecerá el huso horario propio de
    6.32 +# la Provincia. De esta manera, durante el periodo del calendario anual
    6.33 +# 2009, el cambio horario quedará comprendido entre las 00:00 del tercer
    6.34 +# domingo de marzo y las 24:00 del segundo sábado de octubre.
    6.35 +# Quick&dirty translation
    6.36 +# (...) announced that next Sunday, at 00:00, Puntanos (the San Luis
    6.37 +# inhabitants) will have to turn back one hour their clocks
    6.38 +#
    6.39 +# Since then, San Luis will establish its own Province timezone. Thus,
    6.40 +# during 2009, this timezone change will run from 00:00 the third Sunday
    6.41 +# in March until 24:00 of the second Saturday in October.
    6.42 +
    6.43 +# From Arthur David Olson (2009-03-16):
    6.44 +# The unofficial claim at
    6.45 +# <a href="http://www.timeanddate.com/news/time/san-luis-new-time-zone.html">
    6.46 +# http://www.timeanddate.com/news/time/san-luis-new-time-zone.html
    6.47 +# </a>
    6.48 +# is that "The province will most likely follow the next daylight saving schedule,
    6.49 +# which is planned for the second Sunday in October."
    6.50 +
    6.51  #
    6.52  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    6.53  #
    6.54 @@ -520,7 +564,8 @@
    6.55  			-3:00	-	ART	2004 May 31
    6.56  			-4:00	-	WART	2004 Jul 25
    6.57  			-3:00	Arg	AR%sT	2008 Jan 21
    6.58 -			-3:00	-	ART
    6.59 +			-3:00	-	ART	2009 Mar 15
    6.60 +			-4:00	Arg	WAR%sT
    6.61  #
    6.62  # Santa Cruz (SC)
    6.63  Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
     7.1 --- a/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java	Mon Jun 01 01:05:22 2009 -0700
     7.2 +++ b/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java	Mon Jun 01 01:06:28 2009 -0700
     7.3 @@ -230,51 +230,46 @@
     7.4          }
     7.5  
     7.6          public void run0() {
     7.7 -            DoChangeContents doChangeContents = ShellFolder.getInvoker().invoke(new Callable<DoChangeContents>() {
     7.8 -                public DoChangeContents call() throws Exception {
     7.9 -                    FileSystemView fileSystem = filechooser.getFileSystemView();
    7.10 +            FileSystemView fileSystem = filechooser.getFileSystemView();
    7.11  
    7.12 -                    File[] list = fileSystem.getFiles(currentDirectory, filechooser.isFileHidingEnabled());
    7.13 +            File[] list = fileSystem.getFiles(currentDirectory, filechooser.isFileHidingEnabled());
    7.14  
    7.15 -                    Vector<File> acceptsList = new Vector<File>();
    7.16 +            if (isInterrupted()) {
    7.17 +                return;
    7.18 +            }
    7.19  
    7.20 -                    if (isInterrupted()) {
    7.21 -                        return null;
    7.22 -                    }
    7.23 +            final Vector<File> newFileCache = new Vector<File>();
    7.24 +            Vector<File> newFiles = new Vector<File>();
    7.25  
    7.26 -                    // run through the file list, add directories and selectable files to fileCache
    7.27 -                    for (File file : list) {
    7.28 -                        if (filechooser.accept(file)) {
    7.29 -                            acceptsList.addElement(file);
    7.30 -                        }
    7.31 +            // run through the file list, add directories and selectable files to fileCache
    7.32 +            // Note that this block must be OUTSIDE of Invoker thread because of
    7.33 +            // deadlock possibility with custom synchronized FileSystemView
    7.34 +            for (File file : list) {
    7.35 +                if (filechooser.accept(file)) {
    7.36 +                    boolean isTraversable = filechooser.isTraversable(file);
    7.37 +
    7.38 +                    if (isTraversable) {
    7.39 +                        newFileCache.addElement(file);
    7.40 +                    } else if (filechooser.isFileSelectionEnabled()) {
    7.41 +                        newFiles.addElement(file);
    7.42                      }
    7.43  
    7.44                      if (isInterrupted()) {
    7.45 -                        return null;
    7.46 +                        return;
    7.47                      }
    7.48 +                }
    7.49 +            }
    7.50  
    7.51 -                    // First sort alphabetically by filename
    7.52 -                    sort(acceptsList);
    7.53 +            // First sort alphabetically by filename
    7.54 +            sort(newFileCache);
    7.55 +            sort(newFiles);
    7.56  
    7.57 -                    Vector<File> newDirectories = new Vector<File>(50);
    7.58 -                    Vector<File> newFiles = new Vector<File>();
    7.59 -                    // run through list grabbing directories in chunks of ten
    7.60 -                    for (int i = 0; i < acceptsList.size(); i++) {
    7.61 -                        File f = acceptsList.elementAt(i);
    7.62 -                        boolean isTraversable = filechooser.isTraversable(f);
    7.63 -                        if (isTraversable) {
    7.64 -                            newDirectories.addElement(f);
    7.65 -                        } else if (!isTraversable && filechooser.isFileSelectionEnabled()) {
    7.66 -                            newFiles.addElement(f);
    7.67 -                        }
    7.68 -                        if (isInterrupted()) {
    7.69 -                            return null;
    7.70 -                        }
    7.71 -                    }
    7.72 +            newFileCache.addAll(newFiles);
    7.73  
    7.74 -                    Vector<File> newFileCache = new Vector<File>(newDirectories);
    7.75 -                    newFileCache.addAll(newFiles);
    7.76 -
    7.77 +            // To avoid loads of synchronizations with Invoker and improve performance we
    7.78 +            // execute the whole block on the COM thread
    7.79 +            DoChangeContents doChangeContents = ShellFolder.getInvoker().invoke(new Callable<DoChangeContents>() {
    7.80 +                public DoChangeContents call() throws Exception {
    7.81                      int newSize = newFileCache.size();
    7.82                      int oldSize = fileCache.size();
    7.83  
     8.1 --- a/src/share/classes/javax/swing/plaf/nimbus/skin.laf	Mon Jun 01 01:05:22 2009 -0700
     8.2 +++ b/src/share/classes/javax/swing/plaf/nimbus/skin.laf	Mon Jun 01 01:06:28 2009 -0700
     8.3 @@ -4201,8 +4201,9 @@
     8.4              <stateType key="Disabled"/>
     8.5              <stateType key="Focused"/>
     8.6              <stateType key="Editable">
     8.7 -               <codeSnippet><![CDATA[
     8.8 -                          return ((JComboBox)c).isEditable();]]></codeSnippet>
     8.9 +                <codeSnippet><![CDATA[
    8.10 +        return c instanceof JComboBox && ((JComboBox)c).isEditable();
    8.11 +                ]]></codeSnippet>
    8.12              </stateType>
    8.13           </stateTypes>
    8.14           <contentMargins top="0" bottom="0" left="0" right="0"/>
    8.15 @@ -16160,12 +16161,14 @@
    8.16              <stateType key="Disabled"/>
    8.17              <stateType key="Indeterminate">
    8.18                 <codeSnippet><![CDATA[
    8.19 -                        return ((JProgressBar)c).isIndeterminate();
    8.20 +        return c instanceof JProgressBar &&
    8.21 +               ((JProgressBar)c).isIndeterminate();
    8.22                 ]]></codeSnippet>
    8.23              </stateType>
    8.24              <stateType key="Finished">
    8.25                 <codeSnippet><![CDATA[
    8.26 -                        return ((JProgressBar)c).getPercentComplete() == 1.0;
    8.27 +        return c instanceof JProgressBar &&
    8.28 +               ((JProgressBar)c).getPercentComplete() == 1.0;
    8.29                  ]]></codeSnippet>
    8.30              </stateType>
    8.31           </stateTypes>
    8.32 @@ -25845,26 +25848,26 @@
    8.33           <stateTypes>
    8.34              <stateType key="North">
    8.35                 <codeSnippet><![CDATA[
    8.36 -        JToolBar toolbar = (JToolBar)c;
    8.37 -        return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.NORTH;
    8.38 +        return (c instanceof JToolBar) &&
    8.39 +               NimbusLookAndFeel.resolveToolbarConstraint((JToolBar)c) == BorderLayout.NORTH;
    8.40                 ]]></codeSnippet>
    8.41              </stateType>
    8.42              <stateType key="East">
    8.43                 <codeSnippet><![CDATA[
    8.44 -        JToolBar toolbar = (JToolBar)c;
    8.45 -        return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.EAST;
    8.46 +        return (c instanceof JToolBar) &&
    8.47 +               NimbusLookAndFeel.resolveToolbarConstraint((JToolBar)c) == BorderLayout.EAST;
    8.48                 ]]></codeSnippet>
    8.49              </stateType>
    8.50              <stateType key="West">
    8.51                 <codeSnippet><![CDATA[
    8.52 -        JToolBar toolbar = (JToolBar)c;
    8.53 -        return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.WEST;
    8.54 +        return (c instanceof JToolBar) &&
    8.55 +               NimbusLookAndFeel.resolveToolbarConstraint((JToolBar)c) == BorderLayout.WEST;
    8.56                 ]]></codeSnippet>
    8.57              </stateType>
    8.58              <stateType key="South">
    8.59                 <codeSnippet><![CDATA[
    8.60 -        JToolBar toolbar = (JToolBar)c;
    8.61 -        return NimbusLookAndFeel.resolveToolbarConstraint(toolbar) == BorderLayout.SOUTH;
    8.62 +        return (c instanceof JToolBar) &&
    8.63 +               NimbusLookAndFeel.resolveToolbarConstraint((JToolBar)c) == BorderLayout.SOUTH;
    8.64                 ]]></codeSnippet>
    8.65              </stateType>
    8.66           </stateTypes>
     9.1 --- a/src/share/classes/sun/awt/shell/ShellFolder.java	Mon Jun 01 01:05:22 2009 -0700
     9.2 +++ b/src/share/classes/sun/awt/shell/ShellFolder.java	Mon Jun 01 01:06:28 2009 -0700
     9.3 @@ -274,45 +274,61 @@
     9.4  
     9.5      // Override File methods
     9.6  
     9.7 -    public static void sort(List<? extends File> files) {
     9.8 +    public static void sort(final List<? extends File> files) {
     9.9          if (files == null || files.size() <= 1) {
    9.10              return;
    9.11          }
    9.12  
    9.13 -        // Check that we can use the ShellFolder.sortChildren() method:
    9.14 -        //   1. All files have the same non-null parent
    9.15 -        //   2. All files is ShellFolders
    9.16 -        File commonParent = null;
    9.17 +        // To avoid loads of synchronizations with Invoker and improve performance we
    9.18 +        // synchronize the whole code of the sort method once
    9.19 +        getInvoker().invoke(new Callable<Void>() {
    9.20 +            public Void call() throws Exception {
    9.21 +                // Check that we can use the ShellFolder.sortChildren() method:
    9.22 +                //   1. All files have the same non-null parent
    9.23 +                //   2. All files is ShellFolders
    9.24 +                File commonParent = null;
    9.25  
    9.26 -        for (File file : files) {
    9.27 -            File parent = file.getParentFile();
    9.28 +                for (File file : files) {
    9.29 +                    File parent = file.getParentFile();
    9.30  
    9.31 -            if (parent == null || !(file instanceof ShellFolder)) {
    9.32 -                commonParent = null;
    9.33 +                    if (parent == null || !(file instanceof ShellFolder)) {
    9.34 +                        commonParent = null;
    9.35  
    9.36 -                break;
    9.37 +                        break;
    9.38 +                    }
    9.39 +
    9.40 +                    if (commonParent == null) {
    9.41 +                        commonParent = parent;
    9.42 +                    } else {
    9.43 +                        if (commonParent != parent && !commonParent.equals(parent)) {
    9.44 +                            commonParent = null;
    9.45 +
    9.46 +                            break;
    9.47 +                        }
    9.48 +                    }
    9.49 +                }
    9.50 +
    9.51 +                if (commonParent instanceof ShellFolder) {
    9.52 +                    ((ShellFolder) commonParent).sortChildren(files);
    9.53 +                } else {
    9.54 +                    Collections.sort(files, FILE_COMPARATOR);
    9.55 +                }
    9.56 +
    9.57 +                return null;
    9.58              }
    9.59 -
    9.60 -            if (commonParent == null) {
    9.61 -                commonParent = parent;
    9.62 -            } else {
    9.63 -                if (commonParent != parent && !commonParent.equals(parent)) {
    9.64 -                    commonParent = null;
    9.65 -
    9.66 -                    break;
    9.67 -                }
    9.68 -            }
    9.69 -        }
    9.70 -
    9.71 -        if (commonParent instanceof ShellFolder) {
    9.72 -            ((ShellFolder) commonParent).sortChildren(files);
    9.73 -        } else {
    9.74 -            Collections.sort(files, FILE_COMPARATOR);
    9.75 -        }
    9.76 +        });
    9.77      }
    9.78  
    9.79 -    public void sortChildren(List<? extends File> files) {
    9.80 -        Collections.sort(files, FILE_COMPARATOR);
    9.81 +    public void sortChildren(final List<? extends File> files) {
    9.82 +        // To avoid loads of synchronizations with Invoker and improve performance we
    9.83 +        // synchronize the whole code of the sort method once
    9.84 +        getInvoker().invoke(new Callable<Void>() {
    9.85 +            public Void call() throws Exception {
    9.86 +                Collections.sort(files, FILE_COMPARATOR);
    9.87 +
    9.88 +                return null;
    9.89 +            }
    9.90 +        });
    9.91      }
    9.92  
    9.93      public boolean isAbsolute() {
    10.1 --- a/src/share/classes/sun/swing/plaf/GTKKeybindings.java	Mon Jun 01 01:05:22 2009 -0700
    10.2 +++ b/src/share/classes/sun/swing/plaf/GTKKeybindings.java	Mon Jun 01 01:06:28 2009 -0700
    10.3 @@ -402,6 +402,11 @@
    10.4                          "released SPACE", "released",
    10.5                          "RETURN", "pressed"
    10.6                  }),
    10.7 +                "RootPane.ancestorInputMap",
    10.8 +                new UIDefaults.LazyInputMap(new Object[]{
    10.9 +                        "shift F10", "postPopup",
   10.10 +                        "CONTEXT_MENU", "postPopup"
   10.11 +                }),
   10.12                  // These bindings are only enabled when there is a default
   10.13                  // button set on the rootpane.
   10.14                  "RootPane.defaultButtonWindowKeyBindings", new Object[]{
    11.1 --- a/src/share/classes/sun/swing/plaf/WindowsKeybindings.java	Mon Jun 01 01:05:22 2009 -0700
    11.2 +++ b/src/share/classes/sun/swing/plaf/WindowsKeybindings.java	Mon Jun 01 01:06:28 2009 -0700
    11.3 @@ -360,6 +360,11 @@
    11.4                          "DOWN", "decrement",
    11.5                          "KP_DOWN", "decrement",
    11.6                  }),
    11.7 +                "RootPane.ancestorInputMap",
    11.8 +                new UIDefaults.LazyInputMap(new Object[]{
    11.9 +                        "shift F10", "postPopup",
   11.10 +                        "CONTEXT_MENU", "postPopup"
   11.11 +                }),
   11.12                  // These bindings are only enabled when there is a default
   11.13                  // button set on the rootpane.
   11.14                  "RootPane.defaultButtonWindowKeyBindings", new Object[]{
    12.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames.java	Mon Jun 01 01:05:22 2009 -0700
    12.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames.java	Mon Jun 01 01:06:28 2009 -0700
    12.3 @@ -171,6 +171,8 @@
    12.4                                        "Truk Summer Time", "TRUST"};
    12.5          String ULAT[]= new String[] {"Ulaanbaatar Time", "ULAT",
    12.6                                       "Ulaanbaatar Summer Time", "ULAST"};
    12.7 +        String WART[] = new String[] {"Western Argentine Time", "WART",
    12.8 +                                      "Western Argentine Summer Time", "WARST"};
    12.9          String WAT[] = new String[] {"Western African Time", "WAT",
   12.10                                       "Western African Summer Time", "WAST"};
   12.11          String WET[] = new String[] {"Western European Time", "WET",
   12.12 @@ -296,7 +298,7 @@
   12.13              {"America/Argentina/Rio_Gallegos", AGT},
   12.14              {"America/Argentina/Salta", AGT},
   12.15              {"America/Argentina/San_Juan", AGT},
   12.16 -            {"America/Argentina/San_Luis", AGT},
   12.17 +            {"America/Argentina/San_Luis", WART},
   12.18              {"America/Argentina/Tucuman", AGT},
   12.19              {"America/Argentina/Ushuaia", AGT},
   12.20              {"America/Aruba", AST},
    13.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_de.java	Mon Jun 01 01:05:22 2009 -0700
    13.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_de.java	Mon Jun 01 01:06:28 2009 -0700
    13.3 @@ -171,6 +171,8 @@
    13.4                                        "Truk Sommerzeit", "TRUST"};
    13.5          String ULAT[]= new String[] {"Ulaanbaatar Zeit", "ULAT",
    13.6                                       "Ulaanbaatar Sommerzeit", "ULAST"};
    13.7 +        String WART[] = new String[] {"Argentinische Zeit", "WART",
    13.8 +                                      "Argentinische Sommerzeit", "WARST"};
    13.9          String WAT[] = new String[] {"Westafrikanische Zeit", "WAT",
   13.10                                       "Westafrikanische Sommerzeit", "WAST"};
   13.11          String WET[] = new String[] {"Westeurop\u00e4ische Zeit", "WET",
   13.12 @@ -296,7 +298,7 @@
   13.13              {"America/Argentina/Rio_Gallegos", AGT},
   13.14              {"America/Argentina/Salta", AGT},
   13.15              {"America/Argentina/San_Juan", AGT},
   13.16 -            {"America/Argentina/San_Luis", AGT},
   13.17 +            {"America/Argentina/San_Luis", WART},
   13.18              {"America/Argentina/Tucuman", AGT},
   13.19              {"America/Argentina/Ushuaia", AGT},
   13.20              {"America/Aruba", AST},
    14.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_es.java	Mon Jun 01 01:05:22 2009 -0700
    14.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_es.java	Mon Jun 01 01:06:28 2009 -0700
    14.3 @@ -171,6 +171,8 @@
    14.4                                       "Hora de verano de Truk", "TRUST"};
    14.5          String ULAT[]= new String[] {"Hora de Ulan Bator", "ULAT",
    14.6                                       "Hora de verano de Ulan Bator", "ULAST"};
    14.7 +        String WART[] = new String[] {"Hora de Argentina", "WART",
    14.8 +                                      "Hora de verano de Argentina", "WARST"};
    14.9          String WAT[] = new String[] {"Hora de \u00c1frica Occidental", "WAT",
   14.10                                       "Hora de verano de \u00c1frica Occidental", "WAST"};
   14.11          String WET[] = new String[] {"Hora de Europa Occidental", "WET",
   14.12 @@ -296,7 +298,7 @@
   14.13              {"America/Argentina/Rio_Gallegos", AGT},
   14.14              {"America/Argentina/Salta", AGT},
   14.15              {"America/Argentina/San_Juan", AGT},
   14.16 -            {"America/Argentina/San_Luis", AGT},
   14.17 +            {"America/Argentina/San_Luis", WART},
   14.18              {"America/Argentina/Tucuman", AGT},
   14.19              {"America/Argentina/Ushuaia", AGT},
   14.20              {"America/Aruba", AST},
    15.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_fr.java	Mon Jun 01 01:05:22 2009 -0700
    15.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_fr.java	Mon Jun 01 01:06:28 2009 -0700
    15.3 @@ -171,6 +171,8 @@
    15.4                                        "Heure d'\u00e9t\u00e9 de Truk", "TRUST"};
    15.5          String ULAT[]= new String[] {"Heure de l'Ulaanbaatar", "ULAT",
    15.6                                       "Heure d'\u00e9t\u00e9 de l'Ulaanbaatar", "ULAST"} ;
    15.7 +        String WART[] = new String[] {"Heure D'Argentine", "WART",
    15.8 +                                      "Heure d'\u00e9t\u00e9 D'Argentine", "WARST"} ;
    15.9          String WAT[] = new String[] {"Heure d'Afrique de l'Ouest", "WAT",
   15.10                                       "Heure d'\u00e9t\u00e9 d'Afrique de l'Ouest", "WAST"} ;
   15.11          String WET[] = new String[] {"Heure d'Europe de l'Ouest", "WET",
   15.12 @@ -296,7 +298,7 @@
   15.13              {"America/Argentina/Rio_Gallegos", AGT},
   15.14              {"America/Argentina/Salta", AGT},
   15.15              {"America/Argentina/San_Juan", AGT},
   15.16 -            {"America/Argentina/San_Luis", AGT},
   15.17 +            {"America/Argentina/San_Luis", WART},
   15.18              {"America/Argentina/Tucuman", AGT},
   15.19              {"America/Argentina/Ushuaia", AGT},
   15.20              {"America/Aruba", AST},
    16.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_it.java	Mon Jun 01 01:05:22 2009 -0700
    16.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_it.java	Mon Jun 01 01:06:28 2009 -0700
    16.3 @@ -171,6 +171,8 @@
    16.4                                        "Ora estiva di Truk", "TRUST"};
    16.5          String ULAT[]= new String[] {"Ora di Ulaanbaatar", "ULAT",
    16.6                                       "Ora estiva di Ulaanbaatar", "ULAST"};
    16.7 +        String WART[] = new String[] {"Ora dell'Argentina", "WART",
    16.8 +                                      "Ora estiva dell'Argentina", "WARST"};
    16.9          String WAT[] = new String[] {"Ora dell'Africa occidentale", "WAT",
   16.10                                       "Ora estiva dell'Africa occidentale", "WAST"};
   16.11          String WET[] = new String[] {"Ora dell'Europa occidentale", "WET",
   16.12 @@ -296,7 +298,7 @@
   16.13              {"America/Argentina/Rio_Gallegos", AGT},
   16.14              {"America/Argentina/Salta", AGT},
   16.15              {"America/Argentina/San_Juan", AGT},
   16.16 -            {"America/Argentina/San_Luis", AGT},
   16.17 +            {"America/Argentina/San_Luis", WART},
   16.18              {"America/Argentina/Tucuman", AGT},
   16.19              {"America/Argentina/Ushuaia", AGT},
   16.20              {"America/Aruba", AST},
    17.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_ja.java	Mon Jun 01 01:05:22 2009 -0700
    17.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_ja.java	Mon Jun 01 01:06:28 2009 -0700
    17.3 @@ -171,6 +171,8 @@
    17.4                                        "\u30c8\u30e9\u30c3\u30af\u590f\u6642\u9593", "TRUST"};
    17.5          String ULAT[]= new String[] {"\u30a6\u30e9\u30fc\u30f3\u30d0\u30fc\u30c8\u30eb\u6642\u9593", "ULAT",
    17.6                                       "\u30a6\u30e9\u30fc\u30f3\u30d0\u30fc\u30c8\u30eb\u590f\u6642\u9593", "ULAST"};
    17.7 +        String WART[] = new String[] {"\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3\u6642\u9593", "WART",
    17.8 +                                      "\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3\u590f\u6642\u9593", "WARST"};
    17.9          String WAT[] = new String[] {"\u897f\u30a2\u30d5\u30ea\u30ab\u6642\u9593", "WAT",
   17.10                                       "\u897f\u30a2\u30d5\u30ea\u30ab\u590f\u6642\u9593", "WAST"};
   17.11          String WET[] = new String[] {"\u897f\u30e8\u30fc\u30ed\u30c3\u30d1\u6642\u9593", "WET",
   17.12 @@ -296,7 +298,7 @@
   17.13              {"America/Argentina/Rio_Gallegos", AGT},
   17.14              {"America/Argentina/Salta", AGT},
   17.15              {"America/Argentina/San_Juan", AGT},
   17.16 -            {"America/Argentina/San_Luis", AGT},
   17.17 +            {"America/Argentina/San_Luis", WART},
   17.18              {"America/Argentina/Tucuman", AGT},
   17.19              {"America/Argentina/Ushuaia", AGT},
   17.20              {"America/Aruba", AST},
    18.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_ko.java	Mon Jun 01 01:05:22 2009 -0700
    18.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_ko.java	Mon Jun 01 01:06:28 2009 -0700
    18.3 @@ -171,6 +171,8 @@
    18.4                                        "\ud2b8\ub8e8\ud06c \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "TRUST"};
    18.5          String ULAT[]= new String[] {"\uc6b8\ub780\ubc14\ud0c0\ub974 \uc2dc\uac04", "ULAT",
    18.6                                       "\uc6b8\ub780\ubc14\ud0c0\ub974 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "ULAST"};
    18.7 +        String WART[] = new String[] {"\uc544\ub974\ud5e8\ud2f0\ub098 \uc2dc\uac04", "WART",
    18.8 +                                      "\uc544\ub974\ud5e8\ud2f0\ub098 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "WARST"};
    18.9          String WAT[] = new String[] {"\uc11c\ubd80 \uc544\ud504\ub9ac\uce74 \uc2dc\uac04", "WAT",
   18.10                                       "\uc11c\ubd80 \uc544\ud504\ub9ac\uce74 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "WAST"};
   18.11          String WET[] = new String[] {"\uc11c\uc720\ub7fd \uc2dc\uac04", "WET",
   18.12 @@ -296,7 +298,7 @@
   18.13              {"America/Argentina/Rio_Gallegos", AGT},
   18.14              {"America/Argentina/Salta", AGT},
   18.15              {"America/Argentina/San_Juan", AGT},
   18.16 -            {"America/Argentina/San_Luis", AGT},
   18.17 +            {"America/Argentina/San_Luis", WART},
   18.18              {"America/Argentina/Tucuman", AGT},
   18.19              {"America/Argentina/Ushuaia", AGT},
   18.20              {"America/Aruba", AST},
    19.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_sv.java	Mon Jun 01 01:05:22 2009 -0700
    19.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_sv.java	Mon Jun 01 01:06:28 2009 -0700
    19.3 @@ -171,6 +171,8 @@
    19.4                                        "Truk, sommartid", "TRUST"};
    19.5          String ULAT[]= new String[] {"Ulaanbaatar, normaltid", "ULAT",
    19.6                                       "Ulaanbaatar, sommartid", "ULAST"};
    19.7 +        String WART[] = new String[] {"Argentina, normaltid", "WART",
    19.8 +                                      "Argentina, sommartid", "WARST"};
    19.9          String WAT[] = new String[] {"V\u00e4stafrikansk tid", "WAT",
   19.10                                       "V\u00e4stafrikansk sommartid", "WAST"};
   19.11          String WET[] = new String[] {"V\u00e4steuropeisk tid", "WET",
   19.12 @@ -296,7 +298,7 @@
   19.13              {"America/Argentina/Rio_Gallegos", AGT},
   19.14              {"America/Argentina/Salta", AGT},
   19.15              {"America/Argentina/San_Juan", AGT},
   19.16 -            {"America/Argentina/San_Luis", AGT},
   19.17 +            {"America/Argentina/San_Luis", WART},
   19.18              {"America/Argentina/Tucuman", AGT},
   19.19              {"America/Argentina/Ushuaia", AGT},
   19.20              {"America/Aruba", AST},
    20.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java	Mon Jun 01 01:05:22 2009 -0700
    20.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java	Mon Jun 01 01:06:28 2009 -0700
    20.3 @@ -171,6 +171,8 @@
    20.4                                        "\u7279\u9c81\u514b\u590f\u4ee4\u65f6", "TRUST"};
    20.5          String ULAT[]= new String[] {"\u5e93\u4f26\u65f6\u95f4", "ULAT",
    20.6                                       "\u5e93\u4f26\u590f\u4ee4\u65f6", "ULAST"};
    20.7 +        String WART[] = new String[] {"\u963f\u6839\u5ef7\u65f6\u95f4", "WART",
    20.8 +                                      "\u963f\u6839\u5ef7\u590f\u4ee4\u65f6", "WARST"};
    20.9          String WAT[] = new String[] {"\u897f\u975e\u65f6\u95f4", "WAT",
   20.10                                       "\u897f\u975e\u590f\u4ee4\u65f6", "WAST"};
   20.11          String WET[] = new String[] {"\u897f\u6b27\u65f6\u95f4", "WET",
   20.12 @@ -296,7 +298,7 @@
   20.13              {"America/Argentina/Rio_Gallegos", AGT},
   20.14              {"America/Argentina/Salta", AGT},
   20.15              {"America/Argentina/San_Juan", AGT},
   20.16 -            {"America/Argentina/San_Luis", AGT},
   20.17 +            {"America/Argentina/San_Luis", WART},
   20.18              {"America/Argentina/Tucuman", AGT},
   20.19              {"America/Argentina/Ushuaia", AGT},
   20.20              {"America/Aruba", AST},
    21.1 --- a/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java	Mon Jun 01 01:05:22 2009 -0700
    21.2 +++ b/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java	Mon Jun 01 01:06:28 2009 -0700
    21.3 @@ -171,6 +171,8 @@
    21.4                                        "\u7279\u9b6f\u514b\u590f\u4ee4\u6642\u9593", "TRUST"};
    21.5          String ULAT[]= new String[] {"\u5eab\u502b\u6642\u9593", "ULAT",
    21.6                                       "\u5eab\u502b\u590f\u4ee4\u6642\u9593", "ULAST"};
    21.7 +          String WART[] = new String[] {"\u963f\u6839\u5ef7\u6642\u9593", "WART",
    21.8 +                                      "\u963f\u6839\u5ef7\u590f\u4ee4\u6642\u9593", "WARST"};
    21.9          String WAT[] = new String[] {"\u897f\u975e\u6642\u9593", "WAT",
   21.10                                       "\u897f\u975e\u590f\u4ee4\u6642\u9593", "WAST"};
   21.11          String WET[] = new String[] {"\u897f\u6b50\u6642\u9593", "WET",
   21.12 @@ -296,7 +298,7 @@
   21.13              {"America/Argentina/Rio_Gallegos", AGT},
   21.14              {"America/Argentina/Salta", AGT},
   21.15              {"America/Argentina/San_Juan", AGT},
   21.16 -            {"America/Argentina/San_Luis", AGT},
   21.17 +            {"America/Argentina/San_Luis", WART},
   21.18              {"America/Argentina/Tucuman", AGT},
   21.19              {"America/Argentina/Ushuaia", AGT},
   21.20              {"America/Aruba", AST},
    22.1 --- a/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java	Mon Jun 01 01:05:22 2009 -0700
    22.2 +++ b/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java	Mon Jun 01 01:06:28 2009 -0700
    22.3 @@ -527,7 +527,7 @@
    22.4      /**
    22.5       * @return Whether this is a file system shell folder
    22.6       */
    22.7 -    public synchronized boolean isFileSystem() {
    22.8 +    public boolean isFileSystem() {
    22.9          if (cachedIsFileSystem == null) {
   22.10              cachedIsFileSystem = hasAttribute(ATTRIB_FILESYSTEM);
   22.11          }
   22.12 @@ -543,8 +543,8 @@
   22.13              public Boolean call() throws Exception {
   22.14                  // Caching at this point doesn't seem to be cost efficient
   22.15                  return (getAttributes0(getParentIShellFolder(),
   22.16 -                        getRelativePIDL(), attribute)
   22.17 -                        & attribute) != 0;
   22.18 +                    getRelativePIDL(), attribute)
   22.19 +                    & attribute) != 0;
   22.20              }
   22.21          });
   22.22      }
   22.23 @@ -761,7 +761,7 @@
   22.24      /**
   22.25       * @return Whether this shell folder is a link
   22.26       */
   22.27 -    public synchronized boolean isLink() {
   22.28 +    public boolean isLink() {
   22.29          if (cachedIsLink == null) {
   22.30              cachedIsLink = hasAttribute(ATTRIB_LINK);
   22.31          }
   22.32 @@ -1160,8 +1160,16 @@
   22.33      private static native int compareIDsByColumn(long pParentIShellFolder, long pidl1, long pidl2, int columnIdx);
   22.34  
   22.35  
   22.36 -    public void sortChildren(List<? extends File> files) {
   22.37 -        Collections.sort(files, new ColumnComparator(getIShellFolder(), 0));
   22.38 +    public void sortChildren(final List<? extends File> files) {
   22.39 +        // To avoid loads of synchronizations with Invoker and improve performance we
   22.40 +        // synchronize the whole code of the sort method once
   22.41 +        getInvoker().invoke(new Callable<Void>() {
   22.42 +            public Void call() throws Exception {
   22.43 +                Collections.sort(files, new ColumnComparator(getIShellFolder(), 0));
   22.44 +
   22.45 +                return null;
   22.46 +            }
   22.47 +        });
   22.48      }
   22.49  
   22.50      private static class ColumnComparator implements Comparator<File> {
    23.1 --- a/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java	Mon Jun 01 01:05:22 2009 -0700
    23.2 +++ b/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java	Mon Jun 01 01:06:28 2009 -0700
    23.3 @@ -478,21 +478,22 @@
    23.4  
    23.5          public <T> T invoke(Callable<T> task) {
    23.6              try {
    23.7 -                T result;
    23.8                  if (Thread.currentThread() == comThread) {
    23.9                      // if it's already called from the COM
   23.10                      // thread, we don't need to delegate the task
   23.11 -                    result = task.call();
   23.12 +                    return task.call();
   23.13                  } else {
   23.14 -                    Future<T> future = submit(task);
   23.15 -                    try {
   23.16 -                        result = future.get();
   23.17 -                    } catch (InterruptedException e) {
   23.18 -                        result = null;
   23.19 -                        future.cancel(true);
   23.20 +                    while (true) {
   23.21 +                        Future<T> future = submit(task);
   23.22 +
   23.23 +                        try {
   23.24 +                            return future.get();
   23.25 +                        } catch (InterruptedException e) {
   23.26 +                            // Repeat the attempt
   23.27 +                            future.cancel(true);
   23.28 +                        }
   23.29                      }
   23.30                  }
   23.31 -                return result;
   23.32              } catch (Exception e) {
   23.33                  Throwable cause = (e instanceof ExecutionException) ? e.getCause() : e;
   23.34                  if (cause instanceof RuntimeException) {
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/test/javax/swing/JFileChooser/6713352/bug6713352.java	Mon Jun 01 01:06:28 2009 -0700
    24.3 @@ -0,0 +1,105 @@
    24.4 +/*
    24.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    24.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    24.7 + *
    24.8 + * This code is free software; you can redistribute it and/or modify it
    24.9 + * under the terms of the GNU General Public License version 2 only, as
   24.10 + * published by the Free Software Foundation.
   24.11 + *
   24.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   24.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   24.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   24.15 + * version 2 for more details (a copy is included in the LICENSE file that
   24.16 + * accompanied this code).
   24.17 + *
   24.18 + * You should have received a copy of the GNU General Public License version
   24.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   24.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   24.21 + *
   24.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   24.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
   24.24 + * have any questions.
   24.25 + */
   24.26 +
   24.27 +/* @test
   24.28 +   @bug 6713352
   24.29 +   @summary Deadlock in JFileChooser with synchronized custom FileSystemView
   24.30 +   @author Pavel Porvatov
   24.31 +   @run main bug6713352
   24.32 +*/
   24.33 +
   24.34 +import sun.awt.shell.ShellFolder;
   24.35 +
   24.36 +import javax.swing.*;
   24.37 +import javax.swing.filechooser.FileSystemView;
   24.38 +import java.io.File;
   24.39 +import java.io.FileNotFoundException;
   24.40 +import java.io.IOException;
   24.41 +
   24.42 +public class bug6713352 {
   24.43 +    public static void main(String[] args) throws Exception {
   24.44 +        SwingUtilities.invokeAndWait(new Runnable() {
   24.45 +            public void run() {
   24.46 +                String tempDir = System.getProperty("java.io.tmpdir");
   24.47 +
   24.48 +                if (tempDir == null || !new File(tempDir).isDirectory()) {
   24.49 +                    tempDir = System.getProperty("user.home");
   24.50 +                }
   24.51 +
   24.52 +                MyFileSystemView systemView = new MyFileSystemView();
   24.53 +
   24.54 +                synchronized (systemView) { // Get SystemView lock
   24.55 +                    new JFileChooser(systemView);
   24.56 +
   24.57 +                    // Wait a little bit. BasicDirectoryModel will lock Invoker and stop on
   24.58 +                    // the bug6713352.MyFileSystemView.getFiles() method
   24.59 +                    try {
   24.60 +                        Thread.sleep(5000);
   24.61 +                    } catch (InterruptedException e) {
   24.62 +                        throw new RuntimeException(e);
   24.63 +                    }
   24.64 +
   24.65 +                    try {
   24.66 +                        System.out.println("Try to get Invokers lock");
   24.67 +
   24.68 +                        ShellFolder.getShellFolder(new File(tempDir)).listFiles(true);
   24.69 +                    } catch (FileNotFoundException e) {
   24.70 +                        throw new RuntimeException(e);
   24.71 +                    }
   24.72 +                }
   24.73 +
   24.74 +                // To avoid RejectedExecutionException in BasicDirectoryModel wait a second
   24.75 +                try {
   24.76 +                    Thread.sleep(1000);
   24.77 +                } catch (InterruptedException e) {
   24.78 +                    throw new RuntimeException(e);
   24.79 +                }
   24.80 +            }
   24.81 +        });
   24.82 +    }
   24.83 +
   24.84 +    private static class MyFileSystemView extends FileSystemView {
   24.85 +
   24.86 +        public File createNewFolder(File containingDir) throws IOException {
   24.87 +            return null;
   24.88 +        }
   24.89 +
   24.90 +        public File[] getFiles(File dir, boolean useFileHiding) {
   24.91 +            System.out.println("getFiles start");
   24.92 +
   24.93 +            File[] result;
   24.94 +
   24.95 +            synchronized (this) {
   24.96 +                result = super.getFiles(dir, useFileHiding);
   24.97 +            }
   24.98 +
   24.99 +            System.out.println("getFiles finished");
  24.100 +
  24.101 +            return result;
  24.102 +        }
  24.103 +
  24.104 +        public synchronized Boolean isTraversable(File f) {
  24.105 +            return super.isTraversable(f);
  24.106 +        }
  24.107 +    }
  24.108 +}
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/test/javax/swing/plaf/nimbus/Test6741426.java	Mon Jun 01 01:06:28 2009 -0700
    25.3 @@ -0,0 +1,55 @@
    25.4 +/*
    25.5 + * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
    25.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    25.7 + *
    25.8 + * This code is free software; you can redistribute it and/or modify it
    25.9 + * under the terms of the GNU General Public License version 2 only, as
   25.10 + * published by the Free Software Foundation.
   25.11 + *
   25.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   25.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   25.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   25.15 + * version 2 for more details (a copy is included in the LICENSE file that
   25.16 + * accompanied this code).
   25.17 + *
   25.18 + * You should have received a copy of the GNU General Public License version
   25.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   25.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   25.21 + *
   25.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   25.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
   25.24 + * have any questions.
   25.25 + */
   25.26 +
   25.27 +/* @test
   25.28 +   @bug 6741426
   25.29 +   @summary Tests reusing Nimbus borders across different components (JComboBox border set on a JTextField)
   25.30 +   @author Peter Zhelezniakov
   25.31 +   @run main Test6741426
   25.32 +*/
   25.33 +
   25.34 +import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel;
   25.35 +import javax.swing.*;
   25.36 +import java.awt.image.BufferedImage;
   25.37 +
   25.38 +
   25.39 +public class Test6741426 implements Runnable {
   25.40 +
   25.41 +    static final int WIDTH = 160;
   25.42 +    static final int HEIGHT = 80;
   25.43 +
   25.44 +    @Override public void run() {
   25.45 +        JComboBox cb = new JComboBox();
   25.46 +        JTextField tf = new JTextField();
   25.47 +        tf.setBorder(cb.getBorder());
   25.48 +        BufferedImage img =
   25.49 +                new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_ARGB);
   25.50 +        tf.setSize(WIDTH, HEIGHT);
   25.51 +        tf.paint(img.getGraphics());
   25.52 +    }
   25.53 +
   25.54 +    public static void main(String[] args) throws Exception {
   25.55 +        UIManager.setLookAndFeel(new NimbusLookAndFeel());
   25.56 +        SwingUtilities.invokeAndWait(new Test6741426());
   25.57 +    }
   25.58 +}