1 /* 2 * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * @test 26 * @bug 4804273 27 * @modules jdk.localedata 28 * @summary updating collation tables for swedish 29 */ 30 31 import java.text.Collator; 32 import java.util.Arrays; 33 import java.util.Locale; 34 35 public class Bug4804273 { 36 37 /******************************************************** 38 *********************************************************/ 39 public static void main (String[] args) { 40 Locale reservedLocale = Locale.getDefault(); 41 try { 42 int errors=0; 43 44 Locale loc = new Locale ("sv", "se"); // Swedish 45 46 Locale.setDefault (loc); 47 Collator col = Collator.getInstance (); 48 49 String[] data = {"A", 50 "Aa", 51 "Ae", 52 "B", 53 "Y", 54 "U\u0308", // U-umlaut 55 "Z", 56 "A\u030a", // A-ring 57 "A\u0308", // A-umlaut 58 "\u00c6", // AE ligature 59 "O\u0308", // O-umlaut 60 "a\u030b", // a-double-acute 61 "\u00d8", // O-stroke 62 "a", 63 "aa", 64 "ae", 65 "b", 66 "y", 67 "u\u0308", // u-umlaut 68 "z", 69 "A\u030b", // A-double-acute 70 "a\u030a", // a-ring 71 "a\u0308", // a-umlaut 72 "\u00e6", // ae ligature 73 "o\u0308", // o-umlaut 74 "\u00f8", // o-stroke 75 }; 76 77 78 String[] sortedData = {"a", 79 "A", 80 "aa", 81 "Aa", 82 "ae", 83 "Ae", 84 "b", 85 "B", 86 "y", 87 "Y", 88 "u\u0308", // o-umlaut 89 "U\u0308", // o-umlaut 90 "z", 91 "Z", 92 "a\u030a", // a-ring 93 "A\u030a", // A-ring 94 "a\u0308", // a-umlaut 95 "A\u0308", // A-umlaut 96 "a\u030b", // a-double-acute 97 "A\u030b", // A-double-acute 98 "\u00e6", // ae ligature 99 "\u00c6", // AE ligature 100 "o\u0308", // o-umlaut 101 "O\u0308", // O-umlaut 102 "\u00f8", // o-stroke 103 "\u00d8", // O-stroke 104 }; 105 106 Arrays.sort (data, col); 107 108 System.out.println ("Using " + loc.getDisplayName()); 109 for (int i = 0; i < data.length; i++) { 110 System.out.println(data[i] + " : " + sortedData[i]); 111 if (sortedData[i].compareTo(data[i]) != 0) { 112 errors++; 113 } 114 }//end for 115 116 if (errors > 0) 117 throw new RuntimeException("There are " + errors + 118 " words sorted incorrectly!"); 119 } finally { 120 // restore the reserved locale 121 Locale.setDefault(reservedLocale); 122 } 123 }//end main 124 125 }//end class CollatorTest