aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorasaha <none@none>2014-06-03 08:32:34 -0700
committerasaha <none@none>2014-06-03 08:32:34 -0700
commit0a5a6e7371a08cfe5a3e43931502418502db07ad (patch)
tree32d58c710386f626f52f4c674d2c180596e055aa /src
parent7e658e15c1e27a99668f5c5233ee09e81cfd9f11 (diff)
parent57ac5a110f8b4dfeb6d3305b2d35887066b9be04 (diff)
Merge
Diffstat (limited to 'src')
-rw-r--r--src/aix/lib/tzmappings586
-rw-r--r--src/macosx/classes/com/apple/laf/AquaComboBoxUI.java12
-rw-r--r--src/macosx/lib/Info-privileged.plist2
-rw-r--r--src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m7
-rw-r--r--src/share/bin/java.c11
-rw-r--r--src/share/classes/java/awt/MediaTracker.java9
-rw-r--r--src/share/classes/java/awt/datatransfer/DataFlavor.java110
-rw-r--r--src/share/classes/java/awt/dnd/DragSourceContext.java7
-rw-r--r--src/share/classes/java/lang/ConditionalSpecialCasing.java15
-rw-r--r--src/share/classes/java/lang/String.java4
-rw-r--r--src/share/classes/java/util/Random.java4
-rw-r--r--src/share/classes/javax/crypto/JceSecurity.java34
-rw-r--r--src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java12
-rw-r--r--src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java5
-rw-r--r--src/share/classes/javax/swing/plaf/nimbus/skin.laf12
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java4
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthContext.java46
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java4
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthListUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java6
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java7
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthParser.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java6
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java6
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java9
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java6
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthTableUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java8
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java3
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java6
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java3
-rw-r--r--src/share/classes/sun/awt/SunToolkit.java16
-rw-r--r--src/share/classes/sun/awt/image/ByteBandedRaster.java20
-rw-r--r--src/share/classes/sun/awt/image/ByteComponentRaster.java20
-rw-r--r--src/share/classes/sun/awt/image/BytePackedRaster.java19
-rw-r--r--src/share/classes/sun/awt/image/IntegerComponentRaster.java20
-rw-r--r--src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java13
-rw-r--r--src/share/classes/sun/awt/image/ShortBandedRaster.java19
-rw-r--r--src/share/classes/sun/awt/image/ShortComponentRaster.java20
-rw-r--r--src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java44
-rw-r--r--src/share/classes/sun/nio/cs/UTF_8.java23
-rw-r--r--src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java13
-rw-r--r--src/share/native/sun/font/layout/IndicLayoutEngine.cpp2
-rw-r--r--src/share/native/sun/font/layout/IndicReordering.cpp6
-rw-r--r--src/share/native/sun/font/layout/IndicReordering.h2
-rw-r--r--src/share/native/sun/font/layout/LEScripts.h6
-rw-r--r--src/solaris/native/java/util/TimeZone_md.c136
-rw-r--r--src/windows/native/sun/windows/awt_TextField.cpp3
67 files changed, 1108 insertions, 284 deletions
diff --git a/src/aix/lib/tzmappings b/src/aix/lib/tzmappings
new file mode 100644
index 000000000..079d2c937
--- /dev/null
+++ b/src/aix/lib/tzmappings
@@ -0,0 +1,586 @@
+#
+#
+# Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+#
+# Portions Copyright (c) 2014 IBM Corporation
+#
+
+# This table describes mappings between AIX time zone IDs and Java time zone
+# IDs. Fields are separated by a single TAB ('\t'). Lines must be in the ascending
+# order in ASCII. (non-ASCII characters can't be used.)
+# NOTE
+# This table format is not a public interface of any Java
+# platforms. No applications should depend on this file in any form.
+# This file has been generated using programs. Do not edit this file manually.
+#
+# Solaris Java
+
+ACST-9:30ACDT Australia/Adelaide
+AST4 America/Curacao
+AST4ADT America/Halifax
+AST9 Pacific/Gambier
+AST9ADT America/Anchorage
+AZOREST1 Atlantic/Cape_Verde
+AZOREST1AZOREDT Atlantic/Azores
+Africa/Abidjan Africa/Abidjan
+Africa/Accra Africa/Accra
+Africa/Addis_Ababa Africa/Addis_Ababa
+Africa/Algiers Africa/Algiers
+Africa/Asmera Africa/Asmera
+Africa/Bamako GMT
+Africa/Bangui Africa/Bangui
+Africa/Banjul Africa/Banjul
+Africa/Bissau Africa/Bissau
+Africa/Blantyre Africa/Blantyre
+Africa/Brazzaville Africa/Luanda
+Africa/Bujumbura Africa/Bujumbura
+Africa/Cairo Africa/Cairo
+Africa/Casablanca Africa/Casablanca
+Africa/Ceuta Europe/Paris
+Africa/Conakry Africa/Conakry
+Africa/Dakar Africa/Dakar
+Africa/Dar_es_Salaam Africa/Dar_es_Salaam
+Africa/Djibouti Africa/Djibouti
+Africa/Douala Africa/Douala
+Africa/El_Aaiun Africa/Casablanca
+Africa/Freetown Africa/Freetown
+Africa/Gaborone Africa/Gaborone
+Africa/Harare Africa/Harare
+Africa/Johannesburg Africa/Johannesburg
+Africa/Kampala Africa/Kampala
+Africa/Khartoum Africa/Khartoum
+Africa/Kigali Africa/Kigali
+Africa/Kinshasa Africa/Kinshasa
+Africa/Lagos Africa/Lagos
+Africa/Libreville Africa/Libreville
+Africa/Lome Africa/Lome
+Africa/Luanda Africa/Luanda
+Africa/Lubumbashi Africa/Lubumbashi
+Africa/Lusaka Africa/Lusaka
+Africa/Malabo Africa/Malabo
+Africa/Maputo Africa/Maputo
+Africa/Maseru Africa/Maseru
+Africa/Mbabane Africa/Mbabane
+Africa/Mogadishu Africa/Mogadishu
+Africa/Monrovia Africa/Monrovia
+Africa/Nairobi Africa/Nairobi
+Africa/Ndjamena Africa/Ndjamena
+Africa/Niamey Africa/Niamey
+Africa/Nouakchott Africa/Nouakchott
+Africa/Ouagadougou Africa/Ouagadougou
+Africa/Porto-Novo Africa/Porto-Novo
+Africa/Sao_Tome Africa/Sao_Tome
+Africa/Timbuktu Africa/Timbuktu
+Africa/Tripoli Africa/Tripoli
+Africa/Tunis Africa/Tunis
+Africa/Windhoek Africa/Windhoek
+America/Adak America/Adak
+America/Anchorage America/Anchorage
+America/Anguilla America/Anguilla
+America/Antigua America/Antigua
+America/Araguaina America/Sao_Paulo
+America/Argentina/Buenos_Aires America/Argentina/Buenos_Aires
+America/Argentina/Catamarca America/Argentina/Catamarca
+America/Argentina/ComodRivadavia America/Argentina/Catamarca
+America/Argentina/Cordoba America/Argentina/Cordoba
+America/Argentina/Jujuy America/Argentina/Jujuy
+America/Argentina/La_Rioja America/Argentina/La_Rioja
+America/Argentina/Mendoza America/Argentina/Mendoza
+America/Argentina/Rio_Gallegos America/Argentina/Rio_Gallegos
+America/Argentina/Salta America/Argentina/Salta
+America/Argentina/San_Juan America/Argentina/San_Juan
+America/Argentina/San_Luis America/Argentina/San_Luis
+America/Argentina/Tucuman America/Argentina/Tucuman
+America/Argentina/Ushuaia America/Argentina/Ushuaia
+America/Aruba America/Aruba
+America/Asuncion America/Asuncion
+America/Atka America/Adak
+America/Barbados America/Barbados
+America/Belize America/Belize
+America/Bogota America/Bogota
+America/Boise America/Denver
+America/Buenos_Aires America/Argentina/Buenos_Aires
+America/Cancun America/Chicago
+America/Caracas America/Caracas
+America/Catamarca America/Argentina/Catamarca
+America/Cayenne America/Cayenne
+America/Cayman America/Cayman
+America/Chicago America/Chicago
+America/Chihuahua America/Denver
+America/Coral_Harbour America/Atikokan
+America/Cordoba America/Argentina/Cordoba
+America/Costa_Rica America/Costa_Rica
+America/Cuiaba America/Cuiaba
+America/Curacao America/Curacao
+America/Dawson America/Los_Angeles
+America/Dawson_Creek America/Dawson_Creek
+America/Denver America/Denver
+America/Detroit America/New_York
+America/Dominica America/Dominica
+America/Edmonton America/Edmonton
+America/El_Salvador America/El_Salvador
+America/Ensenada America/Los_Angeles
+America/Fort_Wayne America/Indiana/Indianapolis
+America/Fortaleza America/Fortaleza
+America/Glace_Bay America/Halifax
+America/Godthab America/Godthab
+America/Goose_Bay America/Thule
+America/Grand_Turk America/Grand_Turk
+America/Grenada America/Grenada
+America/Guadeloupe America/Guadeloupe
+America/Guatemala America/Guatemala
+America/Guayaquil America/Guayaquil
+America/Guyana America/Guyana
+America/Halifax America/Halifax
+America/Havana America/Havana
+America/Indiana/Indianapolis America/Indianapolis
+America/Indianapolis America/Indiana/Indianapolis
+America/Inuvik America/Denver
+America/Iqaluit America/New_York
+America/Jamaica America/Jamaica
+America/Jujuy America/Argentina/Jujuy
+America/Juneau America/Anchorage
+America/Knox_IN America/Indiana/Knox
+America/La_Paz America/La_Paz
+America/Lima America/Lima
+America/Los_Angeles America/Los_Angeles
+America/Louisville America/Kentucky/Louisville
+America/Managua America/Managua
+America/Manaus America/Manaus
+America/Marigot America/Guadeloupe
+America/Martinique America/Martinique
+America/Mazatlan America/Mazatlan
+America/Mendoza America/Argentina/Mendoza
+America/Menominee America/Winnipeg
+America/Mexico_City America/Mexico_City
+America/Miquelon America/Miquelon
+America/Moncton America/Moncton
+America/Montevideo America/Montevideo
+America/Montreal America/Montreal
+America/Montserrat America/Montserrat
+America/Nassau America/Nassau
+America/New_York America/New_York
+America/Nipigon America/New_York
+America/Nome America/Anchorage
+America/Noronha America/Noronha
+America/Panama America/Panama
+America/Pangnirtung America/Thule
+America/Paramaribo America/Paramaribo
+America/Phoenix America/Phoenix
+America/Port-au-Prince America/Port-au-Prince
+America/Port_of_Spain America/Port_of_Spain
+America/Porto_Acre America/Rio_Branco
+America/Puerto_Rico America/Puerto_Rico
+America/Rainy_River America/Chicago
+America/Rankin_Inlet America/Chicago
+America/Regina America/Regina
+America/Rio_Branco America/Rio_Branco
+America/Rosario America/Argentina/Cordoba
+America/Santiago America/Santiago
+America/Santo_Domingo America/Santo_Domingo
+America/Sao_Paulo America/Sao_Paulo
+America/Scoresbysund America/Scoresbysund
+America/Shiprock America/Denver
+America/St_Barthelemy America/Guadeloupe
+America/St_Johns America/St_Johns
+America/St_Kitts America/St_Kitts
+America/St_Lucia America/St_Lucia
+America/St_Thomas America/St_Thomas
+America/St_Vincent America/St_Vincent
+America/Tegucigalpa America/Tegucigalpa
+America/Thule America/Thule
+America/Thunder_Bay America/New_York
+America/Tijuana America/Tijuana
+America/Toronto America/Toronto
+America/Tortola America/Tortola
+America/Vancouver America/Vancouver
+America/Virgin America/St_Thomas
+America/Whitehorse America/Los_Angeles
+America/Winnipeg America/Winnipeg
+America/Yakutat America/Anchorage
+America/Yellowknife America/Denver
+Antarctica/Casey Antarctica/Casey
+Antarctica/DumontDUrville Antarctica/DumontDUrville
+Antarctica/Mawson Antarctica/Mawson
+Antarctica/McMurdo Antarctica/McMurdo
+Antarctica/Palmer Antarctica/Palmer
+Antarctica/South_Pole Antarctica/McMurdo
+Arctic/Longyearbyen Europe/Oslo
+Asia/Aden Asia/Aden
+Asia/Almaty Asia/Almaty
+Asia/Amman Asia/Amman
+Asia/Anadyr Asia/Anadyr
+Asia/Aqtau Asia/Aqtau
+Asia/Aqtobe Asia/Aqtobe
+Asia/Ashkhabad Asia/Ashkhabad
+Asia/Baghdad Asia/Baghdad
+Asia/Bahrain Asia/Bahrain
+Asia/Baku Asia/Baku
+Asia/Bangkok Asia/Bangkok
+Asia/Beirut Asia/Beirut
+Asia/Bishkek Asia/Bishkek
+Asia/Brunei Asia/Brunei
+Asia/Calcutta Asia/Calcutta
+Asia/Chungking Asia/Shanghai
+Asia/Colombo Asia/Colombo
+Asia/Dacca Asia/Dacca
+Asia/Damascus Asia/Damascus
+Asia/Dhaka Asia/Dhaka
+Asia/Dubai Asia/Dubai
+Asia/Dushanbe Asia/Dushanbe
+Asia/Gaza Asia/Amman
+Asia/Harbin Asia/Shanghai
+Asia/Hong_Kong Asia/Hong_Kong
+Asia/Irkutsk Asia/Irkutsk
+Asia/Istanbul Europe/Istanbul
+Asia/Jakarta Asia/Jakarta
+Asia/Jayapura Asia/Jayapura
+Asia/Jerusalem Asia/Jerusalem
+Asia/Kabul Asia/Kabul
+Asia/Kamchatka Asia/Kamchatka
+Asia/Karachi Asia/Karachi
+Asia/Kashgar Asia/Shanghai
+Asia/Katmandu Asia/Katmandu
+Asia/Kolkata Asia/Kolkata
+Asia/Krasnoyarsk Asia/Krasnoyarsk
+Asia/Kuala_Lumpur Asia/Kuala_Lumpur
+Asia/Kuwait Asia/Kuwait
+Asia/Macao Asia/Macao
+Asia/Magadan Asia/Magadan
+Asia/Manila Asia/Manila
+Asia/Muscat Asia/Muscat
+Asia/Nicosia Asia/Nicosia
+Asia/Novosibirsk Asia/Novosibirsk
+Asia/Omsk Asia/Novosibirsk
+Asia/Phnom_Penh Asia/Phnom_Penh
+Asia/Pyongyang Asia/Pyongyang
+Asia/Qatar Asia/Qatar
+Asia/Rangoon Asia/Rangoon
+Asia/Riyadh Asia/Riyadh
+Asia/Saigon Asia/Ho_Chi_Minh
+Asia/Seoul Asia/Seoul
+Asia/Shanghai Asia/Shanghai
+Asia/Singapore Asia/Singapore
+Asia/Taipei Asia/Taipei
+Asia/Tashkent Asia/Tashkent
+Asia/Tbilisi Asia/Tbilisi
+Asia/Tehran Asia/Tehran
+Asia/Tel_Aviv Asia/Jerusalem
+Asia/Thimbu Asia/Thimbu
+Asia/Tokyo Asia/Tokyo
+Asia/Ujung_Pandang Asia/Ujung_Pandang
+Asia/Ulan_Bator Asia/Ulaanbaatar
+Asia/Urumqi Asia/Shanghai
+Asia/Vientiane Asia/Vientiane
+Asia/Vladivostok Asia/Vladivostok
+Asia/Yakutsk Asia/Yakutsk
+Asia/Yekaterinburg Asia/Yekaterinburg
+Asia/Yerevan Asia/Yerevan
+Atlantic/Azores Atlantic/Azores
+Atlantic/Bermuda Atlantic/Bermuda
+Atlantic/Canary Atlantic/Canary
+Atlantic/Cape_Verde Atlantic/Cape_Verde
+Atlantic/Faeroe Atlantic/Faeroe
+Atlantic/Jan_Mayen Atlantic/Jan_Mayen
+Atlantic/Madeira Europe/London
+Atlantic/Reykjavik Atlantic/Reykjavik
+Atlantic/South_Georgia Atlantic/South_Georgia
+Atlantic/St_Helena Atlantic/St_Helena
+Atlantic/Stanley Atlantic/Stanley
+Australia/ACT Australia/Sydney
+Australia/Adelaide Australia/Adelaide
+Australia/Brisbane Australia/Brisbane
+Australia/Broken_Hill Australia/Broken_Hill
+Australia/Canberra Australia/Sydney
+Australia/Darwin Australia/Darwin
+Australia/Hobart Australia/Hobart
+Australia/LHI Australia/Lord_Howe
+Australia/Lord_Howe Australia/Lord_Howe
+Australia/Melbourne Australia/Sydney
+Australia/NSW Australia/Sydney
+Australia/North Australia/Darwin
+Australia/Perth Australia/Perth
+Australia/Queensland Australia/Brisbane
+Australia/South Australia/Adelaide
+Australia/Sydney Australia/Sydney
+Australia/Tasmania Australia/Hobart
+Australia/Victoria Australia/Melbourne
+Australia/West Australia/Perth
+Australia/Yancowinna Australia/Broken_Hill
+BRT3BRST America/Sao_Paulo
+BST11 Pacific/Apia
+BST11BDT Pacific/Apia
+Brazil/Acre America/Rio_Branco
+Brazil/DeNoronha America/Noronha
+Brazil/East America/Sao_Paulo
+Brazil/West America/Manaus
+CET Europe/Paris
+CET-1CEST Europe/Paris
+CET-1CEST-2 Europe/Berlin
+CET-1CET-2 Europe/Paris
+CST6 America/Costa_Rica
+CST6CDT America/Chicago
+CUT0 UTC
+CUT0GDT Europe/London
+Canada/Atlantic America/Halifax
+Canada/Central America/Winnipeg
+Canada/East-Saskatchewan America/Regina
+Canada/Eastern America/Montreal
+Canada/Mountain America/Edmonton
+Canada/Newfoundland America/St_Johns
+Canada/Pacific America/Vancouver
+Canada/Saskatchewan America/Regina
+Canada/Yukon America/Whitehorse
+Chile/Continental America/Santiago
+Chile/EasterIsland Pacific/Easter
+Cuba America/Havana
+EET Europe/Istanbul
+EET-10 Australia/Brisbane
+EET-10EETDT Australia/Sydney
+EST America/Indianapolis
+EST5 America/Indianapolis
+EST5EDT America/New_York
+Egypt Africa/Cairo
+Eire Europe/Dublin
+Etc/GMT GMT
+Etc/GMT0 GMT
+Etc/Greenwich GMT
+Etc/UCT UTC
+Etc/UTC UTC
+Etc/Universal UTC
+Etc/Zulu UTC
+Europe/Amsterdam Europe/Amsterdam
+Europe/Andorra Europe/Andorra
+Europe/Athens Europe/Athens
+Europe/Belfast Europe/London
+Europe/Belgrade Europe/Belgrade
+Europe/Berlin Europe/Berlin
+Europe/Bratislava Europe/Prague
+Europe/Brussels Europe/Brussels
+Europe/Bucharest Europe/Bucharest
+Europe/Budapest Europe/Budapest
+Europe/Chisinau Europe/Chisinau
+Europe/Copenhagen Europe/Copenhagen
+Europe/Dublin Europe/Dublin
+Europe/Gibraltar Europe/Gibraltar
+Europe/Guernsey Europe/London
+Europe/Helsinki Europe/Helsinki
+Europe/Isle_of_Man Europe/London
+Europe/Istanbul Europe/Istanbul
+Europe/Jersey Europe/London
+Europe/Kaliningrad Europe/Kaliningrad
+Europe/Kiev Europe/Kiev
+Europe/Lisbon Europe/Lisbon
+Europe/Ljubljana Europe/Belgrade
+Europe/London Europe/London
+Europe/Luxembourg Europe/Luxembourg
+Europe/Madrid Europe/Madrid
+Europe/Malta Europe/Malta
+Europe/Mariehamn Europe/Helsinki
+Europe/Minsk Europe/Minsk
+Europe/Monaco Europe/Monaco
+Europe/Moscow Europe/Moscow
+Europe/Nicosia Asia/Nicosia
+Europe/Oslo Europe/Oslo
+Europe/Paris Europe/Paris
+Europe/Podgorica Europe/Belgrade
+Europe/Prague Europe/Prague
+Europe/Riga Europe/Riga
+Europe/Rome Europe/Rome
+Europe/Samara Europe/Samara
+Europe/San_Marino Europe/Rome
+Europe/Sarajevo Europe/Belgrade
+Europe/Simferopol Europe/Simferopol
+Europe/Skopje Europe/Belgrade
+Europe/Sofia Europe/Sofia
+Europe/Stockholm Europe/Stockholm
+Europe/Tallinn Europe/Tallinn
+Europe/Tirane Europe/Tirane
+Europe/Vaduz Europe/Vaduz
+Europe/Vatican Europe/Rome
+Europe/Vienna Europe/Vienna
+Europe/Vilnius Europe/Vilnius
+Europe/Warsaw Europe/Warsaw
+Europe/Zagreb Europe/Belgrade
+Europe/Zurich Europe/Zurich
+FALKST2 Atlantic/South_Georgia
+FALKST2FALKDT Atlantic/South_Georgia
+Factory GMT
+GB Europe/London
+GB-Eire Europe/London
+GMT GMT
+GMT0 GMT
+GMT0BST Europe/London
+GMT0BST-1 Europe/London
+GMT0WET Europe/Lisbon
+GRNLNDST3 America/Buenos_Aires
+GRNLNDST3GRNLNDDT America/Godthab
+Greenwich GMT
+HST Pacific/Honolulu
+HST10 Pacific/Honolulu
+HST10HDT America/Adak
+Hongkong Asia/Hong_Kong
+Iceland Atlantic/Reykjavik
+Indian/Antananarivo Indian/Antananarivo
+Indian/Chagos Indian/Chagos
+Indian/Christmas Indian/Christmas
+Indian/Cocos Indian/Cocos
+Indian/Comoro Indian/Comoro
+Indian/Kerguelen Indian/Kerguelen
+Indian/Mahe Indian/Mahe
+Indian/Maldives Indian/Maldives
+Indian/Mauritius Indian/Mauritius
+Indian/Mayotte Indian/Mayotte
+Indian/Reunion Indian/Reunion
+Iran Asia/Tehran
+Israel Asia/Jerusalem
+JST-9 Asia/Tokyo
+JST-9JSTDT Asia/Tokyo
+Jamaica America/Jamaica
+Japan Asia/Tokyo
+KORST-9 Asia/Seoul
+KORST-9KORDT Asia/Seoul
+Kwajalein Pacific/Kwajalein
+Libya Africa/Tripoli
+MEST-2 Europe/Istanbul
+MEST-2MEDT Europe/Istanbul
+MEST-3 Asia/Riyadh
+MEST-3MEDT Europe/Moscow
+MET Europe/Paris
+MET-11 Pacific/Guadalcanal
+MET-11METDT Asia/Magadan
+MET-1MEST Europe/Paris
+MET-1MST-2 Europe/Berlin
+MEZ-1MESZ Europe/Berlin
+MEZ-1MESZ-2 Europe/Berlin
+MSK-3MSD Europe/Moscow
+MST America/Phoenix
+MST7 America/Phoenix
+MST7MDT America/Denver
+Mexico/BajaNorte America/Tijuana
+Mexico/BajaSur America/Mazatlan
+Mexico/General America/Mexico_City
+Mideast/Riyadh87 Asia/Riyadh87
+Mideast/Riyadh88 Asia/Riyadh88
+Mideast/Riyadh89 Asia/Riyadh89
+NFT-1 Africa/Algiers
+NFT-1DFT Europe/Paris
+NFT-1DST Europe/Paris
+NZ Pacific/Auckland
+NZ-CHAT Pacific/Chatham
+NZST-12 Pacific/Fiji
+NZST-12NZDT Pacific/Auckland
+Navajo America/Denver
+PAKST-5 Asia/Karachi
+PAKST-5PAKDT Asia/Yekaterinburg
+PRC Asia/Shanghai
+PST8 Pacific/Pitcairn
+PST8PDT America/Los_Angeles
+PST8PDT7 America/Tijuana
+Pacific/Apia Pacific/Apia
+Pacific/Auckland Pacific/Auckland
+Pacific/Chatham Pacific/Chatham
+Pacific/Easter Pacific/Easter
+Pacific/Efate Pacific/Efate
+Pacific/Enderbury Pacific/Enderbury
+Pacific/Fakaofo Pacific/Fakaofo
+Pacific/Fiji Pacific/Fiji
+Pacific/Funafuti Pacific/Funafuti
+Pacific/Galapagos Pacific/Galapagos
+Pacific/Gambier Pacific/Gambier
+Pacific/Guadalcanal Pacific/Guadalcanal
+Pacific/Guam Pacific/Guam
+Pacific/Honolulu Pacific/Honolulu
+Pacific/Kiritimati Pacific/Kiritimati
+Pacific/Kosrae Pacific/Kosrae
+Pacific/Majuro Pacific/Majuro
+Pacific/Marquesas Pacific/Marquesas
+Pacific/Nauru Pacific/Nauru
+Pacific/Niue Pacific/Niue
+Pacific/Norfolk Pacific/Norfolk
+Pacific/Noumea Pacific/Noumea
+Pacific/Pago_Pago Pacific/Pago_Pago
+Pacific/Palau Pacific/Palau
+Pacific/Pitcairn Pacific/Pitcairn
+Pacific/Ponape Pacific/Ponape
+Pacific/Port_Moresby Pacific/Port_Moresby
+Pacific/Rarotonga Pacific/Rarotonga
+Pacific/Saipan Pacific/Saipan
+Pacific/Samoa Pacific/Pago_Pago
+Pacific/Tahiti Pacific/Tahiti
+Pacific/Tarawa Pacific/Tarawa
+Pacific/Tongatapu Pacific/Tongatapu
+Pacific/Truk Pacific/Truk
+Pacific/Wake Pacific/Wake
+Pacific/Wallis Pacific/Wallis
+Poland Europe/Warsaw
+Portugal Europe/Lisbon
+ROC Asia/Taipei
+ROK Asia/Seoul
+SAUST-3 Asia/Riyadh
+SAUST-3SAUDT Europe/Moscow
+Singapore Asia/Singapore
+SystemV/AST4ADT America/Thule
+SystemV/CST6CDT America/Chicago
+SystemV/EST5EDT America/New_York
+SystemV/MST7MDT America/Denver
+SystemV/PST8PDT America/Los_Angeles
+SystemV/YST9YDT America/Anchorage
+TAIST-8 Asia/Taipei
+TAIST-8TAIDT Asia/Irkutsk
+TASHST-6 Asia/Dacca
+TASHST-6TASHDT Asia/Novosibirsk
+THAIST-7 Asia/Bangkok
+THAIST-7THAIDT Asia/Krasnoyarsk
+Turkey Europe/Istanbul
+UCT UTC
+US/Alaska America/Anchorage
+US/Aleutian America/Adak
+US/Arizona America/Phoenix
+US/Central America/Chicago
+US/East-Indiana America/Indiana/Indianapolis
+US/Eastern America/New_York
+US/Hawaii Pacific/Honolulu
+US/Indiana-Starke America/Indiana/Knox
+US/Michigan America/New_York
+US/Mountain America/Denver
+US/Pacific America/Los_Angeles
+US/Pacific-New America/Los_Angeles
+US/Samoa Pacific/Pago_Pago
+USAST-2 Africa/Johannesburg
+USAST-2USADT Europe/Istanbul
+UTC UTC
+UYT3UYST America/Montevideo
+Universal UTC
+W-SU Europe/Moscow
+WAUST-8 Australia/Perth
+WAUST-8WAUDT Australia/Perth
+WET WET
+WET-2 Africa/Johannesburg
+WET-2WET Europe/Helsinki
+WST-4 Asia/Dubai
+WST-4WDT Europe/Samara
+Zulu UTC
diff --git a/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java b/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java
index 4b9c78b3d..c9a86b851 100644
--- a/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java
+++ b/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java
@@ -510,15 +510,17 @@ public class AquaComboBoxUI extends BasicComboBoxUI implements Sizeable {
}
};
- private static Action hideAction = new AbstractAction() {
+ private final Action hideAction = new AbstractAction() {
@Override
public void actionPerformed(final ActionEvent e) {
final JComboBox comboBox = (JComboBox)e.getSource();
+ comboBox.firePopupMenuCanceled();
+ comboBox.setPopupVisible(false);
+ }
- if (comboBox.isPopupVisible()) {
- comboBox.firePopupMenuCanceled();
- comboBox.setPopupVisible(false);
- }
+ @Override
+ public boolean isEnabled() {
+ return comboBox.isPopupVisible() && super.isEnabled();
}
};
diff --git a/src/macosx/lib/Info-privileged.plist b/src/macosx/lib/Info-privileged.plist
index 776967ab3..1d5ef39c5 100644
--- a/src/macosx/lib/Info-privileged.plist
+++ b/src/macosx/lib/Info-privileged.plist
@@ -7,7 +7,7 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
- <string>OpenJDK 7 Command</string>
+ <string>OpenJDK 8 Command</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
diff --git a/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m b/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m
index 44b28f032..40f380bde 100644
--- a/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m
+++ b/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m
@@ -142,10 +142,9 @@ SplashInitPlatform(Splash * splash) {
splash->screenFormat.byteOrder = 1 ? BYTE_ORDER_LSBFIRST : BYTE_ORDER_MSBFIRST;
splash->screenFormat.depthBytes = 4;
- dispatch_async(dispatch_get_main_queue(), ^(void) {
- NSApplication * app = [NSApplicationAWT sharedApplication];
- [NSApplicationAWT runAWTLoopWithApp: app];
- });
+ [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^() {
+ [NSApplicationAWT runAWTLoopWithApp:[NSApplicationAWT sharedApplication]];
+ }];
}
void
diff --git a/src/share/bin/java.c b/src/share/bin/java.c
index 73c532676..ed45f085d 100644
--- a/src/share/bin/java.c
+++ b/src/share/bin/java.c
@@ -732,6 +732,9 @@ SetClassPath(const char *s)
if (s == NULL)
return;
s = JLI_WildcardExpandClasspath(s);
+ if (sizeof(format) - 2 + JLI_StrLen(s) < JLI_StrLen(s))
+ // s is corrupted after wildcard expansion
+ return;
def = JLI_MemAlloc(sizeof(format)
- 2 /* strlen("%s") */
+ JLI_StrLen(s));
@@ -1351,9 +1354,11 @@ AddApplicationOptions(int cpathc, const char **cpathv)
if (s) {
s = (char *) JLI_WildcardExpandClasspath(s);
/* 40 for -Denv.class.path= */
- envcp = (char *)JLI_MemAlloc(JLI_StrLen(s) + 40);
- sprintf(envcp, "-Denv.class.path=%s", s);
- AddOption(envcp, NULL);
+ if (JLI_StrLen(s) + 40 > JLI_StrLen(s)) { // Safeguard from overflow
+ envcp = (char *)JLI_MemAlloc(JLI_StrLen(s) + 40);
+ sprintf(envcp, "-Denv.class.path=%s", s);
+ AddOption(envcp, NULL);
+ }
}
}
diff --git a/src/share/classes/java/awt/MediaTracker.java b/src/share/classes/java/awt/MediaTracker.java
index 91e074aeb..a96dda614 100644
--- a/src/share/classes/java/awt/MediaTracker.java
+++ b/src/share/classes/java/awt/MediaTracker.java
@@ -226,7 +226,9 @@ public class MediaTracker implements java.io.Serializable {
addImageImpl(image, id, w, h);
Image rvImage = getResolutionVariant(image);
if (rvImage != null) {
- addImageImpl(rvImage, id, 2 * w, 2 * h);
+ addImageImpl(rvImage, id,
+ w == -1 ? -1 : 2 * w,
+ h == -1 ? -1 : 2 * h);
}
}
@@ -810,8 +812,9 @@ public class MediaTracker implements java.io.Serializable {
removeImageImpl(image, id, width, height);
Image rvImage = getResolutionVariant(image);
if (rvImage != null) {
- removeImageImpl(rvImage, id, 2 * width, 2 * height);
-
+ removeImageImpl(rvImage, id,
+ width == -1 ? -1 : 2 * width,
+ height == -1 ? -1 : 2 * height);
}
notifyAll(); // Notify in case remaining images are "done".
}
diff --git a/src/share/classes/java/awt/datatransfer/DataFlavor.java b/src/share/classes/java/awt/datatransfer/DataFlavor.java
index 9ca61a34a..2df8e5ac8 100644
--- a/src/share/classes/java/awt/datatransfer/DataFlavor.java
+++ b/src/share/classes/java/awt/datatransfer/DataFlavor.java
@@ -25,13 +25,28 @@
package java.awt.datatransfer;
-import java.io.*;
-import java.nio.*;
-import java.util.*;
-
import sun.awt.datatransfer.DataTransferer;
import sun.reflect.misc.ReflectUtil;
+import java.io.ByteArrayInputStream;
+import java.io.CharArrayReader;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.OptionalDataException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Objects;
+
import static sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION;
/**
@@ -501,7 +516,7 @@ public class DataFlavor implements Externalizable, Cloneable {
* @throws ClassNotFoundException
* @throws NullPointerException if <code>mimeType</code> is null
*
- * @see tryToLoadClass
+ * @see #tryToLoadClass
*/
private void initialize(String mimeType, String humanPresentableName, ClassLoader classLoader) throws MimeTypeParseException, ClassNotFoundException {
if (mimeType == null) {
@@ -990,14 +1005,8 @@ public class DataFlavor implements Externalizable, Cloneable {
return true;
}
- if (representationClass == null) {
- if (that.getRepresentationClass() != null) {
- return false;
- }
- } else {
- if (!representationClass.equals(that.getRepresentationClass())) {
- return false;
- }
+ if (!Objects.equals(this.getRepresentationClass(), that.getRepresentationClass())) {
+ return false;
}
if (mimeType == null) {
@@ -1010,34 +1019,22 @@ public class DataFlavor implements Externalizable, Cloneable {
}
if ("text".equals(getPrimaryType())) {
- if (DataTransferer.doesSubtypeSupportCharset(this) &&
- representationClass != null &&
- !(isRepresentationClassReader() ||
- String.class.equals(representationClass) ||
- isRepresentationClassCharBuffer() ||
- char[].class.equals(representationClass)))
- {
+ if (DataTransferer.doesSubtypeSupportCharset(this)
+ && representationClass != null
+ && !isStandardTextRepresentationClass()) {
String thisCharset =
- DataTransferer.canonicalName(getParameter("charset"));
+ DataTransferer.canonicalName(this.getParameter("charset"));
String thatCharset =
- DataTransferer.canonicalName(that.getParameter("charset"));
- if (thisCharset == null) {
- if (thatCharset != null) {
- return false;
- }
- } else {
- if (!thisCharset.equals(thatCharset)) {
- return false;
- }
+ DataTransferer.canonicalName(that.getParameter("charset"));
+ if (!Objects.equals(thisCharset, thatCharset)) {
+ return false;
}
}
- if ("html".equals(getSubType()) &&
- this.getParameter("document") != null )
- {
- if (!this.getParameter("document").
- equals(that.getParameter("document")))
- {
+ if ("html".equals(getSubType())) {
+ String thisDocument = this.getParameter("document");
+ String thatDocument = that.getParameter("document");
+ if (!Objects.equals(thisDocument, thatDocument)) {
return false;
}
}
@@ -1094,18 +1091,21 @@ public class DataFlavor implements Externalizable, Cloneable {
// MimeType.match which reports a match if one or both of the
// subTypes is '*', regardless of the other subType.
- if ("text".equals(primaryType) &&
- DataTransferer.doesSubtypeSupportCharset(this) &&
- representationClass != null &&
- !(isRepresentationClassReader() ||
- String.class.equals(representationClass) ||
- isRepresentationClassCharBuffer() ||
- char[].class.equals(representationClass)))
- {
- String charset =
- DataTransferer.canonicalName(getParameter("charset"));
- if (charset != null) {
- total += charset.hashCode();
+ if ("text".equals(primaryType)) {
+ if (DataTransferer.doesSubtypeSupportCharset(this)
+ && representationClass != null
+ && !isStandardTextRepresentationClass()) {
+ String charset = DataTransferer.canonicalName(getParameter("charset"));
+ if (charset != null) {
+ total += charset.hashCode();
+ }
+ }
+
+ if ("html".equals(getSubType())) {
+ String document = this.getParameter("document");
+ if (document != null) {
+ total += document.hashCode();
+ }
}
}
}
@@ -1181,6 +1181,20 @@ public class DataFlavor implements Externalizable, Cloneable {
return mimeType.match(mtype);
}
+ /**
+ * Checks if the representation class is one of the standard text
+ * representation classes.
+ *
+ * @return true if the representation class is one of the standard text
+ * representation classes, otherwise false
+ */
+ private boolean isStandardTextRepresentationClass() {
+ return isRepresentationClassReader()
+ || String.class.equals(representationClass)
+ || isRepresentationClassCharBuffer()
+ || char[].class.equals(representationClass);
+ }
+
/**
* Does the <code>DataFlavor</code> represent a serialized object?
*/
diff --git a/src/share/classes/java/awt/dnd/DragSourceContext.java b/src/share/classes/java/awt/dnd/DragSourceContext.java
index cbc4c83b1..3397f8168 100644
--- a/src/share/classes/java/awt/dnd/DragSourceContext.java
+++ b/src/share/classes/java/awt/dnd/DragSourceContext.java
@@ -576,9 +576,9 @@ public class DragSourceContext
throw new InvalidObjectException("Null trigger component");
}
- int DGRActions = newTrigger.getSourceAsDragGestureRecognizer().getSourceActions()
+ int newSourceActions = f.get("sourceActions", 0)
& (DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK);
- if (DGRActions == DnDConstants.ACTION_NONE) {
+ if (newSourceActions == DnDConstants.ACTION_NONE) {
throw new InvalidObjectException("Invalid source actions");
}
int triggerActions = newTrigger.getDragAction();
@@ -591,8 +591,7 @@ public class DragSourceContext
cursor = (Cursor)f.get("cursor", null);
useCustomCursor = f.get("useCustomCursor", false);
- sourceActions = f.get("sourceActions", 0)
- & (DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK);
+ sourceActions = newSourceActions;
transferable = (Transferable)s.readObject();
listener = (DragSourceListener)s.readObject();
diff --git a/src/share/classes/java/lang/ConditionalSpecialCasing.java b/src/share/classes/java/lang/ConditionalSpecialCasing.java
index fd849545b..79fda55fb 100644
--- a/src/share/classes/java/lang/ConditionalSpecialCasing.java
+++ b/src/share/classes/java/lang/ConditionalSpecialCasing.java
@@ -62,6 +62,7 @@ final class ConditionalSpecialCasing {
//# Conditional mappings
//# ================================================================================
new Entry(0x03A3, new char[]{0x03C2}, new char[]{0x03A3}, null, FINAL_CASED), // # GREEK CAPITAL LETTER SIGMA
+ new Entry(0x0130, new char[]{0x0069, 0x0307}, new char[]{0x0130}, null, 0), // # LATIN CAPITAL LETTER I WITH DOT ABOVE
//# ================================================================================
//# Locale-sensitive mappings
@@ -77,8 +78,8 @@ final class ConditionalSpecialCasing {
//# ================================================================================
//# Turkish and Azeri
-// new Entry(0x0130, new char[]{0x0069}, new char[]{0x0130}, "tr", 0), // # LATIN CAPITAL LETTER I WITH DOT ABOVE
-// new Entry(0x0130, new char[]{0x0069}, new char[]{0x0130}, "az", 0), // # LATIN CAPITAL LETTER I WITH DOT ABOVE
+ new Entry(0x0130, new char[]{0x0069}, new char[]{0x0130}, "tr", 0), // # LATIN CAPITAL LETTER I WITH DOT ABOVE
+ new Entry(0x0130, new char[]{0x0069}, new char[]{0x0130}, "az", 0), // # LATIN CAPITAL LETTER I WITH DOT ABOVE
new Entry(0x0307, new char[]{}, new char[]{0x0307}, "tr", AFTER_I), // # COMBINING DOT ABOVE
new Entry(0x0307, new char[]{}, new char[]{0x0307}, "az", AFTER_I), // # COMBINING DOT ABOVE
new Entry(0x0049, new char[]{0x0131}, new char[]{0x0049}, "tr", NOT_BEFORE_DOT), // # LATIN CAPITAL LETTER I
@@ -148,21 +149,25 @@ final class ConditionalSpecialCasing {
private static char[] lookUpTable(String src, int index, Locale locale, boolean bLowerCasing) {
HashSet<Entry> set = entryTable.get(new Integer(src.codePointAt(index)));
+ char[] ret = null;
if (set != null) {
Iterator<Entry> iter = set.iterator();
String currentLang = locale.getLanguage();
while (iter.hasNext()) {
Entry entry = iter.next();
- String conditionLang= entry.getLanguage();
+ String conditionLang = entry.getLanguage();
if (((conditionLang == null) || (conditionLang.equals(currentLang))) &&
isConditionMet(src, index, locale, entry.getCondition())) {
- return (bLowerCasing ? entry.getLowerCase() : entry.getUpperCase());
+ ret = bLowerCasing ? entry.getLowerCase() : entry.getUpperCase();
+ if (conditionLang != null) {
+ break;
+ }
}
}
}
- return null;
+ return ret;
}
private static boolean isConditionMet(String src, int index, Locale locale, int condition) {
diff --git a/src/share/classes/java/lang/String.java b/src/share/classes/java/lang/String.java
index 6565f6434..ce7d8f779 100644
--- a/src/share/classes/java/lang/String.java
+++ b/src/share/classes/java/lang/String.java
@@ -2597,7 +2597,9 @@ public final class String
} else {
srcCount = 1;
}
- if (localeDependent || srcChar == '\u03A3') { // GREEK CAPITAL LETTER SIGMA
+ if (localeDependent ||
+ srcChar == '\u03A3' || // GREEK CAPITAL LETTER SIGMA
+ srcChar == '\u0130') { // LATIN CAPITAL LETTER I WITH DOT ABOVE
lowerChar = ConditionalSpecialCasing.toLowerCaseEx(this, i, locale);
} else {
lowerChar = Character.toLowerCase(srcChar);
diff --git a/src/share/classes/java/util/Random.java b/src/share/classes/java/util/Random.java
index 069242c6e..1061b5936 100644
--- a/src/share/classes/java/util/Random.java
+++ b/src/share/classes/java/util/Random.java
@@ -874,7 +874,7 @@ class Random implements java.io.Serializable {
* (inclusive) and one (exclusive).
*
* <p>A pseudorandom {@code double} value is generated as if it's the result
- * of calling the method {@link #nextDouble()}}.
+ * of calling the method {@link #nextDouble()}.
*
* @param streamSize the number of values to generate
* @return a stream of {@code double} values
@@ -897,7 +897,7 @@ class Random implements java.io.Serializable {
* (exclusive).
*
* <p>A pseudorandom {@code double} value is generated as if it's the result
- * of calling the method {@link #nextDouble()}}.
+ * of calling the method {@link #nextDouble()}.
*
* @implNote This method is implemented to be equivalent to {@code
* doubles(Long.MAX_VALUE)}.
diff --git a/src/share/classes/javax/crypto/JceSecurity.java b/src/share/classes/javax/crypto/JceSecurity.java
index 7e0624622..fb7052d24 100644
--- a/src/share/classes/javax/crypto/JceSecurity.java
+++ b/src/share/classes/javax/crypto/JceSecurity.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -216,26 +216,28 @@ final class JceSecurity {
new WeakHashMap<>();
/*
- * Retuns the CodeBase for the given class.
+ * Returns the CodeBase for the given class.
*/
static URL getCodeBase(final Class<?> clazz) {
- URL url = codeBaseCacheRef.get(clazz);
- if (url == null) {
- url = AccessController.doPrivileged(new PrivilegedAction<URL>() {
- public URL run() {
- ProtectionDomain pd = clazz.getProtectionDomain();
- if (pd != null) {
- CodeSource cs = pd.getCodeSource();
- if (cs != null) {
- return cs.getLocation();
+ synchronized (codeBaseCacheRef) {
+ URL url = codeBaseCacheRef.get(clazz);
+ if (url == null) {
+ url = AccessController.doPrivileged(new PrivilegedAction<URL>() {
+ public URL run() {
+ ProtectionDomain pd = clazz.getProtectionDomain();
+ if (pd != null) {
+ CodeSource cs = pd.getCodeSource();
+ if (cs != null) {
+ return cs.getLocation();
+ }
}
+ return NULL_URL;
}
- return NULL_URL;
- }
- });
- codeBaseCacheRef.put(clazz, url);
+ });
+ codeBaseCacheRef.put(clazz, url);
+ }
+ return (url == NULL_URL) ? null : url;
}
- return (url == NULL_URL) ? null : url;
}
private static void setupJurisdictionPolicies() throws Exception {
diff --git a/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java b/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
index 28494fe6f..82be7d0f9 100644
--- a/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
+++ b/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
@@ -379,15 +379,11 @@ public class BasicInternalFrameTitlePane extends JComponent
InternalFrameEvent e = new InternalFrameEvent(
frame, InternalFrameEvent.INTERNAL_FRAME_CLOSING);
// Try posting event, unless there's a SecurityManager.
- if (JInternalFrame.class.getClassLoader() == null) {
- try {
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(e);
- return;
- } catch (SecurityException se) {
- // Use dispatchEvent instead.
- }
+ try {
+ Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(e);
+ } catch (SecurityException se) {
+ frame.dispatchEvent(e);
}
- frame.dispatchEvent(e);
}
diff --git a/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java b/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
index ff3eab8f1..01aa45ff0 100644
--- a/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
+++ b/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
@@ -31,6 +31,7 @@ import javax.swing.*;
import javax.swing.plaf.UIResource;
import javax.swing.Painter;
import java.awt.print.PrinterGraphics;
+import sun.reflect.misc.MethodUtil;
/**
* Convenient base class for defining Painter instances for rendering a
@@ -445,8 +446,8 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
} else {
String s = "get" + Character.toUpperCase(property.charAt(0)) + property.substring(1);
try {
- Method method = c.getClass().getMethod(s);
- color = (Color) method.invoke(c);
+ Method method = MethodUtil.getMethod(c.getClass(), s, null);
+ color = (Color) MethodUtil.invoke(method, c, null);
} catch (Exception e) {
//don't do anything, it just didn't work, that's all.
//This could be a normal occurance if you use a property
diff --git a/src/share/classes/javax/swing/plaf/nimbus/skin.laf b/src/share/classes/javax/swing/plaf/nimbus/skin.laf
index 390100421..394721e1c 100644
--- a/src/share/classes/javax/swing/plaf/nimbus/skin.laf
+++ b/src/share/classes/javax/swing/plaf/nimbus/skin.laf
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -13424,10 +13424,10 @@
<state stateKeys="Selected">
<style>
<textForeground>
- <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
+ <matte red="255" green="255" blue="255" alpha="255" uiDefaultParentName="nimbusLightBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
</textForeground>
<textBackground>
- <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
+ <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
</textBackground>
<background/>
<inherit-textForeground>false</inherit-textForeground>
@@ -13453,7 +13453,7 @@
<style>
<textForeground/>
<textBackground>
- <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
+ <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
</textBackground>
<background/>
<inherit-textBackground>false</inherit-textBackground>
@@ -13477,7 +13477,7 @@
<state stateKeys="Disabled">
<style>
<textForeground>
- <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
+ <matte red="142" green="143" blue="145" alpha="255" uiDefaultParentName="nimbusDisabledText" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
</textForeground>
<textBackground/>
<background/>
@@ -13520,7 +13520,7 @@
</textForeground>
<textBackground/>
<background>
- <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0" uiResource="false"/>
+ <matte red="57" green="105" blue="138" alpha="255" uiDefaultParentName="nimbusSelectionBackground" hueOffset="0.0" saturationOffset="0.0" brightnessOffset="0.0" alphaOffset="0"/>
</background>
<inherit-textForeground>false</inherit-textForeground>
<inherit-background>false</inherit-background>
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java b/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
index 74e13aaa9..38900d04b 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
@@ -138,9 +138,7 @@ public class SynthButtonUI extends BasicButtonUI implements
}
SynthContext getContext(JComponent c, int state) {
- Region region = SynthLookAndFeel.getRegion(c);
- return SynthContext.getContext(SynthContext.class, c, region,
- style, state);
+ return SynthContext.getContext(c, style, state);
}
/**
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java b/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java
index 925668456..72ab2b09a 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java
@@ -128,8 +128,7 @@ public class SynthColorChooserUI extends BasicColorChooserUI implements
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java b/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java
index 754484d03..d56a5a65e 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java
@@ -208,8 +208,7 @@ public class SynthComboBoxUI extends BasicComboBoxUI implements
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthContext.java b/src/share/classes/javax/swing/plaf/synth/SynthContext.java
index 6d89a4a06..64b6e536f 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthContext.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthContext.java
@@ -24,8 +24,9 @@
*/
package javax.swing.plaf.synth;
-import javax.swing.*;
-import java.util.*;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import javax.swing.JComponent;
/**
* An immutable transient object containing contextual information about
@@ -39,59 +40,32 @@ import java.util.*;
* @author Scott Violet
*/
public class SynthContext {
- private static final Map<Class, List<SynthContext>> contextMap;
+ private static final Queue<SynthContext> queue = new ConcurrentLinkedQueue<>();
private JComponent component;
private Region region;
private SynthStyle style;
private int state;
-
- static {
- contextMap = new HashMap<Class, List<SynthContext>>();
+ static SynthContext getContext(JComponent c, SynthStyle style, int state) {
+ return getContext(c, SynthLookAndFeel.getRegion(c), style, state);
}
-
- static SynthContext getContext(Class type, JComponent component,
+ static SynthContext getContext(JComponent component,
Region region, SynthStyle style,
int state) {
- SynthContext context = null;
-
- synchronized(contextMap) {
- List<SynthContext> instances = contextMap.get(type);
-
- if (instances != null) {
- int size = instances.size();
-
- if (size > 0) {
- context = instances.remove(size - 1);
- }
- }
- }
+ SynthContext context = queue.poll();
if (context == null) {
- try {
- context = (SynthContext)type.newInstance();
- } catch (IllegalAccessException iae) {
- } catch (InstantiationException ie) {
- }
+ context = new SynthContext();
}
context.reset(component, region, style, state);
return context;
}
static void releaseContext(SynthContext context) {
- synchronized(contextMap) {
- List<SynthContext> instances = contextMap.get(context.getClass());
-
- if (instances == null) {
- instances = new ArrayList<SynthContext>(5);
- contextMap.put(context.getClass(), instances);
- }
- instances.add(context);
- }
+ queue.offer(context);
}
-
SynthContext() {
}
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java b/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java
index cde0f050e..ff668963e 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java
@@ -142,9 +142,7 @@ public class SynthDesktopIconUI extends BasicDesktopIconUI
}
private SynthContext getContext(JComponent c, int state) {
- Region region = SynthLookAndFeel.getRegion(c);
- return SynthContext.getContext(SynthContext.class, c, region,
- style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java b/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java
index c1099085b..3620bda50 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java
@@ -430,8 +430,7 @@ public class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java b/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java
index 2ccf59268..69489197d 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java
@@ -139,8 +139,7 @@ public class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI {
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java b/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java
index f0f7b607e..a538457c0 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java
@@ -67,8 +67,7 @@ class SynthInternalFrameTitlePane extends BasicInternalFrameTitlePane
}
public SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private Region getRegion(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java b/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java
index 34c94cdbc..c5c1ef7fd 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java
@@ -141,8 +141,7 @@ public class SynthInternalFrameUI extends BasicInternalFrameUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java b/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
index 45031e991..22e57e5e4 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
@@ -91,8 +91,7 @@ public class SynthLabelUI extends BasicLabelUI implements SynthUI {
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthListUI.java b/src/share/classes/javax/swing/plaf/synth/SynthListUI.java
index 5f19a1940..249bc0aa2 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthListUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthListUI.java
@@ -188,8 +188,7 @@ public class SynthListUI extends BasicListUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java b/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java
index 9c1f9cba2..1f0966464 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java
@@ -116,8 +116,7 @@ public class SynthMenuBarUI extends BasicMenuBarUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java b/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java
index 19ac0a760..956f76f1f 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java
@@ -170,8 +170,7 @@ public class SynthMenuItemUI extends BasicMenuItemUI implements
}
SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
SynthContext getContext(JComponent c, Region region) {
@@ -179,8 +178,7 @@ public class SynthMenuItemUI extends BasicMenuItemUI implements
}
private SynthContext getContext(JComponent c, Region region, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- region, accStyle, state);
+ return SynthContext.getContext(c, region, accStyle, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java b/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java
index 3f53f461e..7bb66a25c 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java
@@ -170,9 +170,7 @@ public class SynthMenuUI extends BasicMenuUI
}
SynthContext getContext(JComponent c, int state) {
- Region region = SynthLookAndFeel.getRegion(c);
- return SynthContext.getContext(SynthContext.class, c, region,
- style, state);
+ return SynthContext.getContext(c, style, state);
}
SynthContext getContext(JComponent c, Region region) {
@@ -180,8 +178,7 @@ public class SynthMenuUI extends BasicMenuUI
}
private SynthContext getContext(JComponent c, Region region, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- region, accStyle, state);
+ return SynthContext.getContext(c, region, accStyle, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java b/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java
index 42d454cf8..de6f2a713 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java
@@ -140,8 +140,7 @@ public class SynthOptionPaneUI extends BasicOptionPaneUI implements
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java b/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java
index ddfff5c15..73f37ff53 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java
@@ -127,8 +127,7 @@ public class SynthPanelUI extends BasicPanelUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthParser.java b/src/share/classes/javax/swing/plaf/synth/SynthParser.java
index a03e752e4..c27b10456 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthParser.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthParser.java
@@ -67,6 +67,7 @@ import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
import com.sun.beans.decoder.DocumentHandler;
+import sun.reflect.misc.ReflectUtil;
class SynthParser extends DefaultHandler {
//
@@ -648,7 +649,7 @@ class SynthParser extends DefaultHandler {
}
else {
try {
- typeClass = Class.forName(typeName.substring(
+ typeClass = ReflectUtil.forName(typeName.substring(
0, classIndex));
} catch (ClassNotFoundException cnfe) {
throw new SAXException("Unknown class: " +
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java b/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java
index d228abab7..cbb09f292 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java
@@ -123,8 +123,7 @@ public class SynthPopupMenuUI extends BasicPopupMenuUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java b/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
index 1afc81bb1..c37ce4903 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
@@ -138,8 +138,7 @@ public class SynthProgressBarUI extends BasicProgressBarUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java b/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java
index 0d437de76..1115fe355 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java
@@ -80,8 +80,7 @@ public class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI {
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java b/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
index 21b0a52b5..04b89bbee 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
@@ -185,8 +185,7 @@ public class SynthScrollBarUI extends BasicScrollBarUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private SynthContext getContext(JComponent c, Region region) {
@@ -199,8 +198,7 @@ public class SynthScrollBarUI extends BasicScrollBarUI
if (region == Region.SCROLL_BAR_THUMB) {
style = thumbStyle;
}
- return SynthContext.getContext(SynthContext.class, c, region, style,
- state);
+ return SynthContext.getContext(c, region, style, state);
}
private int getComponentState(JComponent c, Region region) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java b/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java
index 82d0b5e1e..b8b13c7fc 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java
@@ -211,8 +211,7 @@ public class SynthScrollPaneUI extends BasicScrollPaneUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java b/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java
index 7e759d4e3..158e16bd5 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java
@@ -248,8 +248,7 @@ public class SynthSeparatorUI extends SeparatorUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
public void propertyChange(PropertyChangeEvent evt) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java b/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
index 65d461264..5cc7cd486 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
@@ -722,8 +722,7 @@ public class SynthSliderUI extends BasicSliderUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private SynthContext getContext(JComponent c, Region subregion) {
@@ -732,14 +731,13 @@ public class SynthSliderUI extends BasicSliderUI
private SynthContext getContext(JComponent c, Region subregion, int state) {
SynthStyle style = null;
- Class klass = SynthContext.class;
if (subregion == Region.SLIDER_TRACK) {
style = sliderTrackStyle;
} else if (subregion == Region.SLIDER_THUMB) {
style = sliderThumbStyle;
}
- return SynthContext.getContext(klass, c, subregion, style, state);
+ return SynthContext.getContext(c, subregion, style, state);
}
private int getComponentState(JComponent c, Region region) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java b/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java
index d8bc4feea..a1293dfda 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java
@@ -278,8 +278,7 @@ public class SynthSpinnerUI extends BasicSpinnerUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
/**
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java b/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java
index 665286c4d..225c41f3f 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java
@@ -209,8 +209,7 @@ public class SynthSplitPaneUI extends BasicSplitPaneUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
SynthContext getContext(JComponent c, Region region) {
@@ -219,11 +218,9 @@ public class SynthSplitPaneUI extends BasicSplitPaneUI
private SynthContext getContext(JComponent c, Region region, int state) {
if (region == Region.SPLIT_PANE_DIVIDER) {
- return SynthContext.getContext(SynthContext.class, c, region,
- dividerStyle, state);
+ return SynthContext.getContext(c, region, dividerStyle, state);
}
- return SynthContext.getContext(SynthContext.class, c, region,
- style, state);
+ return SynthContext.getContext(c, region, style, state);
}
private int getComponentState(JComponent c, Region subregion) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java b/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java
index 95aa6dcc7..6d9dee073 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java
@@ -235,13 +235,11 @@ public class SynthTabbedPaneUI extends BasicTabbedPaneUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c),style, state);
+ return SynthContext.getContext(c, style, state);
}
private SynthContext getContext(JComponent c, Region subregion, int state){
SynthStyle style = null;
- Class klass = SynthContext.class;
if (subregion == Region.TABBED_PANE_TAB) {
style = tabStyle;
@@ -252,7 +250,7 @@ public class SynthTabbedPaneUI extends BasicTabbedPaneUI
else if (subregion == Region.TABBED_PANE_CONTENT) {
style = tabContentStyle;
}
- return SynthContext.getContext(klass, c, subregion, style, state);
+ return SynthContext.getContext(c, subregion, style, state);
}
/**
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java b/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java
index ec358aa30..c95469c46 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java
@@ -193,8 +193,7 @@ public class SynthTableHeaderUI extends BasicTableHeaderUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
/**
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java b/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
index 49dfe4b1b..d39a47d24 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
@@ -246,8 +246,7 @@ public class SynthTableUI extends BasicTableUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
//
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java b/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
index e39f144cc..fa84eeb1a 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
@@ -118,8 +118,7 @@ public class SynthTextAreaUI extends BasicTextAreaUI implements SynthUI {
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
/**
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java b/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
index f033e97d0..3831da9cf 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
@@ -156,8 +156,7 @@ public class SynthTextFieldUI extends BasicTextFieldUI implements SynthUI {
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
/**
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java b/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
index f65fdd14d..51d2fefd1 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
@@ -178,19 +178,17 @@ public class SynthToolBarUI extends BasicToolBarUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private SynthContext getContext(JComponent c, Region region, SynthStyle style) {
- return SynthContext.getContext(SynthContext.class, c, region,
+ return SynthContext.getContext(c, region,
style, getComponentState(c, region));
}
private SynthContext getContext(JComponent c, Region region,
SynthStyle style, int state) {
- return SynthContext.getContext(SynthContext.class, c, region,
- style, state);
+ return SynthContext.getContext(c, region, style, state);
}
private int getComponentState(JComponent c, Region region) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java b/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java
index afd49f4a7..dc42debba 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java
@@ -107,8 +107,7 @@ public class SynthToolTipUI extends BasicToolTipUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private int getComponentState(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java b/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java
index 70f7f6456..721c322ee 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java
@@ -173,8 +173,7 @@ public class SynthTreeUI extends BasicTreeUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- SynthLookAndFeel.getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private SynthContext getContext(JComponent c, Region region) {
@@ -182,8 +181,7 @@ public class SynthTreeUI extends BasicTreeUI
}
private SynthContext getContext(JComponent c, Region region, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- region, cellStyle, state);
+ return SynthContext.getContext(c, region, cellStyle, state);
}
private int getComponentState(JComponent c, Region region) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java b/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java
index 4c5a9b0cd..dc3e6c6e1 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java
@@ -141,8 +141,7 @@ public class SynthViewportUI extends ViewportUI
}
private SynthContext getContext(JComponent c, int state) {
- return SynthContext.getContext(SynthContext.class, c,
- getRegion(c), style, state);
+ return SynthContext.getContext(c, style, state);
}
private Region getRegion(JComponent c) {
diff --git a/src/share/classes/sun/awt/SunToolkit.java b/src/share/classes/sun/awt/SunToolkit.java
index c45938ced..08c3615ae 100644
--- a/src/share/classes/sun/awt/SunToolkit.java
+++ b/src/share/classes/sun/awt/SunToolkit.java
@@ -851,22 +851,30 @@ public abstract class SunToolkit extends Toolkit
private int checkResolutionVariant(Image img, int w, int h, ImageObserver o) {
ToolkitImage rvImage = getResolutionVariant(img);
+ int rvw = getRVSize(w);
+ int rvh = getRVSize(h);
// Ignore the resolution variant in case of error
return (rvImage == null || rvImage.hasError()) ? 0xFFFF :
- checkImage(rvImage, 2 * w, 2 * h, MultiResolutionToolkitImage.
+ checkImage(rvImage, rvw, rvh, MultiResolutionToolkitImage.
getResolutionVariantObserver(
- img, o, w, h, 2 * w, 2 * h));
+ img, o, w, h, rvw, rvh, true));
}
private boolean prepareResolutionVariant(Image img, int w, int h,
ImageObserver o) {
ToolkitImage rvImage = getResolutionVariant(img);
+ int rvw = getRVSize(w);
+ int rvh = getRVSize(h);
// Ignore the resolution variant in case of error
return rvImage == null || rvImage.hasError() || prepareImage(
- rvImage, 2 * w, 2 * h,
+ rvImage, rvw, rvh,
MultiResolutionToolkitImage.getResolutionVariantObserver(
- img, o, w, h, 2 * w, 2 * h));
+ img, o, w, h, rvw, rvh, true));
+ }
+
+ private static int getRVSize(int size){
+ return size == -1 ? -1 : 2 * size;
}
private static ToolkitImage getResolutionVariant(Image image) {
diff --git a/src/share/classes/sun/awt/image/ByteBandedRaster.java b/src/share/classes/sun/awt/image/ByteBandedRaster.java
index 164324f84..62dbcc69a 100644
--- a/src/share/classes/sun/awt/image/ByteBandedRaster.java
+++ b/src/share/classes/sun/awt/image/ByteBandedRaster.java
@@ -755,10 +755,22 @@ public class ByteBandedRaster extends SunWritableRaster {
+ scanlineStride);
}
- for (int i = 0; i < data.length; i++) {
- if (scanlineStride > data[i].length) {
- throw new RasterFormatException("Incorrect scanline stride: "
- + scanlineStride);
+ if ((long)minX - sampleModelTranslateX < 0 ||
+ (long)minY - sampleModelTranslateY < 0) {
+
+ throw new RasterFormatException("Incorrect origin/translate: (" +
+ minX + ", " + minY + ") / (" +
+ sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
+ }
+
+
+ if (height > 1 || minY - sampleModelTranslateY > 0) {
+ // buffer should contain at least one scanline
+ for (int i = 0; i < data.length; i++) {
+ if (scanlineStride > data[i].length) {
+ throw new RasterFormatException("Incorrect scanline stride: "
+ + scanlineStride);
+ }
}
}
diff --git a/src/share/classes/sun/awt/image/ByteComponentRaster.java b/src/share/classes/sun/awt/image/ByteComponentRaster.java
index 6587f7789..c43ab2cae 100644
--- a/src/share/classes/sun/awt/image/ByteComponentRaster.java
+++ b/src/share/classes/sun/awt/image/ByteComponentRaster.java
@@ -885,15 +885,31 @@ public class ByteComponentRaster extends SunWritableRaster {
}
}
+ if ((long)minX - sampleModelTranslateX < 0 ||
+ (long)minY - sampleModelTranslateY < 0) {
+
+ throw new RasterFormatException("Incorrect origin/translate: (" +
+ minX + ", " + minY + ") / (" +
+ sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
+ }
+
// we can be sure that width and height are greater than 0
if (scanlineStride < 0 ||
- scanlineStride > (Integer.MAX_VALUE / height) ||
- scanlineStride > data.length)
+ scanlineStride > (Integer.MAX_VALUE / height))
{
// integer overflow
throw new RasterFormatException("Incorrect scanline stride: "
+ scanlineStride);
}
+
+ if (height > 1 || minY - sampleModelTranslateY > 0) {
+ // buffer should contain at least one scanline
+ if (scanlineStride > data.length) {
+ throw new RasterFormatException("Incorrect scanline stride: "
+ + scanlineStride);
+ }
+ }
+
int lastScanOffset = (height - 1) * scanlineStride;
if (pixelStride < 0 ||
diff --git a/src/share/classes/sun/awt/image/BytePackedRaster.java b/src/share/classes/sun/awt/image/BytePackedRaster.java
index 68e72116f..3e60f193a 100644
--- a/src/share/classes/sun/awt/image/BytePackedRaster.java
+++ b/src/share/classes/sun/awt/image/BytePackedRaster.java
@@ -1386,13 +1386,28 @@ public class BytePackedRaster extends SunWritableRaster {
throw new RasterFormatException("Invalid raster dimension");
}
+ if ((long)minX - sampleModelTranslateX < 0 ||
+ (long)minY - sampleModelTranslateY < 0) {
+
+ throw new RasterFormatException("Incorrect origin/translate: (" +
+ minX + ", " + minY + ") / (" +
+ sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
+ }
+
if (scanlineStride < 0 ||
- scanlineStride > (Integer.MAX_VALUE / height) ||
- scanlineStride > data.length)
+ scanlineStride > (Integer.MAX_VALUE / height))
{
throw new RasterFormatException("Invalid scanline stride");
}
+ if (height > 1 || minY - sampleModelTranslateY > 0) {
+ // buffer should contain at least one scanline
+ if (scanlineStride > data.length) {
+ throw new RasterFormatException("Incorrect scanline stride: "
+ + scanlineStride);
+ }
+ }
+
long lastbit = (long) dataBitOffset
+ (long) (height - 1) * (long) scanlineStride * 8
+ (long) (width - 1) * (long) pixelBitStride
diff --git a/src/share/classes/sun/awt/image/IntegerComponentRaster.java b/src/share/classes/sun/awt/image/IntegerComponentRaster.java
index f36b1087f..b3456e00a 100644
--- a/src/share/classes/sun/awt/image/IntegerComponentRaster.java
+++ b/src/share/classes/sun/awt/image/IntegerComponentRaster.java
@@ -654,15 +654,31 @@ public class IntegerComponentRaster extends SunWritableRaster {
") must be >= 0");
}
+ if ((long)minX - sampleModelTranslateX < 0 ||
+ (long)minY - sampleModelTranslateY < 0) {
+
+ throw new RasterFormatException("Incorrect origin/translate: (" +
+ minX + ", " + minY + ") / (" +
+ sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
+ }
+
// we can be sure that width and height are greater than 0
if (scanlineStride < 0 ||
- scanlineStride > (Integer.MAX_VALUE / height) ||
- scanlineStride > data.length)
+ scanlineStride > (Integer.MAX_VALUE / height))
{
// integer overflow
throw new RasterFormatException("Incorrect scanline stride: "
+ scanlineStride);
}
+
+ if (height > 1 || minY - sampleModelTranslateY > 0) {
+ // buffer should contain at least one scanline
+ if (scanlineStride > data.length) {
+ throw new RasterFormatException("Incorrect scanline stride: "
+ + scanlineStride);
+ }
+ }
+
int lastScanOffset = (height - 1) * scanlineStride;
if (pixelStride < 0 ||
diff --git a/src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java b/src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java
index a49c8a7f5..bde59ab62 100644
--- a/src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java
+++ b/src/share/classes/sun/awt/image/MultiResolutionToolkitImage.java
@@ -66,6 +66,14 @@ public class MultiResolutionToolkitImage extends ToolkitImage implements MultiRe
final Image image, final ImageObserver observer,
final int imgWidth, final int imgHeight,
final int rvWidth, final int rvHeight) {
+ return getResolutionVariantObserver(image, observer,
+ imgWidth, imgHeight, rvWidth, rvHeight, false);
+ }
+
+ public static ImageObserver getResolutionVariantObserver(
+ final Image image, final ImageObserver observer,
+ final int imgWidth, final int imgHeight,
+ final int rvWidth, final int rvHeight, boolean concatenateInfo) {
if (observer == null) {
return null;
@@ -92,6 +100,11 @@ public class MultiResolutionToolkitImage extends ToolkitImage implements MultiRe
y /= 2;
}
+ if(concatenateInfo){
+ flags &= ((ToolkitImage) image).
+ getImageRep().check(null);
+ }
+
return observer.imageUpdate(
image, flags, x, y, width, height);
};
diff --git a/src/share/classes/sun/awt/image/ShortBandedRaster.java b/src/share/classes/sun/awt/image/ShortBandedRaster.java
index b6e955b9c..c73e7a72e 100644
--- a/src/share/classes/sun/awt/image/ShortBandedRaster.java
+++ b/src/share/classes/sun/awt/image/ShortBandedRaster.java
@@ -754,10 +754,21 @@ public class ShortBandedRaster extends SunWritableRaster {
+ scanlineStride);
}
- for (int i = 0; i < data.length; i++) {
- if (scanlineStride > data[i].length) {
- throw new RasterFormatException("Incorrect scanline stride: "
- + scanlineStride);
+ if ((long)minX - sampleModelTranslateX < 0 ||
+ (long)minY - sampleModelTranslateY < 0) {
+
+ throw new RasterFormatException("Incorrect origin/translate: (" +
+ minX + ", " + minY + ") / (" +
+ sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
+ }
+
+ if (height > 1 || minY - sampleModelTranslateY > 0) {
+ // buffer should contain at least one scanline
+ for (int i = 0; i < data.length; i++) {
+ if (scanlineStride > data[i].length) {
+ throw new RasterFormatException("Incorrect scanline stride: "
+ + scanlineStride);
+ }
}
}
diff --git a/src/share/classes/sun/awt/image/ShortComponentRaster.java b/src/share/classes/sun/awt/image/ShortComponentRaster.java
index e6a5bc014..cdbc93c7e 100644
--- a/src/share/classes/sun/awt/image/ShortComponentRaster.java
+++ b/src/share/classes/sun/awt/image/ShortComponentRaster.java
@@ -819,15 +819,31 @@ public class ShortComponentRaster extends SunWritableRaster {
}
}
+ if ((long)minX - sampleModelTranslateX < 0 ||
+ (long)minY - sampleModelTranslateY < 0) {
+
+ throw new RasterFormatException("Incorrect origin/translate: (" +
+ minX + ", " + minY + ") / (" +
+ sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
+ }
+
// we can be sure that width and height are greater than 0
if (scanlineStride < 0 ||
- scanlineStride > (Integer.MAX_VALUE / height) ||
- scanlineStride > data.length)
+ scanlineStride > (Integer.MAX_VALUE / height))
{
// integer overflow
throw new RasterFormatException("Incorrect scanline stride: "
+ scanlineStride);
}
+
+ if (height > 1 || minY - sampleModelTranslateY > 0) {
+ // buffer should contain at least one scanline
+ if (scanlineStride > data.length) {
+ throw new RasterFormatException("Incorrect scanline stride: "
+ + scanlineStride);
+ }
+ }
+
int lastScanOffset = (height - 1) * scanlineStride;
if (pixelStride < 0 ||
diff --git a/src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java b/src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java
index 8701a7756..f031407f1 100644
--- a/src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java
+++ b/src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java
@@ -34,8 +34,11 @@ import java.util.StringTokenizer;
import java.util.Random;
import sun.net.www.HeaderParser;
+import sun.net.NetProperties;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.security.PrivilegedAction;
+import java.security.AccessController;
import static sun.net.www.protocol.http.HttpURLConnection.HTTP_CONNECT;
/**
@@ -51,6 +54,23 @@ class DigestAuthentication extends AuthenticationInfo {
private String authMethod;
+ private final static String compatPropName = "http.auth.digest." +
+ "quoteParameters";
+
+ // true if http.auth.digest.quoteParameters Net property is true
+ private static final boolean delimCompatFlag;
+
+ static {
+ Boolean b = AccessController.doPrivileged(
+ new PrivilegedAction<Boolean>() {
+ public Boolean run() {
+ return NetProperties.getBoolean(compatPropName);
+ }
+ }
+ );
+ delimCompatFlag = (b == null) ? false : b.booleanValue();
+ }
+
// Authentication parameters defined in RFC2617.
// One instance of these may be shared among several DigestAuthentication
// instances as a result of a single authorization (for multiple domains)
@@ -357,24 +377,34 @@ class DigestAuthentication extends AuthenticationInfo {
ncfield = "\", nc=" + ncstring;
}
+ String algoS, qopS;
+
+ if (delimCompatFlag) {
+ // Put quotes around these String value parameters
+ algoS = ", algorithm=\"" + algorithm + "\"";
+ qopS = ", qop=\"auth\"";
+ } else {
+ // Don't put quotes around them, per the RFC
+ algoS = ", algorithm=" + algorithm;
+ qopS = ", qop=auth";
+ }
+
String value = authMethod
+ " username=\"" + pw.getUserName()
+ "\", realm=\"" + realm
+ "\", nonce=\"" + nonce
+ ncfield
+ ", uri=\"" + uri
- + "\", response=\"" + response
- + "\", algorithm=" + algorithm;
+ + "\", response=\"" + response + "\""
+ + algoS;
if (opaque != null) {
- value = value + ", opaque=\"" + opaque;
- value = value + "\"";
+ value += ", opaque=\"" + opaque + "\"";
}
if (cnonce != null) {
- value = value + ", cnonce=\"" + cnonce;
- value = value + "\"";
+ value += ", cnonce=\"" + cnonce + "\"";
}
if (qop) {
- value = value + ", qop=auth";
+ value += qopS;
}
return value;
}
diff --git a/src/share/classes/sun/nio/cs/UTF_8.java b/src/share/classes/sun/nio/cs/UTF_8.java
index bfb7b7a97..3ee2341f0 100644
--- a/src/share/classes/sun/nio/cs/UTF_8.java
+++ b/src/share/classes/sun/nio/cs/UTF_8.java
@@ -111,12 +111,18 @@ class UTF_8 extends Unicode
(b4 & 0xc0) != 0x80;
}
- // only used when there is less than 4 bytes left in src buffer
+ // only used when there is less than 4 bytes left in src buffer.
+ // both b1 and b2 should be "& 0xff" before passed in.
private static boolean isMalformed4_2(int b1, int b2) {
- return (b1 == 0xf0 && b2 == 0x90) ||
+ return (b1 == 0xf0 && (b2 < 0x90 || b2 > 0xbf)) ||
+ (b1 == 0xf4 && (b2 & 0xf0) != 0x80) ||
(b2 & 0xc0) != 0x80;
}
+ // tests if b1 and b2 are malformed as the first 2 bytes of a
+ // legal`4-byte utf-8 byte sequence.
+ // only used when there is less than 4 bytes left in src buffer,
+ // after isMalformed4_2 has been invoked.
private static boolean isMalformed4_3(int b3) {
return (b3 & 0xc0) != 0x80;
}
@@ -280,7 +286,9 @@ class UTF_8 extends Unicode
// 4 bytes, 21 bits: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
int srcRemaining = sl - sp;
if (srcRemaining < 4 || dl - dp < 2) {
- if (srcRemaining > 1 && isMalformed4_2(b1, sa[sp + 1]))
+ b1 &= 0xff;
+ if (b1 > 0xf4 ||
+ srcRemaining > 1 && isMalformed4_2(b1, sa[sp + 1] & 0xff))
return malformedForLength(src, sp, dst, dp, 1);
if (srcRemaining > 2 && isMalformed4_3(sa[sp + 2]))
return malformedForLength(src, sp, dst, dp, 2);
@@ -363,7 +371,9 @@ class UTF_8 extends Unicode
// 4 bytes, 21 bits: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
int srcRemaining = limit - mark;
if (srcRemaining < 4 || dst.remaining() < 2) {
- if (srcRemaining > 1 && isMalformed4_2(b1, src.get()))
+ b1 &= 0xff;
+ if (b1 > 0xf4 ||
+ srcRemaining > 1 && isMalformed4_2(b1, src.get() & 0xff))
return malformedForLength(src, mark, 1);
if (srcRemaining > 2 && isMalformed4_3(src.get()))
return malformedForLength(src, mark, 2);
@@ -518,8 +528,9 @@ class UTF_8 extends Unicode
}
if (malformedInputAction() != CodingErrorAction.REPLACE)
return -1;
-
- if (sp < sl && isMalformed4_2(b1, sa[sp])) {
+ b1 &= 0xff;
+ if (b1 > 0xf4 ||
+ sp < sl && isMalformed4_2(b1, sa[sp] & 0xff)) {
da[dp++] = replacement().charAt(0);
continue;
}
diff --git a/src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java b/src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java
index 9bd4b6c64..8eab556fd 100644
--- a/src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java
+++ b/src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java
@@ -75,7 +75,7 @@ public final class TypeAnnotationParser {
if (ti.getTarget() == filter)
l.add(t);
}
- TypeAnnotation[] typeAnnotations = l.toArray(new TypeAnnotation[0]);
+ TypeAnnotation[] typeAnnotations = l.toArray(EMPTY_TYPE_ANNOTATION_ARRAY);
return AnnotatedTypeFactory.buildAnnotatedType(type,
LocationInfo.BASE_LOCATION,
typeAnnotations,
@@ -245,7 +245,6 @@ public final class TypeAnnotationParser {
if (bounds != null) {
int startIndex = 0;
AnnotatedType[] res = new AnnotatedType[bounds.length];
- Arrays.fill(res, AnnotatedTypeFactory.EMPTY_ANNOTATED_TYPE);
// Adjust bounds index
//
@@ -276,12 +275,12 @@ public final class TypeAnnotationParser {
tInfo.getCount() == typeVarIndex) {
l.add(t);
}
- res[i] = AnnotatedTypeFactory.buildAnnotatedType(bounds[i],
- loc,
- l.toArray(new TypeAnnotation[0]),
- candidates.toArray(new TypeAnnotation[0]),
- (AnnotatedElement)decl);
}
+ res[i] = AnnotatedTypeFactory.buildAnnotatedType(bounds[i],
+ loc,
+ l.toArray(EMPTY_TYPE_ANNOTATION_ARRAY),
+ candidates.toArray(EMPTY_TYPE_ANNOTATION_ARRAY),
+ (AnnotatedElement)decl);
}
return res;
}
diff --git a/src/share/native/sun/font/layout/IndicLayoutEngine.cpp b/src/share/native/sun/font/layout/IndicLayoutEngine.cpp
index d45ebb659..c50fbae61 100644
--- a/src/share/native/sun/font/layout/IndicLayoutEngine.cpp
+++ b/src/share/native/sun/font/layout/IndicLayoutEngine.cpp
@@ -151,7 +151,7 @@ le_int32 IndicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
le_int32 outCharCount;
if (fVersion2) {
_LETRACE("v2process");
- outCharCount = IndicReordering::v2process(&chars[offset], count, fScriptCode, outChars, glyphStorage);
+ outCharCount = IndicReordering::v2process(&chars[offset], count, fScriptCode, outChars, glyphStorage, success);
} else {
_LETRACE("reorder");
outCharCount = IndicReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage, &fMPreFixups, success);
diff --git a/src/share/native/sun/font/layout/IndicReordering.cpp b/src/share/native/sun/font/layout/IndicReordering.cpp
index 7753e2465..22bbb7cf8 100644
--- a/src/share/native/sun/font/layout/IndicReordering.cpp
+++ b/src/share/native/sun/font/layout/IndicReordering.cpp
@@ -1096,9 +1096,13 @@ void IndicReordering::finalReordering(LEGlyphStorage &glyphStorage, le_int32 cou
le_int32 IndicReordering::v2process(const LEUnicode *chars, le_int32 charCount, le_int32 scriptCode,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage)
+ LEUnicode *outChars, LEGlyphStorage &glyphStorage, LEErrorCode& success)
{
const IndicClassTable *classTable = IndicClassTable::getScriptClassTable(scriptCode);
+ if (classTable == NULL) {
+ success = LE_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
DynamicProperties dynProps[INDIC_BLOCK_SIZE];
IndicReordering::getDynamicProperties(dynProps,classTable);
diff --git a/src/share/native/sun/font/layout/IndicReordering.h b/src/share/native/sun/font/layout/IndicReordering.h
index f90bf1ba2..ca77fe0c6 100644
--- a/src/share/native/sun/font/layout/IndicReordering.h
+++ b/src/share/native/sun/font/layout/IndicReordering.h
@@ -181,7 +181,7 @@ public:
static void adjustMPres(MPreFixups *mpreFixups, LEGlyphStorage &glyphStorage, LEErrorCode& success);
static le_int32 v2process(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
- LEUnicode *outChars, LEGlyphStorage &glyphStorage);
+ LEUnicode *outChars, LEGlyphStorage &glyphStorage, LEErrorCode& success);
static const FeatureMap *getFeatureMap(le_int32 &count);
diff --git a/src/share/native/sun/font/layout/LEScripts.h b/src/share/native/sun/font/layout/LEScripts.h
index 5524ef31a..bb1b07e03 100644
--- a/src/share/native/sun/font/layout/LEScripts.h
+++ b/src/share/native/sun/font/layout/LEScripts.h
@@ -263,12 +263,6 @@ enum ScriptCodes {
tirhScriptCode = 158,
/**
- * @stable ICU 52
- */
- aghbScriptCode = 159,
- mahjScriptCode = 160,
-
-/**
* @stable ICU 2.2
*/
scriptCodeCount
diff --git a/src/solaris/native/java/util/TimeZone_md.c b/src/solaris/native/java/util/TimeZone_md.c
index e1af8f925..c90fcee25 100644
--- a/src/solaris/native/java/util/TimeZone_md.c
+++ b/src/solaris/native/java/util/TimeZone_md.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -56,6 +56,9 @@ static const char *ETC_TIMEZONE_FILE = "/etc/timezone";
static const char *ZONEINFO_DIR = "/usr/share/zoneinfo";
static const char *DEFAULT_ZONEINFO_FILE = "/etc/localtime";
#else
+#ifdef _AIX
+static const char *ETC_ENVIRONMENT_FILE = "/etc/environment";
+#endif
static const char *SYS_INIT_FILE = "/etc/default/init";
static const char *ZONEINFO_DIR = "/usr/share/lib/zoneinfo";
static const char *DEFAULT_ZONEINFO_FILE = "/usr/share/lib/zoneinfo/localtime";
@@ -619,8 +622,29 @@ getSolarisDefaultZoneID() {
static char *
getPlatformTimeZoneID()
{
- return NULL;
+ FILE *fp;
+ char *tz = NULL;
+ char *tz_key = "TZ=";
+ char line[256];
+ size_t tz_key_len = strlen(tz_key);
+
+ if ((fp = fopen(ETC_ENVIRONMENT_FILE, "r")) != NULL) {
+ while (fgets(line, sizeof(line), fp) != NULL) {
+ char *p = strchr(line, '\n');
+ if (p != NULL) {
+ *p = '\0';
+ }
+ if (0 == strncmp(line, tz_key, tz_key_len)) {
+ tz = strdup(line + tz_key_len);
+ break;
+ }
+ }
+ (void) fclose(fp);
+ }
+
+ return tz;
}
+static char *mapPlatformToJavaTimezone(const char *java_home_dir, const char *tz);
#endif
/*
@@ -678,9 +702,19 @@ findJavaTZ_md(const char *java_home_dir, const char *country)
if (freetz != NULL) {
free((void *) freetz);
}
+
+#ifdef _AIX
+ freetz = mapPlatformToJavaTimezone(java_home_dir, javatz);
+ if (javatz != NULL) {
+ free((void *) javatz);
+ }
+ javatz = freetz;
+#endif
}
+
return javatz;
}
+
/**
* Returns a GMT-offset-based zone ID. (e.g., "GMT-08:00")
*/
@@ -747,3 +781,101 @@ getGMTOffsetID()
return strdup(buf);
}
#endif /* MACOSX */
+
+#ifdef _AIX
+static char *
+mapPlatformToJavaTimezone(const char *java_home_dir, const char *tz) {
+ FILE *tzmapf;
+ char mapfilename[PATH_MAX+1];
+ char line[256];
+ int linecount = 0;
+ char temp[100], *temp_tz;
+ char *javatz = NULL;
+ char *str_tmp = NULL;
+ size_t temp_tz_len = 0;
+
+ /* On AIX, the TZ environment variable may end with a comma
+ * followed by modifier fields. These are ignored here.
+ */
+ strncpy(temp, tz, 100);
+ temp_tz = strtok_r(temp, ",", &str_tmp);
+
+ if(temp_tz == NULL)
+ goto tzerr;
+
+ temp_tz_len = strlen(temp_tz);
+
+ if (strlen(java_home_dir) >= (PATH_MAX - 15)) {
+ jio_fprintf(stderr, "java.home longer than maximum path length \n");
+ goto tzerr;
+ }
+
+ strncpy(mapfilename, java_home_dir, PATH_MAX);
+ strcat(mapfilename, "/lib/tzmappings");
+
+ if ((tzmapf = fopen(mapfilename, "r")) == NULL) {
+ jio_fprintf(stderr, "can't open %s\n", mapfilename);
+ goto tzerr;
+ }
+
+ while (fgets(line, sizeof(line), tzmapf) != NULL) {
+ char *p = line;
+ char *sol = line;
+ char *java;
+ int result;
+
+ linecount++;
+ /*
+ * Skip comments and blank lines
+ */
+ if (*p == '#' || *p == '\n') {
+ continue;
+ }
+
+ /*
+ * Get the first field, platform zone ID
+ */
+ while (*p != '\0' && *p != '\t') {
+ p++;
+ }
+ if (*p == '\0') {
+ /* mapping table is broken! */
+ jio_fprintf(stderr, "tzmappings: Illegal format at near line %d.\n", linecount);
+ break;
+ }
+
+ *p++ = '\0';
+ if ((result = strncmp(temp_tz, sol, temp_tz_len)) == 0) {
+ /*
+ * If this is the current platform zone ID,
+ * take the Java time zone ID (2nd field).
+ */
+ java = p;
+ while (*p != '\0' && *p != '\n') {
+ p++;
+ }
+
+ if (*p == '\0') {
+ /* mapping table is broken! */
+ jio_fprintf(stderr, "tzmappings: Illegal format at line %d.\n", linecount);
+ break;
+ }
+
+ *p = '\0';
+ javatz = strdup(java);
+ break;
+ } else if (result < 0) {
+ break;
+ }
+ }
+ (void) fclose(tzmapf);
+
+tzerr:
+ if (javatz == NULL) {
+ return getGMTOffsetID();
+ }
+
+ return javatz;
+}
+#endif
+
diff --git a/src/windows/native/sun/windows/awt_TextField.cpp b/src/windows/native/sun/windows/awt_TextField.cpp
index c6d3f21ae..b37b5c745 100644
--- a/src/windows/native/sun/windows/awt_TextField.cpp
+++ b/src/windows/native/sun/windows/awt_TextField.cpp
@@ -200,7 +200,10 @@ AwtTextField::HandleEvent(MSG *msg, BOOL synthetic)
si.cbSize = sizeof(si);
si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;
+ SendMessage(EM_SHOWSCROLLBAR, SB_HORZ, TRUE);
VERIFY(::GetScrollInfo(GetHWnd(), SB_HORZ, &si));
+ SendMessage(EM_SHOWSCROLLBAR, SB_HORZ, FALSE);
+
if (bScrollLeft == TRUE) {
si.nPos = si.nPos - si.nPage / 2;
si.nPos = max(si.nMin, si.nPos);