diff options
author | asaha <none@none> | 2014-06-03 08:32:34 -0700 |
---|---|---|
committer | asaha <none@none> | 2014-06-03 08:32:34 -0700 |
commit | 0a5a6e7371a08cfe5a3e43931502418502db07ad (patch) | |
tree | 32d58c710386f626f52f4c674d2c180596e055aa /src | |
parent | 7e658e15c1e27a99668f5c5233ee09e81cfd9f11 (diff) | |
parent | 57ac5a110f8b4dfeb6d3305b2d35887066b9be04 (diff) |
Merge
Diffstat (limited to 'src')
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); |