--- a/jdk/make/sun/nio/cs/FILES_java.gmk Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/make/sun/nio/cs/FILES_java.gmk Fri Nov 19 13:35:07 2010 +0000
@@ -85,6 +85,7 @@
sun/io/ByteToCharCp500.java \
sun/io/ByteToCharCp737.java \
sun/io/ByteToCharCp775.java \
+ sun/io/ByteToCharCp833.java \
sun/io/ByteToCharCp834.java \
sun/io/ByteToCharCp838.java \
sun/io/ByteToCharCp850.java \
@@ -214,6 +215,7 @@
sun/io/CharToByteCp500.java \
sun/io/CharToByteCp737.java \
sun/io/CharToByteCp775.java \
+ sun/io/CharToByteCp833.java \
sun/io/CharToByteCp834.java \
sun/io/CharToByteCp838.java \
sun/io/CharToByteCp850.java \
@@ -331,6 +333,7 @@
sun/nio/cs/ext/IBM420.java \
sun/nio/cs/ext/IBM424.java \
sun/nio/cs/ext/IBM500.java \
+ sun/nio/cs/ext/IBM833.java \
sun/nio/cs/ext/IBM838.java \
sun/nio/cs/ext/IBM856.java \
sun/nio/cs/ext/IBM860.java \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/IBM833.c2b Fri Nov 19 13:35:07 2010 +0000
@@ -0,0 +1,94 @@
+0x5A U+FF01
+0x7F U+FF02
+0x7B U+FF03
+0x5B U+FF04
+0x6C U+FF05
+0x50 U+FF06
+0x7D U+FF07
+0x4D U+FF08
+0x5D U+FF09
+0x5C U+FF0A
+0x4E U+FF0B
+0x6B U+FF0C
+0x60 U+FF0D
+0x4B U+FF0E
+0x61 U+FF0F
+0xF0 U+FF10
+0xF1 U+FF11
+0xF2 U+FF12
+0xF3 U+FF13
+0xF4 U+FF14
+0xF5 U+FF15
+0xF6 U+FF16
+0xF7 U+FF17
+0xF8 U+FF18
+0xF9 U+FF19
+0x7A U+FF1A
+0x5E U+FF1B
+0x4C U+FF1C
+0x7E U+FF1D
+0x6E U+FF1E
+0x6F U+FF1F
+0x7C U+FF20
+0xC1 U+FF21
+0xC2 U+FF22
+0xC3 U+FF23
+0xC4 U+FF24
+0xC5 U+FF25
+0xC6 U+FF26
+0xC7 U+FF27
+0xC8 U+FF28
+0xC9 U+FF29
+0xD1 U+FF2A
+0xD2 U+FF2B
+0xD3 U+FF2C
+0xD4 U+FF2D
+0xD5 U+FF2E
+0xD6 U+FF2F
+0xD7 U+FF30
+0xD8 U+FF31
+0xD9 U+FF32
+0xE2 U+FF33
+0xE3 U+FF34
+0xE4 U+FF35
+0xE5 U+FF36
+0xE6 U+FF37
+0xE7 U+FF38
+0xE8 U+FF39
+0xE9 U+FF3A
+0x70 U+FF3B
+0xB2 U+FF3C
+0x80 U+FF3D
+0xB0 U+FF3E
+0x6D U+FF3F
+0x79 U+FF40
+0x81 U+FF41
+0x82 U+FF42
+0x83 U+FF43
+0x84 U+FF44
+0x85 U+FF45
+0x86 U+FF46
+0x87 U+FF47
+0x88 U+FF48
+0x89 U+FF49
+0x91 U+FF4A
+0x92 U+FF4B
+0x93 U+FF4C
+0x94 U+FF4D
+0x95 U+FF4E
+0x96 U+FF4F
+0x97 U+FF50
+0x98 U+FF51
+0x99 U+FF52
+0xA2 U+FF53
+0xA3 U+FF54
+0xA4 U+FF55
+0xA5 U+FF56
+0xA6 U+FF57
+0xA7 U+FF58
+0xA8 U+FF59
+0xA9 U+FF5A
+0xC0 U+FF5B
+0x4F U+FF5C
+0xD0 U+FF5D
+0xA1 U+FF5E
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/IBM833.map Fri Nov 19 13:35:07 2010 +0000
@@ -0,0 +1,217 @@
+0x00 U+0000
+0x01 U+0001
+0x02 U+0002
+0x03 U+0003
+0x37 U+0004
+0x2D U+0005
+0x2E U+0006
+0x2F U+0007
+0x16 U+0008
+0x05 U+0009
+0x25 U+000A
+0x0B U+000B
+0x0C U+000C
+0x0D U+000D
+0x0E U+000E
+0x0F U+000F
+0x10 U+0010
+0x11 U+0011
+0x12 U+0012
+0x13 U+0013
+0x3C U+0014
+0x3D U+0015
+0x32 U+0016
+0x26 U+0017
+0x18 U+0018
+0x19 U+0019
+0x3F U+001A
+0x27 U+001B
+0x1C U+001C
+0x1D U+001D
+0x1E U+001E
+0x1F U+001F
+0x40 U+0020
+0x5A U+0021
+0x7F U+0022
+0x7B U+0023
+0x5B U+0024
+0x6C U+0025
+0x50 U+0026
+0x7D U+0027
+0x4D U+0028
+0x5D U+0029
+0x5C U+002A
+0x4E U+002B
+0x6B U+002C
+0x60 U+002D
+0x4B U+002E
+0x61 U+002F
+0xF0 U+0030
+0xF1 U+0031
+0xF2 U+0032
+0xF3 U+0033
+0xF4 U+0034
+0xF5 U+0035
+0xF6 U+0036
+0xF7 U+0037
+0xF8 U+0038
+0xF9 U+0039
+0x7A U+003A
+0x5E U+003B
+0x4C U+003C
+0x7E U+003D
+0x6E U+003E
+0x6F U+003F
+0x7C U+0040
+0xC1 U+0041
+0xC2 U+0042
+0xC3 U+0043
+0xC4 U+0044
+0xC5 U+0045
+0xC6 U+0046
+0xC7 U+0047
+0xC8 U+0048
+0xC9 U+0049
+0xD1 U+004A
+0xD2 U+004B
+0xD3 U+004C
+0xD4 U+004D
+0xD5 U+004E
+0xD6 U+004F
+0xD7 U+0050
+0xD8 U+0051
+0xD9 U+0052
+0xE2 U+0053
+0xE3 U+0054
+0xE4 U+0055
+0xE5 U+0056
+0xE6 U+0057
+0xE7 U+0058
+0xE8 U+0059
+0xE9 U+005A
+0x70 U+005B
+0xB2 U+005C
+0x80 U+005D
+0xB0 U+005E
+0x6D U+005F
+0x79 U+0060
+0x81 U+0061
+0x82 U+0062
+0x83 U+0063
+0x84 U+0064
+0x85 U+0065
+0x86 U+0066
+0x87 U+0067
+0x88 U+0068
+0x89 U+0069
+0x91 U+006A
+0x92 U+006B
+0x93 U+006C
+0x94 U+006D
+0x95 U+006E
+0x96 U+006F
+0x97 U+0070
+0x98 U+0071
+0x99 U+0072
+0xA2 U+0073
+0xA3 U+0074
+0xA4 U+0075
+0xA5 U+0076
+0xA6 U+0077
+0xA7 U+0078
+0xA8 U+0079
+0xA9 U+007A
+0xC0 U+007B
+0x4F U+007C
+0xD0 U+007D
+0xA1 U+007E
+0x07 U+007F
+0x20 U+0080
+0x21 U+0081
+0x22 U+0082
+0x23 U+0083
+0x24 U+0084
+0x15 U+0085
+0x06 U+0086
+0x17 U+0087
+0x28 U+0088
+0x29 U+0089
+0x2A U+008A
+0x2B U+008B
+0x2C U+008C
+0x09 U+008D
+0x0A U+008E
+0x1B U+008F
+0x30 U+0090
+0x31 U+0091
+0x1A U+0092
+0x33 U+0093
+0x34 U+0094
+0x35 U+0095
+0x36 U+0096
+0x08 U+0097
+0x38 U+0098
+0x39 U+0099
+0x3A U+009A
+0x3B U+009B
+0x04 U+009C
+0x14 U+009D
+0x3E U+009E
+0xFF U+009F
+0x4A U+00A2
+0x6A U+00A6
+0x5F U+00AC
+0xA0 U+203E
+0xE0 U+20A9
+0x42 U+FFA0
+0x43 U+FFA1
+0x44 U+FFA2
+0x45 U+FFA3
+0x46 U+FFA4
+0x47 U+FFA5
+0x48 U+FFA6
+0x49 U+FFA7
+0x52 U+FFA8
+0x53 U+FFA9
+0x54 U+FFAA
+0x55 U+FFAB
+0x56 U+FFAC
+0x57 U+FFAD
+0x58 U+FFAE
+0x59 U+FFAF
+0x62 U+FFB0
+0x63 U+FFB1
+0x64 U+FFB2
+0x65 U+FFB3
+0x66 U+FFB4
+0x67 U+FFB5
+0x68 U+FFB6
+0x69 U+FFB7
+0x72 U+FFB8
+0x73 U+FFB9
+0x74 U+FFBA
+0x75 U+FFBB
+0x76 U+FFBC
+0x77 U+FFBD
+0x78 U+FFBE
+0x8A U+FFC2
+0x8B U+FFC3
+0x8C U+FFC4
+0x8D U+FFC5
+0x8E U+FFC6
+0x8F U+FFC7
+0x9A U+FFCA
+0x9B U+FFCB
+0x9C U+FFCC
+0x9D U+FFCD
+0x9E U+FFCE
+0x9F U+FFCF
+0xAA U+FFD2
+0xAB U+FFD3
+0xAC U+FFD4
+0xAD U+FFD5
+0xAE U+FFD6
+0xAF U+FFD7
+0xBA U+FFDA
+0xBB U+FFDB
+0xBC U+FFDC
--- a/jdk/make/tools/CharsetMapping/extsbcs Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/make/tools/CharsetMapping/extsbcs Fri Nov 19 13:35:07 2010 +0000
@@ -32,6 +32,7 @@
IBM420 IBM420 Cp420 false sun.nio.cs.ext
IBM424 IBM424 Cp424 false sun.nio.cs.ext
IBM500 IBM500 Cp500 false sun.nio.cs.ext
+IBM833 IBM833 Cp833 false sun.nio.cs.ext
IBM838 IBM-Thai Cp838 false sun.nio.cs.ext
IBM856 x-IBM856 Cp856 false sun.nio.cs.ext
IBM860 IBM860 Cp860 false sun.nio.cs.ext
--- a/jdk/src/share/classes/java/nio/StringCharBuffer.java Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/src/share/classes/java/nio/StringCharBuffer.java Fri Nov 19 13:35:07 2010 +0000
@@ -47,7 +47,7 @@
0,
this.remaining(),
this.remaining(),
- this.position());
+ offset + this.position());
}
private StringCharBuffer(CharSequence s,
--- a/jdk/src/share/classes/java/util/Formatter.java Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/src/share/classes/java/util/Formatter.java Fri Nov 19 13:35:07 2010 +0000
@@ -1581,6 +1581,7 @@
* instance of the Java virtual machine.
*
* <tr><td valign="top">{@code 'Z'}
+ * <td valign="top"> <tt>'\u005a'</tt>
* <td> A string representing the abbreviation for the time zone. This
* value will be adjusted as necessary for Daylight Saving Time. For
* {@code long}, {@link Long}, and {@link Date} the time zone used is
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/io/ByteToCharCp833.java Fri Nov 19 13:35:07 2010 +0000
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2010 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.
+ */
+
+package sun.io;
+
+import sun.nio.cs.ext.IBM833;
+
+public class ByteToCharCp833 extends ByteToCharSingleByte {
+
+ private final static IBM833 nioCoder = new IBM833();
+
+ public String getCharacterEncoding() {
+ return "Cp833";
+ }
+
+ public ByteToCharCp833() {
+ super.byteToCharTable = nioCoder.getDecoderSingleByteMappings();
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/io/CharToByteCp833.java Fri Nov 19 13:35:07 2010 +0000
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2010 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.
+ */
+
+package sun.io;
+
+import sun.nio.cs.ext.IBM833;
+
+public class CharToByteCp833 extends CharToByteSingleByte {
+
+ private final static IBM833 nioCoder = new IBM833();
+
+ public String getCharacterEncoding() {
+ return "Cp833";
+ }
+
+ public CharToByteCp833() {
+ super.mask1 = 0xFF00;
+ super.mask2 = 0x00FF;
+ super.shift = 8;
+ super.index1 = nioCoder.getEncoderIndex1();
+ super.index2 = nioCoder.getEncoderIndex2();
+ }
+}
+
--- a/jdk/src/share/classes/sun/io/CharacterEncoding.java Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/src/share/classes/sun/io/CharacterEncoding.java Fri Nov 19 13:35:07 2010 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, 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
@@ -406,6 +406,11 @@
aliasTable.put("cp775", "Cp775");
aliasTable.put("775", "Cp775");
+ aliasTable.put("ibm833", "Cp833");
+ aliasTable.put("ibm-833", "Cp833");
+ aliasTable.put("cp833", "Cp833");
+ aliasTable.put("833", "Cp833");
+
aliasTable.put("ibm834", "Cp834");
aliasTable.put("ibm-834", "Cp834");
aliasTable.put("cp834", "Cp834");
--- a/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Fri Nov 19 13:35:07 2010 +0000
@@ -778,6 +778,13 @@
"csIBM500"
});
+ charset("x-IBM833", "IBM833",
+ new String[] {
+ "cp833",
+ "ibm833",
+ "ibm-833"
+ });
+
//EBCDIC DBCS-only Korean
charset("x-IBM834", "IBM834",
new String[] {
--- a/jdk/test/ProblemList.txt Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/test/ProblemList.txt Fri Nov 19 13:35:07 2010 +0000
@@ -734,10 +734,6 @@
# Problems on windows, jmap.exe hangs? (these run jmap), fails on Solaris 10 x86
java/util/concurrent/locks/Lock/TimedAcquireLeak.java generic-all
-# Solaris sparc client, some failures, "1 not equal to 3"?
-# also Linux problems with samevm mode, -server linux i586? 1 not equal to 3?
-java/util/concurrent/Executors/AutoShutdown.java generic-all
-
# Fails on solaris-sparc -server (Set not equal to copy. 1)
java/util/EnumSet/EnumSetBash.java solaris-sparc
--- a/jdk/test/java/nio/Buffer/StringCharBufferSliceTest.java Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/test/java/nio/Buffer/StringCharBufferSliceTest.java Fri Nov 19 13:35:07 2010 +0000
@@ -22,7 +22,7 @@
*/
/* @test
- * @bug 4997655
+ * @bug 4997655 7000913
* @summary (bf) CharBuffer.slice() on wrapped CharSequence results in wrong position
*/
@@ -76,11 +76,26 @@
}
System.out.println(
+ ">>> StringCharBufferSliceTest-main: testing slice with result of slice");
+ buff.position(0);
+ buff.limit(buff.capacity());
+ slice = buff.slice();
+ for (int i=0; i<4; i++) {
+ slice.position(i);
+ CharBuffer nextSlice = slice.slice();
+ if (nextSlice.position() != 0)
+ throw new RuntimeException("New buffer's position should be zero");
+ if (!nextSlice.equals(slice))
+ throw new RuntimeException("New buffer should be equal");
+ slice = nextSlice;
+ }
+
+ System.out.println(
">>> StringCharBufferSliceTest-main: testing toString.");
buff.position(4);
buff.limit(7);
slice = buff.slice();
- if (! slice.toString().equals("tes")) {
+ if (!slice.toString().equals("tes")) {
throw new RuntimeException("bad toString() after slice(): " + slice.toString());
}
@@ -104,6 +119,7 @@
|| dupe.charAt(2) != 's' || dupe.charAt(3) != 't') {
throw new RuntimeException("bad duplicate() after slice(): '" + dupe + "'");
}
+
System.out.println(">>> StringCharBufferSliceTest-main: done!");
}
--- a/jdk/test/java/util/concurrent/Executors/AutoShutdown.java Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/test/java/util/concurrent/Executors/AutoShutdown.java Fri Nov 19 13:35:07 2010 +0000
@@ -32,21 +32,40 @@
import java.util.*;
import java.util.concurrent.*;
import static java.util.concurrent.Executors.*;
+import java.util.concurrent.Phaser;
public class AutoShutdown {
- private static void waitForFinalizersToRun() throws Throwable {
- System.gc(); System.runFinalization(); Thread.sleep(10);
- System.gc(); System.runFinalization(); Thread.sleep(10);
+ private static void waitForFinalizersToRun() {
+ for (int i = 0; i < 2; i++)
+ tryWaitForFinalizersToRun();
+ }
+
+ private static void tryWaitForFinalizersToRun() {
+ System.gc();
+ final CountDownLatch fin = new CountDownLatch(1);
+ new Object() { protected void finalize() { fin.countDown(); }};
+ System.gc();
+ try { fin.await(); }
+ catch (InterruptedException ie) { throw new Error(ie); }
}
private static void realMain(String[] args) throws Throwable {
- Runnable trivialRunnable = new Runnable() { public void run() {}};
+ final Phaser phaser = new Phaser(3);
+ Runnable trivialRunnable = new Runnable() {
+ public void run() {
+ phaser.arriveAndAwaitAdvance();
+ }
+ };
int count0 = Thread.activeCount();
- newSingleThreadExecutor().execute(trivialRunnable);
- newSingleThreadExecutor(defaultThreadFactory()).execute(trivialRunnable);
- Thread.sleep(100);
+ Executor e1 = newSingleThreadExecutor();
+ Executor e2 = newSingleThreadExecutor(defaultThreadFactory());
+ e1.execute(trivialRunnable);
+ e2.execute(trivialRunnable);
+ phaser.arriveAndAwaitAdvance();
equal(Thread.activeCount(), count0 + 2);
- waitForFinalizersToRun();
+ e1 = e2 = null;
+ for (int i = 0; i < 10 && Thread.activeCount() > count0; i++)
+ tryWaitForFinalizersToRun();
equal(Thread.activeCount(), count0);
}
--- a/jdk/test/sun/nio/cs/CheckHistoricalNames.java Fri Nov 19 13:30:02 2010 +0000
+++ b/jdk/test/sun/nio/cs/CheckHistoricalNames.java Fri Nov 19 13:35:07 2010 +0000
@@ -22,7 +22,7 @@
*/
/* @test
- @bug 4513767 4961027
+ @bug 4513767 4961027 6217210
@summary Checks canonical names match between old and (NIO) core charsets
*/
import java.io.InputStreamReader;
@@ -154,6 +154,7 @@
checkHistoricalName("Cp500");
checkHistoricalName("Cp737");
checkHistoricalName("Cp775");
+ checkHistoricalName("Cp833");
checkHistoricalName("Cp838");
checkHistoricalName("Cp850");
checkHistoricalName("Cp852");
@@ -228,6 +229,7 @@
checkMappedName("IBM856", "Cp856");
checkMappedName("IBM857", "Cp857");
checkMappedName("IBM00858", "Cp858");
+ checkMappedName("IBM833", "Cp833");
checkMappedName("IBM860", "Cp860");
checkMappedName("IBM861", "Cp861");
checkMappedName("IBM862", "Cp862");