changeset 5830:4e02c64fce9e

manual merge of diffs from jdk8 mainline
author mduigou
date Mon, 30 Jul 2012 14:36:59 -0700
parents 2fd2a7092fe1
children 672840919e17
files make/common/Defs.gmk make/common/Release.gmk make/common/shared/Defs-java.gmk make/common/shared/Sanity.gmk make/java/nio/FILES_java.gmk make/java/nio/Makefile make/java/sun_nio/FILES_java.gmk make/netbeans/common/README-ent make/sun/nio/cs/FILES_java.gmk make/tools/CharsetMapping/DoubleByte-X.java.template make/tools/CharsetMapping/JIS_X_0201.map make/tools/CharsetMapping/dbcs make/tools/CharsetMapping/extsbcs make/tools/src/build/tools/charsetmapping/DBCS.java make/tools/src/build/tools/charsetmapping/SBCS.java
diffstat 15 files changed, 255 insertions(+), 301 deletions(-) [+]
line wrap: on
line diff
--- a/make/common/Defs.gmk	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/common/Defs.gmk	Mon Jul 30 14:36:59 2012 -0700
@@ -165,7 +165,7 @@
   DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(PLATFORM)/freetype-$(ARCH)
 endif
 ifeq ($(PLATFORM), solaris)
-  # historically for Solaris we have slightly different devtools
+  # historically for Solaris we have slightly different devtools 
   # naming conventions
   DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/freetype-$(ARCH)
 endif
@@ -193,7 +193,7 @@
       endif
       USING_SYSTEM_FT_LIB=true
     endif
-  endif
+  endif 
 
   ifdef ALT_FREETYPE_HEADERS_PATH
     FREETYPE_HEADERS_PATH = $(ALT_FREETYPE_HEADERS_PATH)
@@ -215,6 +215,7 @@
 #
 ZLIB_VERSION = 1.2.5
 
+
 #
 # Localizations for the different parts of the product beyond English
 #
@@ -313,8 +314,8 @@
 DOCSDIR             = $(OUTPUTDIR)/docs$(DOCSDIRSUFFIX)
 DOCSDIRSUFFIX       =
 
-# The MESSAGE, WARNING and ERROR files are used to store sanityck and
-# warnings and errors.
+# The MESSAGE, WARNING and ERROR files are used to store sanityck and 
+# warnings and errors. 
 ifndef ERROR_FILE
   ERROR_FILE   = $(OUTPUTDIR)/sanityCheckErrors.txt
 endif
@@ -336,7 +337,7 @@
 
 # An attempt is made to generate unique enough directories for the
 # generated files to not have name collisisons. Most build units
-# defines PRODUCT (except Release.gmk), but then they may or may
+# defines PRODUCT (except Release.gmk), but then they may or may 
 # not define PACKAGE, PROGRAM, and LIBRARY. This code attempts to
 # generate a unique OBJDIR/CLASSHDRDIR for each build unit based
 # on which of those values are set within each build unit.
@@ -363,7 +364,7 @@
   endif
 endif
 
-# the use of += above makes a space separated list which we need to
+# the use of += above makes a space separated list which we need to 
 # remove for filespecs.
 #
 NULLSTRING :=
@@ -381,7 +382,7 @@
 dummy2:=$(shell $(MKDIR) -p $(TEMP_DISK))
 
 # OBJDIRNAME is the name of the directory where the object code is to
-#   be placed. It's name depends on whether the data model architecture
+#   be placed. It's name depends on whether the data model architecture 
 #   is 32-bit or not.
 ifneq ($(ARCH_DATA_MODEL), 32)
   OBJDIRNAME  = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
@@ -440,7 +441,7 @@
 vpath %.$(OBJECT_SUFFIX) $(OBJDIR)
 
 #
-# VPATH.h is used elsewhere to generate include flags.  By default,
+# VPATH.h is used elsewhere to generate include flags.  By default, 
 # anyone has access to the include files that the JVM area exports,
 # namely jni.h, jvm.h, and jni_utils.h, plus their platform-specific
 # relatives.
--- a/make/common/Release.gmk	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/common/Release.gmk	Mon Jul 30 14:36:59 2012 -0700
@@ -252,6 +252,7 @@
          identify-image-jre identify-image-jdk \
 	 process-image-jre process-image-jdk sec-files sec-files-win jgss-files 
 endif
+
 # Don't use these
 image-jre:: initial-image-jre trim-image-jre identify-image-jre process-image-jre
 image-jdk:: initial-image-jdk trim-image-jdk identify-image-jdk process-image-jdk
@@ -511,7 +512,8 @@
 
 $(JDK_IMAGE_DIR)/sample/SAMPLES_LICENSE: $(SHARE_JDK_DOC_SRC)/SAMPLES_LICENSE
 	$(process-doc-file)
-# JRE files 
+
+# JRE files
 $(JRE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/%
 	$(process-doc-file)
 ifeq ($(PLATFORM), windows)
@@ -738,8 +740,8 @@
 $(RT_JAR): $(RT_JAR_FILELIST) $(RT_JAR_MANIFEST_FILE)
 	$(prep-target)
 	$(CD) $(CLASSBINDIR) && \
-		$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \
-		    @$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS)
+	    $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \
+	        @$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS)
 	@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
 
 # Meta-index construction to make core class loaders lazier
--- a/make/common/shared/Defs-java.gmk	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/common/shared/Defs-java.gmk	Mon Jul 30 14:36:59 2012 -0700
@@ -120,12 +120,17 @@
   JAVACFLAGS += -g
 endif
 ifeq ($(JAVAC_MAX_WARNINGS), true)
-  JAVACFLAGS  += -Xlint:all,-deprecation
+  JAVAC_LINT_OPTIONS += -Xlint:all
 endif
 ifeq ($(JAVAC_WARNINGS_FATAL), true)
   JAVACFLAGS  += -Werror
 endif
 
+# TODO: Workaround for CR 7063027. Remove -path eventually.
+JAVAC_LINT_OPTIONS += -Xlint:-path
+
+JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
+
 #
 # Some licensees do not get the Security Source bundles.  We will
 # fall back on the prebuilt jce.jar so that we can do a best
@@ -215,9 +220,7 @@
 # The javac options supplied to the boot javac is limited. This compiler
 #   should only be used to build the 'make/tools' sources, which are not
 #   class files that end up in the classes directory.
-ifeq ($(JAVAC_MAX_WARNINGS), true)
-  BOOT_JAVACFLAGS  += -Xlint:all
-endif
+BOOT_JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
 ifeq ($(JAVAC_WARNINGS_FATAL), true)
   BOOT_JAVACFLAGS  += -Werror
 endif
@@ -241,3 +244,4 @@
 
 # Should not be used
 JAVA		= /should/not/be/used
+
--- a/make/common/shared/Sanity.gmk	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/common/shared/Sanity.gmk	Mon Jul 30 14:36:59 2012 -0700
@@ -1408,22 +1408,6 @@
 	fi
 endif
 
-######################################################
-# Check that virtual extension method wever exists.
-######################################################
-
-
-sane-weaver:
-	@if [ ! -r  $(DEFENDER_WEAVER_DIR)/distrib/jsr335-agent.jar ] ; then \
-	  $(ECHO) "WARNING: File $(DEFENDER_WEAVER_DIR)/distrib/jsr335-agent.jar does not exist.\n" \
-	    "        The rt.jar will not be woven and virtual extension methods will not be resolved.\n" \
-	    "        Please check your access to\n" \
-	    "          $(DEFENDER_WEAVER_DIR)/distrib/jsr335-agent.ja\n" \
-	    "        and/or check your value of ALT_DEFENDER_WEAVER_DIR.\n" \
-	    "" >> $(WARNING_FILE) ; \
-	 fi
-
-
 # If a sanity file doesn't exist, just make sure it's dir exists
 $(SANITY_FILES):
 	-@$(prep-target)
--- a/make/java/nio/FILES_java.gmk	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/java/nio/FILES_java.gmk	Mon Jul 30 14:36:59 2012 -0700
@@ -221,8 +221,6 @@
 	sun/nio/cs/HistoricallyNamedCharset.java \
 	sun/nio/cs/ISO_8859_1.java \
 	sun/nio/cs/SingleByte.java \
-	sun/nio/cs/SingleByteDecoder.java \
-	sun/nio/cs/SingleByteEncoder.java \
 	sun/nio/cs/StreamEncoder.java \
 	sun/nio/cs/StreamDecoder.java \
 	sun/nio/cs/Surrogate.java \
--- a/make/java/nio/Makefile	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/java/nio/Makefile	Mon Jul 30 14:36:59 2012 -0700
@@ -282,6 +282,9 @@
 	sun/nio/fs/BsdFileSystem.java \
 	sun/nio/fs/BsdFileSystemProvider.java \
 	sun/nio/fs/BsdNativeDispatcher.java \
+	sun/nio/fs/MacOSXFileSystemProvider.java \
+	sun/nio/fs/MacOSXFileSystem.java \
+	sun/nio/fs/MacOSXNativeDispatcher.java \
 	sun/nio/fs/PollingWatchService.java \
 	sun/nio/fs/UnixChannelFactory.java \
 	sun/nio/fs/UnixCopyFile.java \
@@ -311,6 +314,7 @@
 	\
 	GnomeFileTypeDetector.c \
 	BsdNativeDispatcher.c \
+	MacOSXNativeDispatcher.c \
 	UnixCopyFile.c \
 	UnixNativeDispatcher.c \
 	\
@@ -385,7 +389,7 @@
 OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH) -ljava -lnet -lpthread $(LIBDL)
 endif
 ifeq ($(PLATFORM), macosx)
-OTHER_LDLIBS += -L$(LIBDIR) -ljava -lnet -pthread
+OTHER_LDLIBS += -L$(LIBDIR) -ljava -lnet -pthread -framework CoreFoundation
 endif
 ifeq ($(PLATFORM), solaris)
 OTHER_LDLIBS += $(JVMLIB) $(LIBSOCKET) -lposix4 $(LIBDL) -lsendfile \
--- a/make/java/sun_nio/FILES_java.gmk	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/java/sun_nio/FILES_java.gmk	Mon Jul 30 14:36:59 2012 -0700
@@ -34,8 +34,6 @@
     sun/nio/cs/HistoricallyNamedCharset.java \
     sun/nio/cs/Surrogate.java \
     sun/nio/cs/CharsetMapping.java \
-    sun/nio/cs/SingleByteEncoder.java \
-    sun/nio/cs/SingleByteDecoder.java \
     sun/nio/cs/UnicodeEncoder.java \
     sun/nio/cs/UnicodeDecoder.java \
     sun/nio/cs/ISO_8859_1.java \
--- a/make/netbeans/common/README-ent	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/netbeans/common/README-ent	Mon Jul 30 14:36:59 2012 -0700
@@ -21,6 +21,5 @@
 resources, etc. are placed.
 
 java-data-native.ent, java-data-no-native.ent: These define information about
-the location of classes and sources of native and common components, where
-"native" is suggestive of "platform specific", that is, non-WORA Java source
-code.
+the location of classes and sources of native and non-native projects, where
+"native" is suggestive of "native code", that is, non-Java source code.
--- a/make/sun/nio/cs/FILES_java.gmk	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/sun/nio/cs/FILES_java.gmk	Mon Jul 30 14:36:59 2012 -0700
@@ -127,7 +127,17 @@
 	sun/nio/cs/ext/MS949.java \
 	sun/nio/cs/ext/MS950.java \
 	sun/nio/cs/ext/GBK.java   \
-	sun/nio/cs/ext/Big5.java
+	sun/nio/cs/ext/Big5.java  \
+	sun/nio/cs/ext/SJIS.java  \
+	sun/nio/cs/ext/PCK.java  \
+	sun/nio/cs/ext/JIS_X_0201.java \
+	sun/nio/cs/ext/JIS_X_0208.java \
+	sun/nio/cs/ext/JIS_X_0208_MS5022X.java \
+	sun/nio/cs/ext/JIS_X_0208_MS932.java \
+	sun/nio/cs/ext/JIS_X_0208_Solaris.java \
+	sun/nio/cs/ext/JIS_X_0212.java \
+	sun/nio/cs/ext/JIS_X_0212_MS5022X.java \
+	sun/nio/cs/ext/JIS_X_0212_Solaris.java
 
 FILES_java = $(FILES_src) $(FILES_gen_extcs)
 
--- a/make/tools/CharsetMapping/DoubleByte-X.java.template	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/tools/CharsetMapping/DoubleByte-X.java.template	Mon Jul 30 14:36:59 2012 -0700
@@ -54,7 +54,7 @@
 
     public CharsetEncoder newEncoder() {
         initc2b();
-        return new DoubleByte.Encoder$ENCTYPE$(this, c2b, c2bIndex);
+        return new DoubleByte.Encoder$ENCTYPE$(this, $ENC_REPLACEMENT$ c2b, c2bIndex); 
     }
 
     $B2C$
--- a/make/tools/CharsetMapping/JIS_X_0201.map	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/tools/CharsetMapping/JIS_X_0201.map	Mon Jul 30 14:36:59 2012 -0700
@@ -1,257 +1,192 @@
-#Generated from JIS_X_0201.java
-0x00	U+0000
-0x01	U+0001
-0x02	U+0002
-0x03	U+0003
-0x04	U+0004
-0x05	U+0005
-0x06	U+0006
-0x07	U+0007
-0x08	U+0008
-0x09	U+0009
-0x0a	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
-0x14	U+0014
-0x15	U+0015
-0x16	U+0016
-0x17	U+0017
-0x18	U+0018
-0x19	U+0019
-0x1a	U+001a
-0x1b	U+001b
-0x1c	U+001c
-0x1d	U+001d
-0x1e	U+001e
-0x1f	U+001f
-0x20	U+0020
-0x21	U+0021
-0x22	U+0022
-0x23	U+0023
-0x24	U+0024
-0x25	U+0025
-0x26	U+0026
-0x27	U+0027
-0x28	U+0028
-0x29	U+0029
-0x2a	U+002a
-0x2b	U+002b
-0x2c	U+002c
-0x2d	U+002d
-0x2e	U+002e
-0x2f	U+002f
-0x30	U+0030
-0x31	U+0031
-0x32	U+0032
-0x33	U+0033
-0x34	U+0034
-0x35	U+0035
-0x36	U+0036
-0x37	U+0037
-0x38	U+0038
-0x39	U+0039
-0x3a	U+003a
-0x3b	U+003b
-0x3c	U+003c
-0x3d	U+003d
-0x3e	U+003e
-0x3f	U+003f
-0x40	U+0040
-0x41	U+0041
-0x42	U+0042
-0x43	U+0043
-0x44	U+0044
-0x45	U+0045
-0x46	U+0046
-0x47	U+0047
-0x48	U+0048
-0x49	U+0049
-0x4a	U+004a
-0x4b	U+004b
-0x4c	U+004c
-0x4d	U+004d
-0x4e	U+004e
-0x4f	U+004f
-0x50	U+0050
-0x51	U+0051
-0x52	U+0052
-0x53	U+0053
-0x54	U+0054
-0x55	U+0055
-0x56	U+0056
-0x57	U+0057
-0x58	U+0058
-0x59	U+0059
-0x5a	U+005a
-0x5b	U+005b
-0x5c	U+005c
-0x5d	U+005d
-0x5e	U+005e
-0x5f	U+005f
-0x60	U+0060
-0x61	U+0061
-0x62	U+0062
-0x63	U+0063
-0x64	U+0064
-0x65	U+0065
-0x66	U+0066
-0x67	U+0067
-0x68	U+0068
-0x69	U+0069
-0x6a	U+006a
-0x6b	U+006b
-0x6c	U+006c
-0x6d	U+006d
-0x6e	U+006e
-0x6f	U+006f
-0x70	U+0070
-0x71	U+0071
-0x72	U+0072
-0x73	U+0073
-0x74	U+0074
-0x75	U+0075
-0x76	U+0076
-0x77	U+0077
-0x78	U+0078
-0x79	U+0079
-0x7a	U+007a
-0x7b	U+007b
-0x7c	U+007c
-0x7d	U+007d
-0x7e	U+007e
-0x7f	U+007f
-0x80	U+fffd
-0x81	U+fffd
-0x82	U+fffd
-0x83	U+fffd
-0x84	U+fffd
-0x85	U+fffd
-0x86	U+fffd
-0x87	U+fffd
-0x88	U+fffd
-0x89	U+fffd
-0x8a	U+fffd
-0x8b	U+fffd
-0x8c	U+fffd
-0x8d	U+fffd
-0x8e	U+fffd
-0x8f	U+fffd
-0x90	U+fffd
-0x91	U+fffd
-0x92	U+fffd
-0x93	U+fffd
-0x94	U+fffd
-0x95	U+fffd
-0x96	U+fffd
-0x97	U+fffd
-0x98	U+fffd
-0x99	U+fffd
-0x9a	U+fffd
-0x9b	U+fffd
-0x9c	U+fffd
-0x9d	U+fffd
-0x9e	U+fffd
-0x9f	U+fffd
-0xa0	U+fffd
-0xa1	U+ff61
-0xa2	U+ff62
-0xa3	U+ff63
-0xa4	U+ff64
-0xa5	U+ff65
-0xa6	U+ff66
-0xa7	U+ff67
-0xa8	U+ff68
-0xa9	U+ff69
-0xaa	U+ff6a
-0xab	U+ff6b
-0xac	U+ff6c
-0xad	U+ff6d
-0xae	U+ff6e
-0xaf	U+ff6f
-0xb0	U+ff70
-0xb1	U+ff71
-0xb2	U+ff72
-0xb3	U+ff73
-0xb4	U+ff74
-0xb5	U+ff75
-0xb6	U+ff76
-0xb7	U+ff77
-0xb8	U+ff78
-0xb9	U+ff79
-0xba	U+ff7a
-0xbb	U+ff7b
-0xbc	U+ff7c
-0xbd	U+ff7d
-0xbe	U+ff7e
-0xbf	U+ff7f
-0xc0	U+ff80
-0xc1	U+ff81
-0xc2	U+ff82
-0xc3	U+ff83
-0xc4	U+ff84
-0xc5	U+ff85
-0xc6	U+ff86
-0xc7	U+ff87
-0xc8	U+ff88
-0xc9	U+ff89
-0xca	U+ff8a
-0xcb	U+ff8b
-0xcc	U+ff8c
-0xcd	U+ff8d
-0xce	U+ff8e
-0xcf	U+ff8f
-0xd0	U+ff90
-0xd1	U+ff91
-0xd2	U+ff92
-0xd3	U+ff93
-0xd4	U+ff94
-0xd5	U+ff95
-0xd6	U+ff96
-0xd7	U+ff97
-0xd8	U+ff98
-0xd9	U+ff99
-0xda	U+ff9a
-0xdb	U+ff9b
-0xdc	U+ff9c
-0xdd	U+ff9d
-0xde	U+ff9e
-0xdf	U+ff9f
-0xe0	U+fffd
-0xe1	U+fffd
-0xe2	U+fffd
-0xe3	U+fffd
-0xe4	U+fffd
-0xe5	U+fffd
-0xe6	U+fffd
-0xe7	U+fffd
-0xe8	U+fffd
-0xe9	U+fffd
-0xea	U+fffd
-0xeb	U+fffd
-0xec	U+fffd
-0xed	U+fffd
-0xee	U+fffd
-0xef	U+fffd
-0xf0	U+fffd
-0xf1	U+fffd
-0xf2	U+fffd
-0xf3	U+fffd
-0xf4	U+fffd
-0xf5	U+fffd
-0xf6	U+fffd
-0xf7	U+fffd
-0xf8	U+fffd
-0xf9	U+fffd
-0xfa	U+fffd
-0xfb	U+fffd
-0xfc	U+fffd
-0xfd	U+fffd
-0xfe	U+fffd
-0xff	U+fffd
+#  copy/pasted from JIS_X_0201.b2c + code points 0-0x1f and 0x7f
+0x00    0x0000
+0x01    0x0001
+0x02    0x0002
+0x03    0x0003
+0x04    0x0004
+0x05    0x0005
+0x06    0x0006
+0x07    0x0007
+0x08    0x0008
+0x09    0x0009
+0x0A    0x000A
+0x0B    0x000B
+0x0C    0x000C
+0x0D    0x000D
+0x0E    0x000E
+0x0F    0x000F
+0x10    0x0010
+0x11    0x0011
+0x12    0x0012
+0x13    0x0013
+0x14    0x0014
+0x15    0x0015
+0x16    0x0016
+0x17    0x0017
+0x18    0x0018
+0x19    0x0019
+0x1A    0x001A
+0x1B    0x001B
+0x1C    0x001C
+0x1D    0x001D
+0x1E    0x001E
+0x1F    0x001F
+0x20	0x0020	# SPACE
+0x21	0x0021	# EXCLAMATION MARK
+0x22	0x0022	# QUOTATION MARK
+0x23	0x0023	# NUMBER SIGN
+0x24	0x0024	# DOLLAR SIGN
+0x25	0x0025	# PERCENT SIGN
+0x26	0x0026	# AMPERSAND
+0x27	0x0027	# APOSTROPHE
+0x28	0x0028	# LEFT PARENTHESIS
+0x29	0x0029	# RIGHT PARENTHESIS
+0x2A	0x002A	# ASTERISK
+0x2B	0x002B	# PLUS SIGN
+0x2C	0x002C	# COMMA
+0x2D	0x002D	# HYPHEN-MINUS
+0x2E	0x002E	# FULL STOP
+0x2F	0x002F	# SOLIDUS
+0x30	0x0030	# DIGIT ZERO
+0x31	0x0031	# DIGIT ONE
+0x32	0x0032	# DIGIT TWO
+0x33	0x0033	# DIGIT THREE
+0x34	0x0034	# DIGIT FOUR
+0x35	0x0035	# DIGIT FIVE
+0x36	0x0036	# DIGIT SIX
+0x37	0x0037	# DIGIT SEVEN
+0x38	0x0038	# DIGIT EIGHT
+0x39	0x0039	# DIGIT NINE
+0x3A	0x003A	# COLON
+0x3B	0x003B	# SEMICOLON
+0x3C	0x003C	# LESS-THAN SIGN
+0x3D	0x003D	# EQUALS SIGN
+0x3E	0x003E	# GREATER-THAN SIGN
+0x3F	0x003F	# QUESTION MARK
+0x40	0x0040	# COMMERCIAL AT
+0x41	0x0041	# LATIN CAPITAL LETTER A
+0x42	0x0042	# LATIN CAPITAL LETTER B
+0x43	0x0043	# LATIN CAPITAL LETTER C
+0x44	0x0044	# LATIN CAPITAL LETTER D
+0x45	0x0045	# LATIN CAPITAL LETTER E
+0x46	0x0046	# LATIN CAPITAL LETTER F
+0x47	0x0047	# LATIN CAPITAL LETTER G
+0x48	0x0048	# LATIN CAPITAL LETTER H
+0x49	0x0049	# LATIN CAPITAL LETTER I
+0x4A	0x004A	# LATIN CAPITAL LETTER J
+0x4B	0x004B	# LATIN CAPITAL LETTER K
+0x4C	0x004C	# LATIN CAPITAL LETTER L
+0x4D	0x004D	# LATIN CAPITAL LETTER M
+0x4E	0x004E	# LATIN CAPITAL LETTER N
+0x4F	0x004F	# LATIN CAPITAL LETTER O
+0x50	0x0050	# LATIN CAPITAL LETTER P
+0x51	0x0051	# LATIN CAPITAL LETTER Q
+0x52	0x0052	# LATIN CAPITAL LETTER R
+0x53	0x0053	# LATIN CAPITAL LETTER S
+0x54	0x0054	# LATIN CAPITAL LETTER T
+0x55	0x0055	# LATIN CAPITAL LETTER U
+0x56	0x0056	# LATIN CAPITAL LETTER V
+0x57	0x0057	# LATIN CAPITAL LETTER W
+0x58	0x0058	# LATIN CAPITAL LETTER X
+0x59	0x0059	# LATIN CAPITAL LETTER Y
+0x5A	0x005A	# LATIN CAPITAL LETTER Z
+0x5B	0x005B	# LEFT SQUARE BRACKET
+0x5C	0x005C	# YEN SIGN
+0x5D	0x005D	# RIGHT SQUARE BRACKET
+0x5E	0x005E	# CIRCUMFLEX ACCENT
+0x5F	0x005F	# LOW LINE
+0x60	0x0060	# GRAVE ACCENT
+0x61	0x0061	# LATIN SMALL LETTER A
+0x62	0x0062	# LATIN SMALL LETTER B
+0x63	0x0063	# LATIN SMALL LETTER C
+0x64	0x0064	# LATIN SMALL LETTER D
+0x65	0x0065	# LATIN SMALL LETTER E
+0x66	0x0066	# LATIN SMALL LETTER F
+0x67	0x0067	# LATIN SMALL LETTER G
+0x68	0x0068	# LATIN SMALL LETTER H
+0x69	0x0069	# LATIN SMALL LETTER I
+0x6A	0x006A	# LATIN SMALL LETTER J
+0x6B	0x006B	# LATIN SMALL LETTER K
+0x6C	0x006C	# LATIN SMALL LETTER L
+0x6D	0x006D	# LATIN SMALL LETTER M
+0x6E	0x006E	# LATIN SMALL LETTER N
+0x6F	0x006F	# LATIN SMALL LETTER O
+0x70	0x0070	# LATIN SMALL LETTER P
+0x71	0x0071	# LATIN SMALL LETTER Q
+0x72	0x0072	# LATIN SMALL LETTER R
+0x73	0x0073	# LATIN SMALL LETTER S
+0x74	0x0074	# LATIN SMALL LETTER T
+0x75	0x0075	# LATIN SMALL LETTER U
+0x76	0x0076	# LATIN SMALL LETTER V
+0x77	0x0077	# LATIN SMALL LETTER W
+0x78	0x0078	# LATIN SMALL LETTER X
+0x79	0x0079	# LATIN SMALL LETTER Y
+0x7A	0x007A	# LATIN SMALL LETTER Z
+0x7B	0x007B	# LEFT CURLY BRACKET
+0x7C	0x007C	# VERTICAL LINE
+0x7D	0x007D	# RIGHT CURLY BRACKET
+0x7E	0x007E	# OVERLINE
+0x7F	0x007F
+0xA1	0xFF61	# HALFWIDTH IDEOGRAPHIC FULL STOP
+0xA2	0xFF62	# HALFWIDTH LEFT CORNER BRACKET
+0xA3	0xFF63	# HALFWIDTH RIGHT CORNER BRACKET
+0xA4	0xFF64	# HALFWIDTH IDEOGRAPHIC COMMA
+0xA5	0xFF65	# HALFWIDTH KATAKANA MIDDLE DOT
+0xA6	0xFF66	# HALFWIDTH KATAKANA LETTER WO
+0xA7	0xFF67	# HALFWIDTH KATAKANA LETTER SMALL A
+0xA8	0xFF68	# HALFWIDTH KATAKANA LETTER SMALL I
+0xA9	0xFF69	# HALFWIDTH KATAKANA LETTER SMALL U
+0xAA	0xFF6A	# HALFWIDTH KATAKANA LETTER SMALL E
+0xAB	0xFF6B	# HALFWIDTH KATAKANA LETTER SMALL O
+0xAC	0xFF6C	# HALFWIDTH KATAKANA LETTER SMALL YA
+0xAD	0xFF6D	# HALFWIDTH KATAKANA LETTER SMALL YU
+0xAE	0xFF6E	# HALFWIDTH KATAKANA LETTER SMALL YO
+0xAF	0xFF6F	# HALFWIDTH KATAKANA LETTER SMALL TU
+0xB0	0xFF70	# HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+0xB1	0xFF71	# HALFWIDTH KATAKANA LETTER A
+0xB2	0xFF72	# HALFWIDTH KATAKANA LETTER I
+0xB3	0xFF73	# HALFWIDTH KATAKANA LETTER U
+0xB4	0xFF74	# HALFWIDTH KATAKANA LETTER E
+0xB5	0xFF75	# HALFWIDTH KATAKANA LETTER O
+0xB6	0xFF76	# HALFWIDTH KATAKANA LETTER KA
+0xB7	0xFF77	# HALFWIDTH KATAKANA LETTER KI
+0xB8	0xFF78	# HALFWIDTH KATAKANA LETTER KU
+0xB9	0xFF79	# HALFWIDTH KATAKANA LETTER KE
+0xBA	0xFF7A	# HALFWIDTH KATAKANA LETTER KO
+0xBB	0xFF7B	# HALFWIDTH KATAKANA LETTER SA
+0xBC	0xFF7C	# HALFWIDTH KATAKANA LETTER SI
+0xBD	0xFF7D	# HALFWIDTH KATAKANA LETTER SU
+0xBE	0xFF7E	# HALFWIDTH KATAKANA LETTER SE
+0xBF	0xFF7F	# HALFWIDTH KATAKANA LETTER SO
+0xC0	0xFF80	# HALFWIDTH KATAKANA LETTER TA
+0xC1	0xFF81	# HALFWIDTH KATAKANA LETTER TI
+0xC2	0xFF82	# HALFWIDTH KATAKANA LETTER TU
+0xC3	0xFF83	# HALFWIDTH KATAKANA LETTER TE
+0xC4	0xFF84	# HALFWIDTH KATAKANA LETTER TO
+0xC5	0xFF85	# HALFWIDTH KATAKANA LETTER NA
+0xC6	0xFF86	# HALFWIDTH KATAKANA LETTER NI
+0xC7	0xFF87	# HALFWIDTH KATAKANA LETTER NU
+0xC8	0xFF88	# HALFWIDTH KATAKANA LETTER NE
+0xC9	0xFF89	# HALFWIDTH KATAKANA LETTER NO
+0xCA	0xFF8A	# HALFWIDTH KATAKANA LETTER HA
+0xCB	0xFF8B	# HALFWIDTH KATAKANA LETTER HI
+0xCC	0xFF8C	# HALFWIDTH KATAKANA LETTER HU
+0xCD	0xFF8D	# HALFWIDTH KATAKANA LETTER HE
+0xCE	0xFF8E	# HALFWIDTH KATAKANA LETTER HO
+0xCF	0xFF8F	# HALFWIDTH KATAKANA LETTER MA
+0xD0	0xFF90	# HALFWIDTH KATAKANA LETTER MI
+0xD1	0xFF91	# HALFWIDTH KATAKANA LETTER MU
+0xD2	0xFF92	# HALFWIDTH KATAKANA LETTER ME
+0xD3	0xFF93	# HALFWIDTH KATAKANA LETTER MO
+0xD4	0xFF94	# HALFWIDTH KATAKANA LETTER YA
+0xD5	0xFF95	# HALFWIDTH KATAKANA LETTER YU
+0xD6	0xFF96	# HALFWIDTH KATAKANA LETTER YO
+0xD7	0xFF97	# HALFWIDTH KATAKANA LETTER RA
+0xD8	0xFF98	# HALFWIDTH KATAKANA LETTER RI
+0xD9	0xFF99	# HALFWIDTH KATAKANA LETTER RU
+0xDA	0xFF9A	# HALFWIDTH KATAKANA LETTER RE
+0xDB	0xFF9B	# HALFWIDTH KATAKANA LETTER RO
+0xDC	0xFF9C	# HALFWIDTH KATAKANA LETTER WA
+0xDD	0xFF9D	# HALFWIDTH KATAKANA LETTER N
+0xDE	0xFF9E	# HALFWIDTH KATAKANA VOICED SOUND MARK
+0xDF	0xFF9F	# HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
--- a/make/tools/CharsetMapping/dbcs	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/tools/CharsetMapping/dbcs	Mon Jul 30 14:36:59 2012 -0700
@@ -10,6 +10,8 @@
 MS949	  x-windows-949 MS949 basic     sun.nio.cs.ext    true    0x81   0xfe   0x41  0xfe
 MS950	  x-windows-950 MS950 basic     sun.nio.cs.ext    true    0x81   0xfe   0x40  0xfe
 GBK	  GBK        GBK      basic     sun.nio.cs.ext    true    0x81   0xfe   0x40  0xfe
+SJIS	  Shift_JIS  SJIS     basic     sun.nio.cs.ext    true    0x81   0xfc   0x40  0xfc
+PCK	  x-PCK      PCK      basic     sun.nio.cs.ext    true    0x81   0xfc   0x40  0xfc
 IBM1364	  x-IBM1364  Cp1364   ebcdic	sun.nio.cs.ext	  false   0x40   0xde   0x40  0xfe
 IBM1381	  x-IBM1381  Cp1381   basic     sun.nio.cs.ext    true    0x8c   0xf7   0xa1  0xfe
 IBM1383	  x-IBM1383  Cp1383   euc_sim   sun.nio.cs.ext    true    0xa1   0xfe   0xa1  0xfe
@@ -24,3 +26,10 @@
 IBM949	  x-IBM949   Cp949    basic     sun.nio.cs.ext    false   0x8f   0xfe   0xa1  0xfe
 IBM950	  x-IBM950   Cp950    basic     sun.nio.cs.ext    true    0x81   0xfe   0x40  0xfe
 IBM970	  x-IBM970   Cp970    euc_sim   sun.nio.cs.ext    true    0xa1   0xfe   0xa1  0xfe
+JIS_X_0208          x-JIS0208          JIS0208          dbcsonly  sun.nio.cs.ext  false  0x21  0x7e  0x21  0x7e
+JIS_X_0212          JIS_X0212-1990     JIS0212          dbcsonly  sun.nio.cs.ext  false  0x21  0x7e  0x21  0x7e
+JIS_X_0208_Solaris  x-JIS0208_Solaris  JIS0208_Solaris  dbcsonly  sun.nio.cs.ext  false  0x21  0x9e  0x21  0x7e
+JIS_X_0208_MS5022X  x-JIS0208_MS5022X  JIS0208_MS5022X  dbcsonly  sun.nio.cs.ext  false  0x21  0x7e  0x21  0x7e
+JIS_X_0208_MS932    x-JIS0208_MS932    JIS0208_MS932    dbcsonly  sun.nio.cs.ext  false  0x21  0x7e  0x21  0x7e
+JIS_X_0212_Solaris  x-JIS0212_Solaris  JIS0212_Solaris  dbcsonly  sun.nio.cs.ext  false  0x21  0x7e  0x21  0x7e
+JIS_X_0212_MS5022X  x-JIS0212_MS5022X  JIS0212_MS5022X  dbcsonly  sun.nio.cs.ext  false  0x21  0x7e  0x21  0x7e
--- a/make/tools/CharsetMapping/extsbcs	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/tools/CharsetMapping/extsbcs	Mon Jul 30 14:36:59 2012 -0700
@@ -53,7 +53,7 @@
 ISO_8859_3	ISO-8859-3	ISO8859_3	true		sun.nio.cs.ext
 ISO_8859_6	ISO-8859-6	ISO8859_6	true		sun.nio.cs.ext
 ISO_8859_8	ISO-8859-8	ISO8859_8	true		sun.nio.cs.ext
-#JIS_X_0201	JIS_X0201	JIS_X0201	true		sun.nio.cs.ext
+JIS_X_0201	JIS_X0201	JIS_X0201	true		sun.nio.cs.ext
 MS1255		windows-1255	Cp1255		true		sun.nio.cs.ext
 MS1256		windows-1256	Cp1256		true		sun.nio.cs.ext
 MS1258		windows-1258	Cp1258		true		sun.nio.cs.ext
--- a/make/tools/src/build/tools/charsetmapping/DBCS.java	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/tools/src/build/tools/charsetmapping/DBCS.java	Mon Jul 30 14:36:59 2012 -0700
@@ -194,6 +194,15 @@
         if (hisName == null)
             hisName = "";
 
+        // (5) c2b replacement, only used for JIs0208/0212, which
+        // are two pure db charsets so default '3f' does not work
+        String c2bRepl = "";
+        if (clzName.startsWith("JIS_X_0208")) {
+            c2bRepl = "new byte[]{ (byte)0x21, (byte)0x29 },";
+        } else if (clzName.startsWith("JIS_X_0212")) {
+            c2bRepl = "new byte[]{ (byte)0x22, (byte)0x44 },";
+        }
+
         while (s.hasNextLine()) {
             String line = s.nextLine();
             if (line.indexOf("$") == -1) {
@@ -227,7 +236,8 @@
                        .replace("$B2C$", b2c)
                        .replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16))
                        .replace("$NONROUNDTRIP_B2C$", b2cNR)
-                       .replace("$NONROUNDTRIP_C2B$", c2bNR);
+                       .replace("$NONROUNDTRIP_C2B$", c2bNR)
+                       .replace("$ENC_REPLACEMENT$", c2bRepl);
 
             ops.println(line);
         }
--- a/make/tools/src/build/tools/charsetmapping/SBCS.java	Fri Jul 27 15:04:38 2012 -0400
+++ b/make/tools/src/build/tools/charsetmapping/SBCS.java	Mon Jul 30 14:36:59 2012 -0700
@@ -106,7 +106,7 @@
         }
     }
 
-    static Pattern sbmap = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(\\s++#.*)?");
+    static Pattern sbmap = Pattern.compile("0x(\\p{XDigit}++)\\s++(?:U\\+|0x)?(\\p{XDigit}++)(?:\\s++#.*)?");
 
     private static void genClass0(String srcDir, String dstDir,
                                   String template,